diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
index f435fb8a2c11e2806ed685e253bd8d508fbfa311..2f0451581b8c0868bc6b6e50387679554d75b691 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertSpiceDataToRealSpace.h
@@ -61,7 +61,7 @@ public:
 
 private:
   /// Typdef for the white-space separated file data type.
-  typedef std::deque<std::string> DataCollectionType;
+  using DataCollectionType = std::deque<std::string>;
 
   /// Initialisation code
   void init() override;
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ImportMDEventWorkspace.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ImportMDEventWorkspace.h
index b7c7fec64c46db895576d3a8727a91c7c7b2e69b..1be7c21e36199a38a7d5b35e1d7b4cbed7bd4454 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ImportMDEventWorkspace.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ImportMDEventWorkspace.h
@@ -56,7 +56,7 @@ public:
 
 private:
   /// Typdef for the white-space separated file data type.
-  typedef std::deque<std::string> DataCollectionType;
+  using DataCollectionType = std::deque<std::string>;
   /// All read-in data.
   DataCollectionType m_file_data;
   /// Iterator for the dimensionality start position.
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Integrate3DEvents.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Integrate3DEvents.h
index 99a771ecec233b9aa91c1ad1a5a5aaf07475be1a..2e582a03d626cbe9edb1e3896b7e3b243cf5761d 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Integrate3DEvents.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Integrate3DEvents.h
@@ -67,9 +67,8 @@ struct IntegrationParameters {
                  <http://doxygen.mantidproject.org>
  */
 
-typedef std::unordered_map<
-    int64_t, std::vector<std::pair<double, Mantid::Kernel::V3D>>> EventListMap;
-typedef std::unordered_map<int64_t, Mantid::Kernel::V3D> PeakQMap;
+using EventListMap = std::unordered_map<int64_t, std::vector<std::pair<double, Mantid::Kernel::V3D> > >;
+using PeakQMap = std::unordered_map<int64_t, Mantid::Kernel::V3D>;
 
 class DLLExport Integrate3DEvents {
 public:
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadSQW2.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadSQW2.h
index 34504cb5c9bb5f66cb9eac0ba7ab99989dd51287..2952d8e2b55eb9b9696028a97a01d2f457b2bd98 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadSQW2.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/LoadSQW2.h
@@ -53,8 +53,7 @@ public:
 
 private:
   /// Local typedef for
-  typedef DataObjects::MDEventWorkspace<DataObjects::MDEvent<4>, 4>
-      SQWWorkspace;
+  using SQWWorkspace = DataObjects::MDEventWorkspace<DataObjects::MDEvent<4>, 4>;
 
   void init() override;
   void exec() override;
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDEventWSWrapper.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDEventWSWrapper.h
index f3690c1e134ad408af11ad63746f177ae6122d80..ada40278317ed1c4496f346709bf9ec9a136387c 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDEventWSWrapper.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDEventWSWrapper.h
@@ -39,7 +39,7 @@ File change history is stored at: <https://github.com/mantidproject/mantid>
 Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 /// vectors of strings are often used here
-typedef std::vector<std::string> Strings;
+using Strings = std::vector<std::string>;
 
 /// predefenition of the class name
 class MDEventWSWrapper;
@@ -47,13 +47,12 @@ class MDEventWSWrapper;
 // Boost function pointers with multiple arguments
 //        appear not portable to all architectures supported (Fail on MAC)
 /// signature to void templated function
-typedef void (MDEventWSWrapper::*fpVoidMethod)();
+using fpVoidMethod = void (MDEventWSWrapper::*)();
 /// signature for the internal templated function pointer to add data to an
 /// existing workspace
-typedef void (MDEventWSWrapper::*fpAddData)(float *, uint16_t *, uint32_t *,
-                                            coord_t *, size_t) const;
+using fpAddData = void (MDEventWSWrapper::*)(float *, uint16_t *, uint32_t *, coord_t *, size_t) const;
 /// signature for the internal templated function pointer to create workspace
-typedef void (MDEventWSWrapper::*fpCreateWS)(const MDWSDescription &mwsd);
+using fpCreateWS = void (MDEventWSWrapper::*)(const MDWSDescription &);
 
 class DLLExport MDEventWSWrapper {
 public:
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfFactory.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfFactory.h
index bfe1777de9836966c00e43a674df35523bf9c337..61bca51533dec393851945a08089bcbb65860672 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfFactory.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfFactory.h
@@ -110,7 +110,7 @@ private:
 
 /// The specialization of the SingletonHolder class that holds the
 /// MDTransformations Factory
-typedef Kernel::SingletonHolder<MDTransfFactoryImpl> MDTransfFactory;
+using MDTransfFactory = Kernel::SingletonHolder<MDTransfFactoryImpl>;
 
 } // namespace MDAlgorithms
 } // namespace Mantid
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
index 519e14f6ad93b709a2c645004b2a0c05c7bfe657..e9ff3893a1e0ebdb6b2ccf7fe45ec5320d981811 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/MDTransfInterface.h
@@ -236,8 +236,8 @@ public:
       Mantid::API::MatrixWorkspace_sptr underlyingWorkspace) const = 0;
 };
 
-typedef boost::shared_ptr<MDTransfInterface> MDTransf_sptr;
-typedef boost::shared_ptr<const MDTransfInterface> MDTransf_const_sptr;
+using MDTransf_sptr = boost::shared_ptr<MDTransfInterface>;
+using MDTransf_const_sptr = boost::shared_ptr<const MDTransfInterface>;
 
 } // End MDAlgorighms namespace
 } // End Mantid namespace
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModel.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModel.h
index 8e54a0340f9bd4d407677c8d5bfffcd3efd22c27..23f983d13c2c2ac46f72d6f13d25e6fcf598396f 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModel.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModel.h
@@ -135,9 +135,9 @@ private:
 };
 
 /// boost::shared_ptr typedef
-typedef boost::shared_ptr<ForegroundModel> ForegroundModel_sptr;
+using ForegroundModel_sptr = boost::shared_ptr<ForegroundModel>;
 /// boost::shared_ptr to const typedef
-typedef boost::shared_ptr<const ForegroundModel> ForegroundModel_const_sptr;
+using ForegroundModel_const_sptr = boost::shared_ptr<const ForegroundModel>;
 }
 }
 
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModelFactory.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModelFactory.h
index a54cbd7928f111c7748c00a02242e309bbc1f7b4..a857f1102d3ff8ae8cfe8b8eaa11d5f1bcc51a25 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModelFactory.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/ForegroundModelFactory.h
@@ -44,7 +44,7 @@ class MANTID_MDALGORITHMS_DLL ForegroundModelFactoryImpl
     : public Kernel::DynamicFactory<ForegroundModel> {
 private:
   /// Base-class type
-  typedef Kernel::DynamicFactory<ForegroundModel> BaseClass;
+  using BaseClass = Kernel::DynamicFactory<ForegroundModel>;
 
 public:
   /// A create method to ensure the model is initialized properly
@@ -69,8 +69,7 @@ private:
 };
 
 /// Typedef singleton instance to ForegroundFactory
-typedef Kernel::SingletonHolder<ForegroundModelFactoryImpl>
-    ForegroundModelFactory;
+using ForegroundModelFactory = Kernel::SingletonHolder<ForegroundModelFactoryImpl>;
 }
 }
 
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolutionFactory.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolutionFactory.h
index 460fc90faa5b0ca90d99c8ea876cdc648056a729..4ccac15f70c6244a9ce98c3497b4025226a3e488 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolutionFactory.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/MDResolutionConvolutionFactory.h
@@ -42,7 +42,7 @@ class MANTID_MDALGORITHMS_DLL MDResolutionConvolutionFactoryImpl
     : public Kernel::DynamicFactory<MDResolutionConvolution> {
 private:
   /// Base-class type
-  typedef Kernel::DynamicFactory<MDResolutionConvolution> BaseClass;
+  using BaseClass = Kernel::DynamicFactory<MDResolutionConvolution>;
 
 public:
   /// A create method to ensure the type is initialized properly
@@ -70,8 +70,7 @@ private:
 };
 
 /// Typedef singleton instance to MDResolutionConvolutionFactory
-typedef Kernel::SingletonHolder<MDResolutionConvolutionFactoryImpl>
-    MDResolutionConvolutionFactory;
+using MDResolutionConvolutionFactory = Kernel::SingletonHolder<MDResolutionConvolutionFactoryImpl>;
 }
 }
 
diff --git a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/SimulateResolutionConvolvedModel.h b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/SimulateResolutionConvolvedModel.h
index 5925817133cfd3ddecca00330ce169c11031aec6..2b15e099219fd9750af4e4e7773e0eb7328846d3 100644
--- a/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/SimulateResolutionConvolvedModel.h
+++ b/Framework/MDAlgorithms/inc/MantidMDAlgorithms/Quantification/SimulateResolutionConvolvedModel.h
@@ -66,8 +66,7 @@ private:
   /// The input domain
   boost::shared_ptr<API::FunctionValues> m_calculatedValues;
   /// The output workspace type
-  typedef DataObjects::MDEventWorkspace<DataObjects::MDEvent<4>, 4>
-      QOmegaWorkspace;
+  using QOmegaWorkspace = DataObjects::MDEventWorkspace<DataObjects::MDEvent<4>, 4>;
 
   /// The output workspace
   boost::shared_ptr<QOmegaWorkspace> m_outputWS;
diff --git a/Framework/MDAlgorithms/src/BoxControllerSettingsAlgorithm.cpp b/Framework/MDAlgorithms/src/BoxControllerSettingsAlgorithm.cpp
index 0d15d133c9477ad740b95059894fb8e7f0cb1c98..45f90cf92ef9bf96a3af8da6683508c97c868e43 100644
--- a/Framework/MDAlgorithms/src/BoxControllerSettingsAlgorithm.cpp
+++ b/Framework/MDAlgorithms/src/BoxControllerSettingsAlgorithm.cpp
@@ -26,7 +26,7 @@ void BoxControllerSettingsAlgorithm::initBoxControllerProps(
   mustBeMoreThen1->setLower(1);
 
   // Split up comma-separated properties
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer values(SplitInto, ",",
                    tokenizer::TOK_IGNORE_EMPTY | tokenizer::TOK_TRIM);
   std::vector<int> valueVec;
diff --git a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
index bb5f39c02881fb552df94c3c27113d14b2f0c118..4383a4134ce670da98313227db19273b574fb414 100644
--- a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
+++ b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
@@ -634,7 +634,7 @@ CalculateCoverageDGS::calculateIntersections(const double theta,
   }
 
   // sort intersections by final momentum
-  typedef std::vector<Mantid::Kernel::VMD>::iterator IterType;
+  using IterType = std::vector<Mantid::Kernel::VMD>::iterator;
   std::stable_sort<IterType, bool (*)(const Mantid::Kernel::VMD &,
                                       const Mantid::Kernel::VMD &)>(
       intersections.begin(), intersections.end(), compareMomentum);
diff --git a/Framework/MDAlgorithms/src/ConvertToDiffractionMDWorkspace.cpp b/Framework/MDAlgorithms/src/ConvertToDiffractionMDWorkspace.cpp
index db50f17dd78eb5ac346d6ed4c38ea09cacc9ebcc..76aa5e8e2b2b60f58c1e62b32acadf1a1f11ce40 100644
--- a/Framework/MDAlgorithms/src/ConvertToDiffractionMDWorkspace.cpp
+++ b/Framework/MDAlgorithms/src/ConvertToDiffractionMDWorkspace.cpp
@@ -125,7 +125,7 @@ void ConvertToDiffractionMDWorkspace::init() {
 }
 
 /// Our MDLeanEvent dimension
-typedef DataObjects::MDLeanEvent<3> MDE;
+using MDE = DataObjects::MDLeanEvent<3>;
 
 /** Convert one spectrum to DataObjects.
  * Depending on options, it uses the histogram view or the
diff --git a/Framework/MDAlgorithms/src/CutMD.cpp b/Framework/MDAlgorithms/src/CutMD.cpp
index 024f5545e9018d291eee051873f1daea1e85938b..b1f6e68ac956659f8d4b52a562df309fd869cd70 100644
--- a/Framework/MDAlgorithms/src/CutMD.cpp
+++ b/Framework/MDAlgorithms/src/CutMD.cpp
@@ -23,7 +23,7 @@ using namespace Mantid::Kernel;
 namespace {
 
 // Typedef to simplify function signatures
-typedef std::pair<double, double> MinMax;
+using MinMax = std::pair<double, double>;
 
 MinMax getDimensionExtents(IMDEventWorkspace_sptr ws, size_t index) {
   if (!ws)
diff --git a/Framework/MDAlgorithms/src/FindPeaksMD.cpp b/Framework/MDAlgorithms/src/FindPeaksMD.cpp
index a3f838e593896772b38c29592e2d5db4ecef0259..309a9a590d712fa2416a3916a2758bfe38ffb8b0 100644
--- a/Framework/MDAlgorithms/src/FindPeaksMD.cpp
+++ b/Framework/MDAlgorithms/src/FindPeaksMD.cpp
@@ -394,7 +394,7 @@ void FindPeaksMD::findPeaks(typename MDEventWorkspace<MDE, nd>::sptr ws) {
     }
     g_log.information() << "Threshold signal density: " << threshold << '\n';
 
-    typedef API::IMDNode *boxPtr;
+    using boxPtr = API::IMDNode *;
     // We will fill this vector with pointers to all the boxes (up to a given
     // depth)
     typename std::vector<API::IMDNode *> boxes;
@@ -404,7 +404,7 @@ void FindPeaksMD::findPeaks(typename MDEventWorkspace<MDE, nd>::sptr ws) {
     ws->getBox()->getBoxes(boxes, 1000, true);
 
     // This pair is the <density, ptr to the box>
-    typedef std::pair<double, API::IMDNode *> dens_box;
+    using dens_box = std::pair<double, API::IMDNode *>;
 
     // Map that will sort the boxes by increasing density. The key = density;
     // value = box *.
@@ -586,7 +586,7 @@ void FindPeaksMD::findPeaksHisto(
     peakWS->copyExperimentInfoFrom(ei.get());
 
     // This pair is the <density, box index>
-    typedef std::pair<double, size_t> dens_box;
+    using dens_box = std::pair<double, size_t>;
 
     // Map that will sort the boxes by increasing density. The key = density;
     // value = box index.
diff --git a/Framework/MDAlgorithms/src/ImportMDHistoWorkspace.cpp b/Framework/MDAlgorithms/src/ImportMDHistoWorkspace.cpp
index 8a47aa239b576e157512bcf8e802893099935d89..bf3e213f13397d9ecb3a0209eb5913c41ddf0765 100644
--- a/Framework/MDAlgorithms/src/ImportMDHistoWorkspace.cpp
+++ b/Framework/MDAlgorithms/src/ImportMDHistoWorkspace.cpp
@@ -68,7 +68,7 @@ void ImportMDHistoWorkspace::exec() {
   }
 
   // Copy each string present in the file stream into a deque.
-  typedef std::deque<std::string> box_collection;
+  using box_collection = std::deque<std::string>;
   box_collection box_elements;
   std::copy(std::istream_iterator<std::string>(file),
             std::istream_iterator<std::string>(),
diff --git a/Framework/MDAlgorithms/src/LoadMD.cpp b/Framework/MDAlgorithms/src/LoadMD.cpp
index d96f7c0f220bb2f9204afe90de54de05db5a6033..f587ebb61e0aa5a0ce34e279ca8199bb5514ba0f 100644
--- a/Framework/MDAlgorithms/src/LoadMD.cpp
+++ b/Framework/MDAlgorithms/src/LoadMD.cpp
@@ -31,7 +31,7 @@
 #include <nexus/NeXusException.hpp>
 #include <vector>
 
-typedef std::unique_ptr<Mantid::API::IBoxControllerIO> file_holder_type;
+using file_holder_type = std::unique_ptr<Mantid::API::IBoxControllerIO>;
 
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
diff --git a/Framework/MDAlgorithms/src/LoadSQW2.cpp b/Framework/MDAlgorithms/src/LoadSQW2.cpp
index 2c278d4e528b7f97c41a4ea0b62f9cdd87c8cefe..434846121ae7440bd3df38689bceb32a6137ceee 100644
--- a/Framework/MDAlgorithms/src/LoadSQW2.cpp
+++ b/Framework/MDAlgorithms/src/LoadSQW2.cpp
@@ -91,7 +91,7 @@ void LoadSQW2::init() {
   using namespace API;
   using Kernel::PropertyWithValue;
   using Kernel::StringListValidator;
-  typedef std::initializer_list<std::string> StringInitializerList;
+  using StringInitializerList = std::initializer_list<std::string>;
 
   // Inputs
   declareProperty(
diff --git a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
index 11edab9841fc5cd6411738fa4b2e4dea775ac913..c98032f79725b2638d278c0d5b53ea9ed484a8e5 100644
--- a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
+++ b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp
@@ -450,7 +450,7 @@ void MDNormDirectSC::calculateNormalization(
                                PhysicalConstants::meV * 1e-20 /
                                (PhysicalConstants::h * PhysicalConstants::h);
   const auto &exptInfoZero = *(m_inputWS->getExperimentInfo(0));
-  typedef Kernel::PropertyWithValue<std::vector<double>> VectorDoubleProperty;
+  using VectorDoubleProperty = Kernel::PropertyWithValue<std::vector<double> >;
   auto *rubwLog =
       dynamic_cast<VectorDoubleProperty *>(exptInfoZero.getLog("RUBW_MATRIX"));
   if (!rubwLog) {
diff --git a/Framework/MDAlgorithms/src/MDNormSCD.cpp b/Framework/MDAlgorithms/src/MDNormSCD.cpp
index 3aab5f50c7085dcb9a1bf1e26ce7802c7ebbeb71..bc80e73cfbb840d20a3219042a0a094a6fdb0121 100644
--- a/Framework/MDAlgorithms/src/MDNormSCD.cpp
+++ b/Framework/MDAlgorithms/src/MDNormSCD.cpp
@@ -403,7 +403,7 @@ void MDNormSCD::calculateNormalization(
       getProperty("SolidAngleWorkspace");
 
   const auto &exptInfoZero = *(m_inputWS->getExperimentInfo(0));
-  typedef Kernel::PropertyWithValue<std::vector<double>> VectorDoubleProperty;
+  using VectorDoubleProperty = Kernel::PropertyWithValue<std::vector<double> >;
   auto *rubwLog =
       dynamic_cast<VectorDoubleProperty *>(exptInfoZero.getLog("RUBW_MATRIX"));
   if (!rubwLog) {
diff --git a/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp b/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
index aa4e5a9ef975a526d8567f5020f517fe271e2873..6bb75c91ab395830a86aaeca8d4439b0b81a4db7 100644
--- a/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
+++ b/Framework/MDAlgorithms/src/Quantification/Resolution/TobyFitResolutionModel.cpp
@@ -597,7 +597,7 @@ void TobyFitResolutionModel::setupRandomNumberGenerator() {
     else if (m_mcType == 4)
       seed = static_cast<size_t>(Poco::Timestamp().epochMicroseconds());
 
-    typedef NDPseudoRandomNumberGenerator<MersenneTwister> NDMersenneTwister;
+    using NDMersenneTwister = NDPseudoRandomNumberGenerator<MersenneTwister>;
     for (size_t i = 0; i < ngenerators; ++i) {
       m_randomNumbers[i] = new NDMersenneTwister(nrand, seed, 0.0, 1.0);
     }
diff --git a/Framework/MDAlgorithms/src/SaveMD.cpp b/Framework/MDAlgorithms/src/SaveMD.cpp
index d82bd5c0c9632ea845bd9caa5cc364d8e444d5d8..57e53480d49aff155424f58ccb792c095c952fe0 100644
--- a/Framework/MDAlgorithms/src/SaveMD.cpp
+++ b/Framework/MDAlgorithms/src/SaveMD.cpp
@@ -17,7 +17,7 @@
 #include "MantidKernel/System.h"
 #include <Poco/File.h>
 
-typedef std::unique_ptr<::NeXus::File> file_holder_type;
+using file_holder_type = std::unique_ptr< ::NeXus::File>;
 
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
diff --git a/Framework/MDAlgorithms/src/SaveMD2.cpp b/Framework/MDAlgorithms/src/SaveMD2.cpp
index b9d3f5203375d4cbac0a080ea413814ef3702e75..56db72040b16f9fe8d27f73a90b8e02a15de6749 100644
--- a/Framework/MDAlgorithms/src/SaveMD2.cpp
+++ b/Framework/MDAlgorithms/src/SaveMD2.cpp
@@ -18,7 +18,7 @@
 #include "MantidDataObjects/BoxControllerNeXusIO.h"
 #include "MantidKernel/ConfigService.h"
 
-typedef std::unique_ptr<::NeXus::File> file_holder_type;
+using file_holder_type = std::unique_ptr< ::NeXus::File>;
 
 using namespace Mantid::Kernel;
 using namespace Mantid::API;
diff --git a/Framework/MDAlgorithms/src/SmoothMD.cpp b/Framework/MDAlgorithms/src/SmoothMD.cpp
index 2b84722ff26cba35ece324fd945a1bac478106d5..6f2891f264076fcbf53b0bd6e758d89fca1bd92f 100644
--- a/Framework/MDAlgorithms/src/SmoothMD.cpp
+++ b/Framework/MDAlgorithms/src/SmoothMD.cpp
@@ -30,22 +30,19 @@ using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 
 // Typedef for width vector
-typedef std::vector<double> WidthVector;
+using WidthVector = std::vector<double>;
 
 // Typedef for kernel vector
-typedef std::vector<double> KernelVector;
+using KernelVector = std::vector<double>;
 
 // Typedef for an optional md histo workspace
-typedef boost::optional<IMDHistoWorkspace_const_sptr>
-    OptionalIMDHistoWorkspace_const_sptr;
+using OptionalIMDHistoWorkspace_const_sptr = boost::optional<IMDHistoWorkspace_const_sptr>;
 
 // Typedef for a smoothing function
-typedef boost::function<IMDHistoWorkspace_sptr(
-    IMDHistoWorkspace_const_sptr, const WidthVector &,
-    OptionalIMDHistoWorkspace_const_sptr)> SmoothFunction;
+using SmoothFunction = boost::function<IMDHistoWorkspace_sptr (IMDHistoWorkspace_const_sptr, const WidthVector &, OptionalIMDHistoWorkspace_const_sptr)>;
 
 // Typedef for a smoothing function map keyed by name.
-typedef std::map<std::string, SmoothFunction> SmoothFunctionMap;
+using SmoothFunctionMap = std::map<std::string, SmoothFunction>;
 
 namespace {
 
diff --git a/Framework/MDAlgorithms/test/ConvertToMDTest.h b/Framework/MDAlgorithms/test/ConvertToMDTest.h
index f57e4376c944aa021724d19dcf412ff86c9d4f71..e92accccc487169cd17f34a450b72cc281651265 100644
--- a/Framework/MDAlgorithms/test/ConvertToMDTest.h
+++ b/Framework/MDAlgorithms/test/ConvertToMDTest.h
@@ -76,7 +76,7 @@ public:
   static ConvertToMDTest *createSuite() { return new ConvertToMDTest(); }
   static void destroySuite(ConvertToMDTest *suite) { delete suite; }
 
-  typedef std::vector<std::string> PropertyAllowedValues;
+  using PropertyAllowedValues = std::vector<std::string>;
 
   void testInit() {
 
diff --git a/Framework/MDAlgorithms/test/LoadMDTest.h b/Framework/MDAlgorithms/test/LoadMDTest.h
index 41cd937c81aa115c12b9a563e54659a04b4215c1..00394b574974ff619670d8d8400dbe6bac4ef852 100644
--- a/Framework/MDAlgorithms/test/LoadMDTest.h
+++ b/Framework/MDAlgorithms/test/LoadMDTest.h
@@ -171,7 +171,7 @@ public:
   template <size_t nd>
   void do_test_exec(bool FileBackEnd, bool deleteWorkspace = true,
                     double memory = 0, bool BoxStructureOnly = false) {
-    typedef MDLeanEvent<nd> MDE;
+    using MDE = MDLeanEvent<nd>;
 
     //------ Start by creating the file
     //----------------------------------------------
diff --git a/Framework/MDAlgorithms/test/LoadSQW2Test.h b/Framework/MDAlgorithms/test/LoadSQW2Test.h
index b7360bdbcc99dac295710de0e6410cd2a6bd4a8b..f54287f8e6f8d7d28a58bc896d0e72e3caab5185 100644
--- a/Framework/MDAlgorithms/test/LoadSQW2Test.h
+++ b/Framework/MDAlgorithms/test/LoadSQW2Test.h
@@ -145,9 +145,9 @@ private:
   enum class DataType { SQW, Cut3D };
 
   struct DimensionProperties {
-    typedef std::array<std::string, 4> StringList;
-    typedef std::array<double, 8> DoubleList;
-    typedef std::array<size_t, 4> SizeTList;
+    using StringList = std::array<std::string, 4>;
+    using DoubleList = std::array<double, 8>;
+    using SizeTList = std::array<size_t, 4>;
     StringList ids, names, units, frameNames;
     DoubleList ulimits;
     SizeTList nbins;
diff --git a/Framework/MDAlgorithms/test/SmoothMDTest.h b/Framework/MDAlgorithms/test/SmoothMDTest.h
index a2052d8376045c2dfb3ef9161899bc25b42e86cb..1ab8191f72d41b6c94eb0143bbc9f3b83ca6815e 100644
--- a/Framework/MDAlgorithms/test/SmoothMDTest.h
+++ b/Framework/MDAlgorithms/test/SmoothMDTest.h
@@ -14,7 +14,7 @@ using namespace Mantid::API;
 using namespace Mantid::DataObjects;
 
 // Typedef for width vector
-typedef std::vector<double> WidthVector;
+using WidthVector = std::vector<double>;
 
 class SmoothMDTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/MDAlgorithms/test/WeightedMeanMDTest.h b/Framework/MDAlgorithms/test/WeightedMeanMDTest.h
index f2de896a9cfb9a30182bac6679baa788f99a1821..93ba7996521cfd4e00b81c502f17221264f46893 100644
--- a/Framework/MDAlgorithms/test/WeightedMeanMDTest.h
+++ b/Framework/MDAlgorithms/test/WeightedMeanMDTest.h
@@ -197,7 +197,7 @@ public:
   /// MatrixWorkspaces (WeightedMean).
   void test_compare_to_matrix_weightedmean() {
     // Create some input data. Signal values as two offset sine waves.
-    typedef std::vector<double> VecDouble;
+    using VecDouble = std::vector<double>;
     VecDouble s1, s2, e1, e2, x;
     double theta_shift = 0.4;
     for (size_t i = 0; i < 40; ++i) {