From d85c9e38ab20c51381814e24fdd1dd98a336da80 Mon Sep 17 00:00:00 2001
From: Edward Brown <edward.brown@stfc.ac.uk>
Date: Wed, 14 Mar 2018 14:07:13 +0000
Subject: [PATCH] Re #22048: Applied fixes to Framework/Kernel.

---
 Framework/Kernel/inc/MantidKernel/ANN/ANN.h      | 16 ++++++++--------
 Framework/Kernel/inc/MantidKernel/ANN/ANNx.h     |  2 +-
 Framework/Kernel/inc/MantidKernel/Cache.h        |  5 ++---
 .../Kernel/inc/MantidKernel/ConfigService.h      |  8 +++-----
 Framework/Kernel/inc/MantidKernel/DataItem.h     |  4 ++--
 Framework/Kernel/inc/MantidKernel/DataService.h  |  7 +++----
 Framework/Kernel/inc/MantidKernel/DiskBuffer.h   | 12 ++----------
 .../Kernel/inc/MantidKernel/DynamicFactory.h     |  6 +++---
 Framework/Kernel/inc/MantidKernel/FacilityInfo.h |  3 +--
 Framework/Kernel/inc/MantidKernel/FunctionTask.h |  2 +-
 Framework/Kernel/inc/MantidKernel/IValidator.h   |  2 +-
 .../Kernel/inc/MantidKernel/InstrumentInfo.h     |  2 +-
 .../Kernel/inc/MantidKernel/InternetHelper.h     |  2 +-
 .../Kernel/inc/MantidKernel/LibraryManager.h     |  2 +-
 .../Kernel/inc/MantidKernel/ListValidator.h      |  2 +-
 Framework/Kernel/inc/MantidKernel/LogParser.h    |  2 +-
 Framework/Kernel/inc/MantidKernel/Logger.h       |  2 +-
 Framework/Kernel/inc/MantidKernel/MDUnit.h       |  4 ++--
 .../Kernel/inc/MantidKernel/MDUnitFactory.h      |  4 ++--
 Framework/Kernel/inc/MantidKernel/MRUList.h      | 10 ++--------
 Framework/Kernel/inc/MantidKernel/Material.h     |  6 +++---
 .../Kernel/inc/MantidKernel/MaterialBuilder.h    |  2 +-
 Framework/Kernel/inc/MantidKernel/Matrix.h       |  6 +++---
 .../Kernel/inc/MantidKernel/MatrixProperty.h     |  2 +-
 .../Kernel/inc/MantidKernel/NearestNeighbours.h  |  5 ++---
 .../Kernel/inc/MantidKernel/PropertyHelper.h     |  6 +++---
 .../Kernel/inc/MantidKernel/PropertyHistory.h    |  6 +++---
 .../Kernel/inc/MantidKernel/PropertyManager.h    |  4 ++--
 .../MantidKernel/PropertyManagerDataService.h    |  3 +--
 .../inc/MantidKernel/PropertyManagerProperty.h   |  4 ++--
 .../inc/MantidKernel/PropertyManager_fwd.h       |  8 ++++----
 .../MantidKernel/PseudoRandomNumberGenerator.h   |  2 +-
 .../Kernel/inc/MantidKernel/RemoteJobManager.h   |  2 +-
 .../Kernel/inc/MantidKernel/SingletonHolder.h    |  4 ++--
 .../Kernel/inc/MantidKernel/StringTokenizer.h    |  6 +++---
 Framework/Kernel/inc/MantidKernel/TestChannel.h  |  2 +-
 .../inc/MantidKernel/ThreadSchedulerMutexes.h    |  4 ++--
 Framework/Kernel/inc/MantidKernel/TimeSplitter.h |  2 +-
 .../Kernel/inc/MantidKernel/TypedValidator.h     |  2 +-
 Framework/Kernel/inc/MantidKernel/Unit.h         | 12 +++++-------
 Framework/Kernel/inc/MantidKernel/UnitFactory.h  |  2 +-
 Framework/Kernel/inc/MantidKernel/UnitLabel.h    |  4 ++--
 Framework/Kernel/inc/MantidKernel/UsageService.h |  2 +-
 .../Kernel/inc/MantidKernel/UserCatalogInfo.h    |  2 +-
 Framework/Kernel/inc/MantidKernel/VMD.h          |  4 ++--
 Framework/Kernel/inc/MantidKernel/cow_ptr.h      |  8 ++++----
 Framework/Kernel/src/ANN/kd_tree.h               | 10 +---------
 Framework/Kernel/src/ANN/pr_queue.h              |  4 ++--
 Framework/Kernel/src/ANN/pr_queue_k.h            |  4 ++--
 Framework/Kernel/src/ConfigService.cpp           |  2 +-
 Framework/Kernel/src/FacilityInfo.cpp            |  2 +-
 Framework/Kernel/src/Interpolation.cpp           |  2 +-
 Framework/Kernel/src/MagneticIon.cpp             |  2 +-
 Framework/Kernel/src/Material.cpp                |  4 ++--
 Framework/Kernel/src/MaterialBuilder.cpp         |  2 +-
 Framework/Kernel/src/MaterialXMLParser.cpp       | 11 +++++------
 Framework/Kernel/src/PropertyManager.cpp         |  2 +-
 Framework/Kernel/src/Strings.cpp                 |  4 ++--
 Framework/Kernel/src/UserStringParser.cpp        |  4 ++--
 Framework/Kernel/src/VectorHelper.cpp            |  6 +++---
 Framework/Kernel/test/BinaryFileTest.h           |  4 ++--
 Framework/Kernel/test/DataServiceTest.h          |  4 ++--
 Framework/Kernel/test/DynamicFactoryTest.h       |  2 +-
 Framework/Kernel/test/FilterChannelTest.h        |  2 +-
 Framework/Kernel/test/IValidatorTest.h           |  2 +-
 Framework/Kernel/test/MDAxisValidatorTest.h      |  2 +-
 Framework/Kernel/test/MultiFileNameParserTest.h  |  2 +-
 .../test/NDPseudoRandomNumberGeneratorTest.h     |  4 ++--
 Framework/Kernel/test/PropertyWithValueTest.h    |  4 ++--
 69 files changed, 130 insertions(+), 162 deletions(-)

diff --git a/Framework/Kernel/inc/MantidKernel/ANN/ANN.h b/Framework/Kernel/inc/MantidKernel/ANN/ANN.h
index 11e2f98825f..66646cfd0a6 100644
--- a/Framework/Kernel/inc/MantidKernel/ANN/ANN.h
+++ b/Framework/Kernel/inc/MantidKernel/ANN/ANN.h
@@ -176,8 +176,8 @@ enum ANNbool { ANNfalse = 0, ANNtrue = 1 }; // ANN boolean type (non ANSI C++)
 //		not occur in distance calculation.
 //----------------------------------------------------------------------
 
-typedef double ANNcoord; // coordinate data type
-typedef double ANNdist;  // distance data type
+using ANNcoord = double; // coordinate data type
+using ANNdist = double;  // distance data type
 
 //----------------------------------------------------------------------
 //	ANNidx
@@ -193,7 +193,7 @@ typedef double ANNdist;  // distance data type
 //		It should be distinguishable from any valid array index.
 //----------------------------------------------------------------------
 
-typedef int ANNidx;             // point index
+using ANNidx = int;             // point index
 const ANNidx ANN_NULL_IDX = -1; // a NULL point index
 
 //----------------------------------------------------------------------
@@ -408,10 +408,10 @@ const ANNbool ANN_ALLOW_SELF_MATCH = ANNfalse;
 //		when returning the results of k-nearest neighbor queries.
 //----------------------------------------------------------------------
 
-typedef ANNcoord *ANNpoint;      // a point
-typedef ANNpoint *ANNpointArray; // an array of points
-typedef ANNdist *ANNdistArray;   // an array of distances
-typedef ANNidx *ANNidxArray;     // an array of point indices
+using ANNpoint = ANNcoord *;      // a point
+using ANNpointArray = ANNpoint *; // an array of points
+using ANNdistArray = ANNdist *;   // an array of distances
+using ANNidxArray = ANNidx *;     // an array of point indices
 
 //----------------------------------------------------------------------
 //	Basic point and array utilities:
@@ -768,7 +768,7 @@ const int ANN_N_SHRINK_RULES = 4; // number of shrink rules
 //----------------------------------------------------------------------
 class ANNkdStats;              // stats on kd-tree
 class ANNkd_node;              // generic node in a kd-tree
-typedef ANNkd_node *ANNkd_ptr; // pointer to a kd-tree node
+using ANNkd_ptr = ANNkd_node *; // pointer to a kd-tree node
 
 class DLL_API ANNkd_tree : public ANNpointSet {
 protected:
diff --git a/Framework/Kernel/inc/MantidKernel/ANN/ANNx.h b/Framework/Kernel/inc/MantidKernel/ANN/ANNx.h
index f5d990c5c51..0a6b7860f39 100644
--- a/Framework/Kernel/inc/MantidKernel/ANN/ANNx.h
+++ b/Framework/Kernel/inc/MantidKernel/ANN/ANNx.h
@@ -200,6 +200,6 @@ public:
 };
 
 // array of halfspaces
-typedef ANNorthHalfSpace *ANNorthHSArray;
+using ANNorthHSArray = ANNorthHalfSpace *;
 
 #endif
diff --git a/Framework/Kernel/inc/MantidKernel/Cache.h b/Framework/Kernel/inc/MantidKernel/Cache.h
index e403a2bf8a8..f8ff898e116 100644
--- a/Framework/Kernel/inc/MantidKernel/Cache.h
+++ b/Framework/Kernel/inc/MantidKernel/Cache.h
@@ -167,10 +167,9 @@ private:
   /// internal mutex
   mutable std::mutex m_mutex;
   /// iterator typedef
-  typedef typename std::map<KEYTYPE, VALUETYPE>::iterator CacheMapIterator;
+  using CacheMapIterator = typename std::map<KEYTYPE, VALUETYPE>::iterator;
   /// const_iterator typedef
-  typedef typename std::map<KEYTYPE, VALUETYPE>::const_iterator
-      CacheMapConstIterator;
+  using CacheMapConstIterator = typename std::map<KEYTYPE, VALUETYPE>::const_iterator;
 };
 
 } // namespace Kernel
diff --git a/Framework/Kernel/inc/MantidKernel/ConfigService.h b/Framework/Kernel/inc/MantidKernel/ConfigService.h
index e22ad3433e9..0b9f4daa61e 100644
--- a/Framework/Kernel/inc/MantidKernel/ConfigService.h
+++ b/Framework/Kernel/inc/MantidKernel/ConfigService.h
@@ -357,12 +357,10 @@ private:
 
 EXTERN_MANTID_KERNEL template class MANTID_KERNEL_DLL
     Mantid::Kernel::SingletonHolder<ConfigServiceImpl>;
-typedef Mantid::Kernel::SingletonHolder<ConfigServiceImpl> ConfigService;
+using ConfigService = Mantid::Kernel::SingletonHolder<ConfigServiceImpl>;
 
-typedef Mantid::Kernel::ConfigServiceImpl::ValueChanged
-    ConfigValChangeNotification;
-typedef const Poco::AutoPtr<Mantid::Kernel::ConfigServiceImpl::ValueChanged> &
-    ConfigValChangeNotification_ptr;
+using ConfigValChangeNotification = Mantid::Kernel::ConfigServiceImpl::ValueChanged;
+using ConfigValChangeNotification_ptr = const Poco::AutoPtr<Mantid::Kernel::ConfigServiceImpl::ValueChanged> &;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/DataItem.h b/Framework/Kernel/inc/MantidKernel/DataItem.h
index fd02ec7edaa..ec3a665f266 100644
--- a/Framework/Kernel/inc/MantidKernel/DataItem.h
+++ b/Framework/Kernel/inc/MantidKernel/DataItem.h
@@ -92,9 +92,9 @@ private:
 };
 
 /// Shared pointer to a DataItem
-typedef boost::shared_ptr<DataItem> DataItem_sptr;
+using DataItem_sptr = boost::shared_ptr<DataItem>;
 /// Shared pointer to a const DataItem
-typedef boost::shared_ptr<const DataItem> DataItem_const_sptr;
+using DataItem_const_sptr = boost::shared_ptr<const DataItem>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/DataService.h b/Framework/Kernel/inc/MantidKernel/DataService.h
index c29896cf047..12a78532ade 100644
--- a/Framework/Kernel/inc/MantidKernel/DataService.h
+++ b/Framework/Kernel/inc/MantidKernel/DataService.h
@@ -75,12 +75,11 @@ struct CaseInsensitiveCmp {
 template <typename T> class DLLExport DataService {
 private:
   /// Typedef for the map holding the names of and pointers to the data objects
-  typedef std::map<std::string, boost::shared_ptr<T>, CaseInsensitiveCmp>
-      svcmap;
+  using svcmap = std::map<std::string, boost::shared_ptr<T>, CaseInsensitiveCmp>;
   /// Iterator for the data store map
-  typedef typename svcmap::iterator svc_it;
+  using svc_it = typename svcmap::iterator;
   /// Const iterator for the data store map
-  typedef typename svcmap::const_iterator svc_constit;
+  using svc_constit = typename svcmap::const_iterator;
 
 public:
   /// Class for named object notifications
diff --git a/Framework/Kernel/inc/MantidKernel/DiskBuffer.h b/Framework/Kernel/inc/MantidKernel/DiskBuffer.h
index 638fcaebc9b..5806a3deb46 100644
--- a/Framework/Kernel/inc/MantidKernel/DiskBuffer.h
+++ b/Framework/Kernel/inc/MantidKernel/DiskBuffer.h
@@ -61,18 +61,10 @@ public:
    * Index 1: Position in the file.
    * Index 2: Size of the free block
    */
-  typedef boost::multi_index::multi_index_container<
-      FreeBlock,
-      boost::multi_index::indexed_by<
-          boost::multi_index::ordered_non_unique<
-              BOOST_MULTI_INDEX_CONST_MEM_FUN(FreeBlock, uint64_t,
-                                              getFilePosition)>,
-          boost::multi_index::ordered_non_unique<
-              BOOST_MULTI_INDEX_CONST_MEM_FUN(FreeBlock, uint64_t, getSize)>>>
-      freeSpace_t;
+  using freeSpace_t = boost::multi_index::multi_index_container<FreeBlock, boost::multi_index::indexed_by<boost::multi_index::ordered_non_unique< ::boost::multi_index::const_mem_fun<FreeBlock, uint64_t, &FreeBlock::getFilePosition> >, boost::multi_index::ordered_non_unique< ::boost::multi_index::const_mem_fun<FreeBlock, uint64_t, &FreeBlock::getSize> > > >;
 
   /// A way to index the free space by their size
-  typedef freeSpace_t::nth_index<1>::type freeSpace_bySize_t;
+  using freeSpace_bySize_t = freeSpace_t::nth_index<1>::type;
 
   DiskBuffer();
   DiskBuffer(uint64_t m_writeBufferSize);
diff --git a/Framework/Kernel/inc/MantidKernel/DynamicFactory.h b/Framework/Kernel/inc/MantidKernel/DynamicFactory.h
index 625381c994f..84d7d8efd90 100644
--- a/Framework/Kernel/inc/MantidKernel/DynamicFactory.h
+++ b/Framework/Kernel/inc/MantidKernel/DynamicFactory.h
@@ -32,7 +32,7 @@ namespace Kernel {
 //----------------------------------------------------------------------------
 class Logger;
 
-typedef std::less<std::string> CaseSensitiveStringComparator;
+using CaseSensitiveStringComparator = std::less<std::string>;
 
 /** @class DynamicFactory DynamicFactory.h Kernel/DynamicFactory.h
 
@@ -96,7 +96,7 @@ public:
   void disableNotifications() { m_notifyStatus = Disabled; }
 
   /// A typedef for the instantiator
-  typedef AbstractInstantiator<Base> AbstractFactory;
+  using AbstractFactory = AbstractInstantiator<Base>;
   /// Destroys the DynamicFactory and deletes the instantiators for
   /// all registered classes.
   virtual ~DynamicFactory() {
@@ -237,7 +237,7 @@ private:
   }
 
   /// A typedef for the map of registered classes
-  typedef std::map<std::string, AbstractFactory *, Comparator> FactoryMap;
+  using FactoryMap = std::map<std::string, AbstractFactory *, Comparator>;
   /// The map holding the registered class names and their instantiators
   FactoryMap _map;
   /// Flag marking whether we should dispatch notifications
diff --git a/Framework/Kernel/inc/MantidKernel/FacilityInfo.h b/Framework/Kernel/inc/MantidKernel/FacilityInfo.h
index a1da07cbd62..05f1a335f0a 100644
--- a/Framework/Kernel/inc/MantidKernel/FacilityInfo.h
+++ b/Framework/Kernel/inc/MantidKernel/FacilityInfo.h
@@ -131,8 +131,7 @@ private:
   /// this facility
 
   // TODO: remove RemoteJobManager form here (trac ticket #11373)
-  typedef std::map<std::string, boost::shared_ptr<RemoteJobManager>>
-      ComputeResourcesMap;
+  using ComputeResourcesMap = std::map<std::string, boost::shared_ptr<RemoteJobManager> >;
   ComputeResourcesMap m_computeResources; ///< list of compute resources
                                           ///(clusters, etc...) available at
                                           /// this facility
diff --git a/Framework/Kernel/inc/MantidKernel/FunctionTask.h b/Framework/Kernel/inc/MantidKernel/FunctionTask.h
index 64ee2505773..ad73391beea 100644
--- a/Framework/Kernel/inc/MantidKernel/FunctionTask.h
+++ b/Framework/Kernel/inc/MantidKernel/FunctionTask.h
@@ -25,7 +25,7 @@ namespace Kernel {
 class DLLExport FunctionTask final : public Task {
 public:
   /// Typedef for a function with no arguments and no return
-  typedef void (*voidFunction)();
+  using voidFunction = void (*)();
   //---------------------------------------------------------------------------------------------
   /** Constructor for a simple void function.
    *
diff --git a/Framework/Kernel/inc/MantidKernel/IValidator.h b/Framework/Kernel/inc/MantidKernel/IValidator.h
index c814d71e84f..f1f0aad9398 100644
--- a/Framework/Kernel/inc/MantidKernel/IValidator.h
+++ b/Framework/Kernel/inc/MantidKernel/IValidator.h
@@ -19,7 +19,7 @@ namespace Kernel {
 class IValidator;
 
 /// A shared_ptr to an IValidator
-typedef boost::shared_ptr<IValidator> IValidator_sptr;
+using IValidator_sptr = boost::shared_ptr<IValidator>;
 
 namespace {
 /// Helper object to determine if a type is either a pointer/shared_ptr
diff --git a/Framework/Kernel/inc/MantidKernel/InstrumentInfo.h b/Framework/Kernel/inc/MantidKernel/InstrumentInfo.h
index 85dc0b5de58..92473975621 100644
--- a/Framework/Kernel/inc/MantidKernel/InstrumentInfo.h
+++ b/Framework/Kernel/inc/MantidKernel/InstrumentInfo.h
@@ -90,7 +90,7 @@ private:
 
   /// Typedef for the zeropadding holder, first is starting run-number,
   /// second is file prefix - zero padding pair
-  typedef std::map<unsigned int, std::pair<std::string, int>> ZeroPaddingMap;
+  using ZeroPaddingMap = std::map<unsigned int, std::pair<std::string, int> >;
   /// get the zeropadding part
   int getZeroPadding(ZeroPaddingMap::const_iterator it) const {
     return it->second.second;
diff --git a/Framework/Kernel/inc/MantidKernel/InternetHelper.h b/Framework/Kernel/inc/MantidKernel/InternetHelper.h
index 7f6902353e3..a7c3835ae2a 100644
--- a/Framework/Kernel/inc/MantidKernel/InternetHelper.h
+++ b/Framework/Kernel/inc/MantidKernel/InternetHelper.h
@@ -99,7 +99,7 @@ public:
   virtual ~InternetHelper();
 
   // Convenience typedef
-  typedef std::map<std::string, std::string> StringToStringMap;
+  using StringToStringMap = std::map<std::string, std::string>;
 
   // getters and setters
   void setTimeout(int seconds);
diff --git a/Framework/Kernel/inc/MantidKernel/LibraryManager.h b/Framework/Kernel/inc/MantidKernel/LibraryManager.h
index d8bb2acee8e..aa308087a3a 100644
--- a/Framework/Kernel/inc/MantidKernel/LibraryManager.h
+++ b/Framework/Kernel/inc/MantidKernel/LibraryManager.h
@@ -82,7 +82,7 @@ private:
 
 EXTERN_MANTID_KERNEL template class MANTID_KERNEL_DLL
     Mantid::Kernel::SingletonHolder<LibraryManagerImpl>;
-typedef Mantid::Kernel::SingletonHolder<LibraryManagerImpl> LibraryManager;
+using LibraryManager = Mantid::Kernel::SingletonHolder<LibraryManagerImpl>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/ListValidator.h b/Framework/Kernel/inc/MantidKernel/ListValidator.h
index 136cd4e50c9..67408b64912 100644
--- a/Framework/Kernel/inc/MantidKernel/ListValidator.h
+++ b/Framework/Kernel/inc/MantidKernel/ListValidator.h
@@ -196,7 +196,7 @@ protected:
 };
 
 /// ListValidator<std::string> is used heavily
-typedef ListValidator<std::string> StringListValidator;
+using StringListValidator = ListValidator<std::string>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/LogParser.h b/Framework/Kernel/inc/MantidKernel/LogParser.h
index f74caf20812..ed5175e8359 100644
--- a/Framework/Kernel/inc/MantidKernel/LogParser.h
+++ b/Framework/Kernel/inc/MantidKernel/LogParser.h
@@ -107,7 +107,7 @@ private:
 
   /// Typedef for a map of string commands to an enum of strongly typed
   /// commands.
-  typedef std::map<std::string, commands> CommandMap;
+  using CommandMap = std::map<std::string, commands>;
 
   /// TimeSeriesProperty<int> containing data periods. Created by LogParser
   boost::shared_ptr<Kernel::Property> m_periods;
diff --git a/Framework/Kernel/inc/MantidKernel/Logger.h b/Framework/Kernel/inc/MantidKernel/Logger.h
index b13542c7dbc..ed1a37ffe4f 100644
--- a/Framework/Kernel/inc/MantidKernel/Logger.h
+++ b/Framework/Kernel/inc/MantidKernel/Logger.h
@@ -67,7 +67,7 @@ class ThreadSafeLogStream;
 class MANTID_KERNEL_DLL Logger {
 public:
   // Our logger's priority types are the same as POCO's Message's types.
-  typedef Poco::Message::Priority Priority;
+  using Priority = Poco::Message::Priority;
 
   static const std::string *PriorityNames;
 
diff --git a/Framework/Kernel/inc/MantidKernel/MDUnit.h b/Framework/Kernel/inc/MantidKernel/MDUnit.h
index e76bd5eaaf0..6b483b5f279 100644
--- a/Framework/Kernel/inc/MantidKernel/MDUnit.h
+++ b/Framework/Kernel/inc/MantidKernel/MDUnit.h
@@ -83,8 +83,8 @@ public:
   LabelUnit *clone() const override;
 };
 
-typedef std::unique_ptr<MDUnit> MDUnit_uptr;
-typedef std::unique_ptr<const MDUnit> MDUnit_const_uptr;
+using MDUnit_uptr = std::unique_ptr<MDUnit>;
+using MDUnit_const_uptr = std::unique_ptr<const MDUnit>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/MDUnitFactory.h b/Framework/Kernel/inc/MantidKernel/MDUnitFactory.h
index 5cd8d1726e8..10c97e81a4a 100644
--- a/Framework/Kernel/inc/MantidKernel/MDUnitFactory.h
+++ b/Framework/Kernel/inc/MantidKernel/MDUnitFactory.h
@@ -65,9 +65,9 @@ class MANTID_KERNEL_DLL ReciprocalLatticeUnitFactory : public MDUnitFactory {
   bool canInterpret(const std::string &unitString) const override;
 };
 
-typedef std::unique_ptr<MDUnitFactory> MDUnitFactory_uptr;
+using MDUnitFactory_uptr = std::unique_ptr<MDUnitFactory>;
 
-typedef std::unique_ptr<const MDUnitFactory> MDUnitFactory_const_uptr;
+using MDUnitFactory_const_uptr = std::unique_ptr<const MDUnitFactory>;
 
 /// Convience method. Pre-constructed builder chain.
 MDUnitFactory_uptr MANTID_KERNEL_DLL makeMDUnitFactoryChain();
diff --git a/Framework/Kernel/inc/MantidKernel/MRUList.h b/Framework/Kernel/inc/MantidKernel/MRUList.h
index 34c47702f47..59d3dadfee0 100644
--- a/Framework/Kernel/inc/MantidKernel/MRUList.h
+++ b/Framework/Kernel/inc/MantidKernel/MRUList.h
@@ -48,16 +48,10 @@ namespace Kernel {
 template <class T> class DLLExport MRUList {
 private:
   /// hideous typedef for the container holding the list
-  typedef typename boost::multi_index::multi_index_container<
-      T *,
-      boost::multi_index::indexed_by<
-          boost::multi_index::sequenced<>,
-          boost::multi_index::hashed_unique<BOOST_MULTI_INDEX_CONST_MEM_FUN(
-              T, std::uintptr_t, hashIndexFunction)>>> item_list;
+  using item_list = typename boost::multi_index::multi_index_container<T *, boost::multi_index::indexed_by<boost::multi_index::sequenced<>, boost::multi_index::hashed_unique< ::boost::multi_index::const_mem_fun<T, std::uintptr_t, &T::hashIndexFunction> > > >;
 
   /// This typedef makes an ordered item list (you access it by the 1st index)
-  typedef typename boost::multi_index::nth_index<item_list, 1>::type
-      ordered_item_list;
+  using ordered_item_list = typename boost::multi_index::nth_index<item_list, 1>::type;
 
   /// The most recently used list
   mutable item_list il;
diff --git a/Framework/Kernel/inc/MantidKernel/Material.h b/Framework/Kernel/inc/MantidKernel/Material.h
index c77bd7991ee..3cf75d93ad1 100644
--- a/Framework/Kernel/inc/MantidKernel/Material.h
+++ b/Framework/Kernel/inc/MantidKernel/Material.h
@@ -64,7 +64,7 @@ public:
     FormulaUnit(const PhysicalConstants::Atom &atom, const double multiplicity);
   };
 
-  typedef std::vector<FormulaUnit> ChemicalFormula;
+  using ChemicalFormula = std::vector<FormulaUnit>;
 
   static ChemicalFormula parseChemicalFormula(const std::string chemicalSymbol);
 
@@ -193,9 +193,9 @@ private:
 };
 
 /// Typedef for a shared pointer
-typedef boost::shared_ptr<Material> Material_sptr;
+using Material_sptr = boost::shared_ptr<Material>;
 /// Typedef for a shared pointer to a const object
-typedef boost::shared_ptr<const Material> Material_const_sptr;
+using Material_const_sptr = boost::shared_ptr<const Material>;
 }
 }
 
diff --git a/Framework/Kernel/inc/MantidKernel/MaterialBuilder.h b/Framework/Kernel/inc/MantidKernel/MaterialBuilder.h
index 52746165bac..dc5d05f7e27 100644
--- a/Framework/Kernel/inc/MantidKernel/MaterialBuilder.h
+++ b/Framework/Kernel/inc/MantidKernel/MaterialBuilder.h
@@ -62,7 +62,7 @@ public:
   Material build() const;
 
 private:
-  typedef std::tuple<PhysicalConstants::NeutronAtom, double> Composition;
+  using Composition = std::tuple<PhysicalConstants::NeutronAtom, double>;
 
   bool hasOverrideNeutronProperties() const;
   void overrideNeutronProperties(PhysicalConstants::NeutronAtom &neutron) const;
diff --git a/Framework/Kernel/inc/MantidKernel/Matrix.h b/Framework/Kernel/inc/MantidKernel/Matrix.h
index 0c1661aa178..13564d466ac 100644
--- a/Framework/Kernel/inc/MantidKernel/Matrix.h
+++ b/Framework/Kernel/inc/MantidKernel/Matrix.h
@@ -43,7 +43,7 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 template <typename T> class DLLExport Matrix {
 public:
   /// Enable users to retrieve the element type
-  typedef T value_type;
+  using value_type = T;
 
 private:
   size_t m_numRows;    ///< Number of rows    (x coordinate)
@@ -194,9 +194,9 @@ private:
 // Typedefs
 //-------------------------------------------------------------------------
 /// A matrix of doubles
-typedef Mantid::Kernel::Matrix<double> DblMatrix;
+using DblMatrix = Mantid::Kernel::Matrix<double>;
 /// A matrix of ints
-typedef Mantid::Kernel::Matrix<int> IntMatrix;
+using IntMatrix = Mantid::Kernel::Matrix<int>;
 
 //-------------------------------------------------------------------------
 // Utility methods
diff --git a/Framework/Kernel/inc/MantidKernel/MatrixProperty.h b/Framework/Kernel/inc/MantidKernel/MatrixProperty.h
index 2d0a49f831f..1fe8149a0f5 100644
--- a/Framework/Kernel/inc/MantidKernel/MatrixProperty.h
+++ b/Framework/Kernel/inc/MantidKernel/MatrixProperty.h
@@ -35,7 +35,7 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 template <class TYPE = double>
 class MatrixProperty : public PropertyWithValue<Matrix<TYPE>> {
   /// Typedef the held type
-  typedef Kernel::Matrix<TYPE> HeldType;
+  using HeldType = Kernel::Matrix<TYPE>;
 
 public:
   /// Constructor
diff --git a/Framework/Kernel/inc/MantidKernel/NearestNeighbours.h b/Framework/Kernel/inc/MantidKernel/NearestNeighbours.h
index 3ba554a9bdc..2ab31361711 100644
--- a/Framework/Kernel/inc/MantidKernel/NearestNeighbours.h
+++ b/Framework/Kernel/inc/MantidKernel/NearestNeighbours.h
@@ -103,9 +103,8 @@ template <int N = 3> class DLLExport NearestNeighbours {
 
 public:
   // typedefs for code brevity
-  typedef Eigen::Matrix<double, N, 1> VectorType;
-  typedef std::vector<std::tuple<VectorType, size_t, double>>
-      NearestNeighbourResults;
+  using VectorType = Eigen::Matrix<double, N, 1>;
+  using NearestNeighbourResults = std::vector<std::tuple<VectorType, size_t, double> >;
 
   /** Create a nearest neighbour search object
    *
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyHelper.h b/Framework/Kernel/inc/MantidKernel/PropertyHelper.h
index 86c67e618ab..1fbe4423e46 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyHelper.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyHelper.h
@@ -210,7 +210,7 @@ namespace detail {
 template <typename T>
 void toValue(const std::string &strvalue, std::vector<T> &value,
              std::true_type) {
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer values(strvalue, ",",
                    tokenizer::TOK_IGNORE_EMPTY | tokenizer::TOK_TRIM);
   value.clear();
@@ -224,7 +224,7 @@ template <typename T>
 void toValue(const std::string &strvalue, std::vector<T> &value,
              std::false_type) {
   // Split up comma-separated properties
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer values(strvalue, ",",
                    tokenizer::TOK_IGNORE_EMPTY | tokenizer::TOK_TRIM);
 
@@ -263,7 +263,7 @@ template <typename T>
 void toValue(const std::string &strvalue, std::vector<std::vector<T>> &value,
              const std::string &outerDelimiter = ",",
              const std::string &innerDelimiter = "+") {
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer tokens(strvalue, outerDelimiter,
                    tokenizer::TOK_IGNORE_EMPTY | tokenizer::TOK_TRIM);
 
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyHistory.h b/Framework/Kernel/inc/MantidKernel/PropertyHistory.h
index c45a142bc2b..9ddcba5d976 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyHistory.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyHistory.h
@@ -96,9 +96,9 @@ private:
 };
 
 // typedefs for property history pointers
-typedef boost::shared_ptr<PropertyHistory> PropertyHistory_sptr;
-typedef boost::shared_ptr<const PropertyHistory> PropertyHistory_const_sptr;
-typedef std::vector<PropertyHistory_sptr> PropertyHistories;
+using PropertyHistory_sptr = boost::shared_ptr<PropertyHistory>;
+using PropertyHistory_const_sptr = boost::shared_ptr<const PropertyHistory>;
+using PropertyHistories = std::vector<PropertyHistory_sptr>;
 
 MANTID_KERNEL_DLL std::ostream &operator<<(std::ostream &,
                                            const PropertyHistory &);
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyManager.h b/Framework/Kernel/inc/MantidKernel/PropertyManager.h
index dc1d192135b..40d847287ed 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyManager.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyManager.h
@@ -135,7 +135,7 @@ private:
       const std::unordered_set<std::string> &ignoreProperties);
 
   /// typedef for the map holding the properties
-  typedef std::map<std::string, std::unique_ptr<Property>> PropertyMap;
+  using PropertyMap = std::map<std::string, std::unique_ptr<Property> >;
   /// The properties under management
   PropertyMap m_properties;
   /// Stores the order in which the properties were declared.
@@ -143,7 +143,7 @@ private:
 };
 
 /// Typedef for a shared pointer to a PropertyManager
-typedef boost::shared_ptr<PropertyManager> PropertyManager_sptr;
+using PropertyManager_sptr = boost::shared_ptr<PropertyManager>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyManagerDataService.h b/Framework/Kernel/inc/MantidKernel/PropertyManagerDataService.h
index f516aec4cca..5a3493f1efd 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyManagerDataService.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyManagerDataService.h
@@ -53,8 +53,7 @@ private:
 
 EXTERN_MANTID_KERNEL template class MANTID_KERNEL_DLL
     Mantid::Kernel::SingletonHolder<PropertyManagerDataServiceImpl>;
-typedef Mantid::Kernel::SingletonHolder<PropertyManagerDataServiceImpl>
-    PropertyManagerDataService;
+using PropertyManagerDataService = Mantid::Kernel::SingletonHolder<PropertyManagerDataServiceImpl>;
 
 } // Namespace Kernel
 } // Namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyManagerProperty.h b/Framework/Kernel/inc/MantidKernel/PropertyManagerProperty.h
index 04a9a5839d6..f71e0094bcb 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyManagerProperty.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyManagerProperty.h
@@ -35,8 +35,8 @@ class MANTID_KERNEL_DLL PropertyManagerProperty final
     : public PropertyWithValue<PropertyManager_sptr> {
 public:
   // Convenience typedefs
-  typedef PropertyWithValue<PropertyManager_sptr> BaseClass;
-  typedef PropertyManager_sptr ValueType;
+  using BaseClass = PropertyWithValue<PropertyManager_sptr>;
+  using ValueType = PropertyManager_sptr;
 
   PropertyManagerProperty(const std::string &name,
                           unsigned int direction = Direction::Input);
diff --git a/Framework/Kernel/inc/MantidKernel/PropertyManager_fwd.h b/Framework/Kernel/inc/MantidKernel/PropertyManager_fwd.h
index 1bbe4f8b028..a5ba001ece5 100644
--- a/Framework/Kernel/inc/MantidKernel/PropertyManager_fwd.h
+++ b/Framework/Kernel/inc/MantidKernel/PropertyManager_fwd.h
@@ -34,13 +34,13 @@ namespace Kernel {
 /// forward declare of Mantid::Kernel::PropertyManager
 class PropertyManager;
 /// shared pointer to Mantid::Kernel::PropertyManager
-typedef boost::shared_ptr<PropertyManager> PropertyManager_sptr;
+using PropertyManager_sptr = boost::shared_ptr<PropertyManager>;
 /// shared pointer to Mantid::Kernel::PropertyManager(const version)
-typedef boost::shared_ptr<const PropertyManager> PropertyManager_const_sptr;
+using PropertyManager_const_sptr = boost::shared_ptr<const PropertyManager>;
 /// unique pointer to Mantid::Kernel::PropertyManager
-typedef std::unique_ptr<PropertyManager> PropertyManager_uptr;
+using PropertyManager_uptr = std::unique_ptr<PropertyManager>;
 /// unique pointer to Mantid::Kernel::PropertyManager (const version)
-typedef std::unique_ptr<const PropertyManager> PropertyManager_const_uptr;
+using PropertyManager_const_uptr = std::unique_ptr<const PropertyManager>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/PseudoRandomNumberGenerator.h b/Framework/Kernel/inc/MantidKernel/PseudoRandomNumberGenerator.h
index 1d028f76817..64e321d8a22 100644
--- a/Framework/Kernel/inc/MantidKernel/PseudoRandomNumberGenerator.h
+++ b/Framework/Kernel/inc/MantidKernel/PseudoRandomNumberGenerator.h
@@ -62,7 +62,7 @@ public:
   void generateNextPoint() override;
   // Interface to boost distribution generators
   /// Result (output) value type.
-  typedef double result_type;
+  using result_type = double;
   /// Return the minimum value of the range
   virtual double min() const = 0;
   /// Return the maximum value of the range
diff --git a/Framework/Kernel/inc/MantidKernel/RemoteJobManager.h b/Framework/Kernel/inc/MantidKernel/RemoteJobManager.h
index 534d9b219ae..69ad397f50f 100644
--- a/Framework/Kernel/inc/MantidKernel/RemoteJobManager.h
+++ b/Framework/Kernel/inc/MantidKernel/RemoteJobManager.h
@@ -32,7 +32,7 @@ public:
   // Name/Value pairs for POST data.  Note that the second string might be
   // binary, and might be
   // fairly large.  (If it were a JPG image for example...)
-  typedef std::map<std::string, std::string> PostDataMap;
+  using PostDataMap = std::map<std::string, std::string>;
 
   // Low level HTTP functions - GET, POST, etc...
   // It's up to the various algorithms to know what to do with these functions
diff --git a/Framework/Kernel/inc/MantidKernel/SingletonHolder.h b/Framework/Kernel/inc/MantidKernel/SingletonHolder.h
index b4a440788d8..be71da991e3 100644
--- a/Framework/Kernel/inc/MantidKernel/SingletonHolder.h
+++ b/Framework/Kernel/inc/MantidKernel/SingletonHolder.h
@@ -34,7 +34,7 @@ namespace Mantid {
 namespace Kernel {
 
 /// prototype for function passed to atexit()
-typedef void (*atexit_func_t)();
+using atexit_func_t = void (*)();
 
 extern MANTID_KERNEL_DLL void CleanupSingletons();
 extern MANTID_KERNEL_DLL void AddSingleton(atexit_func_t func);
@@ -43,7 +43,7 @@ extern MANTID_KERNEL_DLL void AddSingleton(atexit_func_t func);
 template <typename T> class SingletonHolder {
 public:
   /// Allow users to access to the type returned by Instance()
-  typedef T HeldType;
+  using HeldType = T;
 
   static T &Instance();
 
diff --git a/Framework/Kernel/inc/MantidKernel/StringTokenizer.h b/Framework/Kernel/inc/MantidKernel/StringTokenizer.h
index a2a039a56d0..7bb06f574ea 100644
--- a/Framework/Kernel/inc/MantidKernel/StringTokenizer.h
+++ b/Framework/Kernel/inc/MantidKernel/StringTokenizer.h
@@ -50,9 +50,9 @@ public:
     TOK_IGNORE_FINAL_EMPTY_TOKEN =
         4 ///< ignore an empty token at the end of the string.
   };
-  typedef std::vector<std::string> TokenVec;
-  typedef std::vector<std::string>::iterator Iterator;
-  typedef std::vector<std::string>::const_iterator ConstIterator;
+  using TokenVec = std::vector<std::string>;
+  using Iterator = std::vector<std::string>::iterator;
+  using ConstIterator = std::vector<std::string>::const_iterator;
   /// Constructs an object from an empty string.
   StringTokenizer() = default;
   /// Constructor requiring a string to tokenize and a string of separators.
diff --git a/Framework/Kernel/inc/MantidKernel/TestChannel.h b/Framework/Kernel/inc/MantidKernel/TestChannel.h
index 24cfa6a0aa0..8cadb9a7613 100644
--- a/Framework/Kernel/inc/MantidKernel/TestChannel.h
+++ b/Framework/Kernel/inc/MantidKernel/TestChannel.h
@@ -44,7 +44,7 @@ namespace Mantid {
 
 class MANTID_KERNEL_DLL TestChannel : public Poco::Channel {
 public:
-  typedef std::list<Poco::Message> MsgList;
+  using MsgList = std::list<Poco::Message>;
   void log(const Poco::Message &msg) override;
   MsgList &list();
   void clear();
diff --git a/Framework/Kernel/inc/MantidKernel/ThreadSchedulerMutexes.h b/Framework/Kernel/inc/MantidKernel/ThreadSchedulerMutexes.h
index 95fbce921a0..396e49499d8 100644
--- a/Framework/Kernel/inc/MantidKernel/ThreadSchedulerMutexes.h
+++ b/Framework/Kernel/inc/MantidKernel/ThreadSchedulerMutexes.h
@@ -157,9 +157,9 @@ public:
 
 protected:
   /// Map to tasks, sorted by cost
-  typedef std::multimap<double, Task *> InnerMap;
+  using InnerMap = std::multimap<double, Task *>;
   /// Map to maps, sorted by Mutex*
-  typedef std::map<boost::shared_ptr<std::mutex>, InnerMap> SuperMap;
+  using SuperMap = std::map<boost::shared_ptr<std::mutex>, InnerMap>;
 
   /** A super map; first key = a Mutex *
    * Inside it: second key = the cost. */
diff --git a/Framework/Kernel/inc/MantidKernel/TimeSplitter.h b/Framework/Kernel/inc/MantidKernel/TimeSplitter.h
index 53c6af492c4..0e6f664ff49 100644
--- a/Framework/Kernel/inc/MantidKernel/TimeSplitter.h
+++ b/Framework/Kernel/inc/MantidKernel/TimeSplitter.h
@@ -53,7 +53,7 @@ private:
  * It is a vector of SplittingInterval classes.
  *
  */
-typedef std::vector<SplittingInterval> TimeSplitterType;
+using TimeSplitterType = std::vector<SplittingInterval>;
 
 // -------------- Operators ---------------------
 MANTID_KERNEL_DLL TimeSplitterType
diff --git a/Framework/Kernel/inc/MantidKernel/TypedValidator.h b/Framework/Kernel/inc/MantidKernel/TypedValidator.h
index eb83c0be3a3..67279f4ee7d 100644
--- a/Framework/Kernel/inc/MantidKernel/TypedValidator.h
+++ b/Framework/Kernel/inc/MantidKernel/TypedValidator.h
@@ -78,7 +78,7 @@ template <typename ElementType>
 class DLLExport TypedValidator<boost::shared_ptr<ElementType>>
     : public IValidator {
   /// Shared ptr type
-  typedef boost::shared_ptr<ElementType> ElementType_sptr;
+  using ElementType_sptr = boost::shared_ptr<ElementType>;
 
 protected:
   /// Override this function to check the validity of the type
diff --git a/Framework/Kernel/inc/MantidKernel/Unit.h b/Framework/Kernel/inc/MantidKernel/Unit.h
index b2ee0891898..3cbb16907fb 100644
--- a/Framework/Kernel/inc/MantidKernel/Unit.h
+++ b/Framework/Kernel/inc/MantidKernel/Unit.h
@@ -226,23 +226,21 @@ protected:
 private:
   /// A 'quick conversion' requires the constant by which to multiply the input
   /// and the power to which to raise it
-  typedef std::pair<double, double> ConstantAndPower;
+  using ConstantAndPower = std::pair<double, double>;
   /// Lists, for a given starting unit, the units to which a 'quick conversion'
   /// can be made
-  typedef tbb::concurrent_unordered_map<std::string, ConstantAndPower>
-      UnitConversions;
+  using UnitConversions = tbb::concurrent_unordered_map<std::string, ConstantAndPower>;
   /// The possible 'quick conversions' are held in a map with the starting unit
   /// as the key
-  typedef tbb::concurrent_unordered_map<std::string, UnitConversions>
-      ConversionsMap;
+  using ConversionsMap = tbb::concurrent_unordered_map<std::string, UnitConversions>;
   /// The table of possible 'quick conversions'
   static ConversionsMap s_conversionFactors;
 };
 
 /// Shared pointer to the Unit base class
-typedef boost::shared_ptr<Unit> Unit_sptr;
+using Unit_sptr = boost::shared_ptr<Unit>;
 /// Shared pointer to the Unit base class (const version)
-typedef boost::shared_ptr<const Unit> Unit_const_sptr;
+using Unit_const_sptr = boost::shared_ptr<const Unit>;
 
 //----------------------------------------------------------------------
 // Now the concrete units classes
diff --git a/Framework/Kernel/inc/MantidKernel/UnitFactory.h b/Framework/Kernel/inc/MantidKernel/UnitFactory.h
index d8de9c7e8fa..8e4c70e2817 100644
--- a/Framework/Kernel/inc/MantidKernel/UnitFactory.h
+++ b/Framework/Kernel/inc/MantidKernel/UnitFactory.h
@@ -86,7 +86,7 @@ private:
 EXTERN_MANTID_KERNEL template class MANTID_KERNEL_DLL
     Mantid::Kernel::SingletonHolder<UnitFactoryImpl>;
 
-typedef SingletonHolder<UnitFactoryImpl> UnitFactory;
+using UnitFactory = SingletonHolder<UnitFactoryImpl>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/UnitLabel.h b/Framework/Kernel/inc/MantidKernel/UnitLabel.h
index 9348e7d16a6..2f4bab8a316 100644
--- a/Framework/Kernel/inc/MantidKernel/UnitLabel.h
+++ b/Framework/Kernel/inc/MantidKernel/UnitLabel.h
@@ -38,11 +38,11 @@ public:
   UnitLabel() = delete;
 
   /// Type that contains a plain-text string
-  typedef std::string AsciiString;
+  using AsciiString = std::string;
   /// Type that can hold a unicode string. This may vary per-platform depending
   /// on the
   /// width of the the built-in std::wstring
-  typedef std::wstring Utf8String;
+  using Utf8String = std::wstring;
 
   /// Constructor giving labels as ascii, unicode, and latex respectively
   UnitLabel(const AsciiString &ascii, const Utf8String &unicode,
diff --git a/Framework/Kernel/inc/MantidKernel/UsageService.h b/Framework/Kernel/inc/MantidKernel/UsageService.h
index e5dc24cfc37..aa4090fe6e5 100644
--- a/Framework/Kernel/inc/MantidKernel/UsageService.h
+++ b/Framework/Kernel/inc/MantidKernel/UsageService.h
@@ -147,7 +147,7 @@ private:
 
 EXTERN_MANTID_KERNEL template class MANTID_KERNEL_DLL
     Mantid::Kernel::SingletonHolder<UsageServiceImpl>;
-typedef Mantid::Kernel::SingletonHolder<UsageServiceImpl> UsageService;
+using UsageService = Mantid::Kernel::SingletonHolder<UsageServiceImpl>;
 
 } // namespace Kernel
 } // namespace Mantid
diff --git a/Framework/Kernel/inc/MantidKernel/UserCatalogInfo.h b/Framework/Kernel/inc/MantidKernel/UserCatalogInfo.h
index 86e92bda36a..9c9028f6127 100644
--- a/Framework/Kernel/inc/MantidKernel/UserCatalogInfo.h
+++ b/Framework/Kernel/inc/MantidKernel/UserCatalogInfo.h
@@ -9,7 +9,7 @@
 namespace Mantid {
 namespace Kernel {
 
-typedef boost::optional<std::string> OptionalPath;
+using OptionalPath = boost::optional<std::string>;
 
 class CatalogConfigService {
 public:
diff --git a/Framework/Kernel/inc/MantidKernel/VMD.h b/Framework/Kernel/inc/MantidKernel/VMD.h
index 4cfce09de7a..f3e73f0d26c 100644
--- a/Framework/Kernel/inc/MantidKernel/VMD.h
+++ b/Framework/Kernel/inc/MantidKernel/VMD.h
@@ -98,10 +98,10 @@ protected:
 };
 
 /// Underlying data type for the VMD type
-typedef float VMD_t;
+using VMD_t = float;
 
 /// Define the VMD as using the double or float data type.
-typedef VMDBase<VMD_t> VMD;
+using VMD = VMDBase<VMD_t>;
 
 // Overload operator <<
 MANTID_KERNEL_DLL std::ostream &operator<<(std::ostream &,
diff --git a/Framework/Kernel/inc/MantidKernel/cow_ptr.h b/Framework/Kernel/inc/MantidKernel/cow_ptr.h
index dce5b0dd32b..d062271470d 100644
--- a/Framework/Kernel/inc/MantidKernel/cow_ptr.h
+++ b/Framework/Kernel/inc/MantidKernel/cow_ptr.h
@@ -56,8 +56,8 @@ namespace Kernel {
 */
 template <typename DataType> class cow_ptr {
 public:
-  typedef boost::shared_ptr<DataType> ptr_type; ///< typedef for the storage
-  typedef DataType value_type;                  ///< typedef for the data type
+  using ptr_type = boost::shared_ptr<DataType>; ///< typedef for the storage
+  using value_type = DataType;                  ///< typedef for the data type
 
 private:
   ptr_type Data; ///< Real object Ptr
@@ -203,10 +203,10 @@ cow_ptr<DataType>::cow_ptr(const ptr_type &resourceSptr) noexcept {
 } // NAMESPACE Kernel
 
 /// typedef for the data storage used in Mantid matrix workspaces
-typedef std::vector<double> MantidVec;
+using MantidVec = std::vector<double>;
 
 /// typedef for the pointer to data storage used in Mantid matrix workspaces
-typedef Kernel::cow_ptr<MantidVec> MantidVecPtr;
+using MantidVecPtr = Kernel::cow_ptr<MantidVec>;
 
 } // NAMESPACE Mantid
 
diff --git a/Framework/Kernel/src/ANN/kd_tree.h b/Framework/Kernel/src/ANN/kd_tree.h
index 93db64f4cf1..01d9e464154 100644
--- a/Framework/Kernel/src/ANN/kd_tree.h
+++ b/Framework/Kernel/src/ANN/kd_tree.h
@@ -70,15 +70,7 @@ public:
 //		for building the tree.
 //----------------------------------------------------------------------
 
-typedef void (*ANNkd_splitter)( // splitting routine for kd-trees
-    ANNpointArray pa,           // point array (unaltered)
-    ANNidxArray pidx,           // point indices (permuted on return)
-    const ANNorthRect &bnds,    // bounding rectangle for cell
-    int n,                      // number of points
-    int dim,                    // dimension of space
-    int &cut_dim,               // cutting dimension (returned)
-    ANNcoord &cut_val,          // cutting value (returned)
-    int &n_lo);                 // num of points on low side (returned)
+using ANNkd_splitter = void (*)(ANNpointArray, ANNidxArray, const ANNorthRect &, int, int, int &, ANNcoord &, int &);                 // num of points on low side (returned)
 
 //----------------------------------------------------------------------
 //	Leaf kd-tree node
diff --git a/Framework/Kernel/src/ANN/pr_queue.h b/Framework/Kernel/src/ANN/pr_queue.h
index f25bbad05ba..ff6d7db8a63 100644
--- a/Framework/Kernel/src/ANN/pr_queue.h
+++ b/Framework/Kernel/src/ANN/pr_queue.h
@@ -32,8 +32,8 @@
 //----------------------------------------------------------------------
 //	Basic types.
 //----------------------------------------------------------------------
-typedef void *PQinfo;  // info field is generic pointer
-typedef ANNdist PQkey; // key field is distance
+using PQinfo = void *;  // info field is generic pointer
+using PQkey = ANNdist; // key field is distance
 
 //----------------------------------------------------------------------
 //	Priority queue
diff --git a/Framework/Kernel/src/ANN/pr_queue_k.h b/Framework/Kernel/src/ANN/pr_queue_k.h
index ed501d3f185..8da43d1e0bb 100644
--- a/Framework/Kernel/src/ANN/pr_queue_k.h
+++ b/Framework/Kernel/src/ANN/pr_queue_k.h
@@ -31,8 +31,8 @@
 //----------------------------------------------------------------------
 //	Basic types
 //----------------------------------------------------------------------
-typedef ANNdist PQKkey; // key field is distance
-typedef int PQKinfo;    // info field is int
+using PQKkey = ANNdist; // key field is distance
+using PQKinfo = int;    // info field is int
 
 //----------------------------------------------------------------------
 //	Constants
diff --git a/Framework/Kernel/src/ConfigService.cpp b/Framework/Kernel/src/ConfigService.cpp
index 53385cfa7e4..ff37f5e09b0 100644
--- a/Framework/Kernel/src/ConfigService.cpp
+++ b/Framework/Kernel/src/ConfigService.cpp
@@ -110,7 +110,7 @@ std::vector<std::string> splitPath(const std::string &path) {
 template <typename T> class ConfigServiceImpl::WrappedObject : public T {
 public:
   /// The template type of class that is being wrapped
-  typedef T element_type;
+  using element_type = T;
   /// Simple constructor
   WrappedObject() : T() { m_pPtr = static_cast<T *>(this); }
 
diff --git a/Framework/Kernel/src/FacilityInfo.cpp b/Framework/Kernel/src/FacilityInfo.cpp
index 52de210b3fa..519821a771f 100644
--- a/Framework/Kernel/src/FacilityInfo.cpp
+++ b/Framework/Kernel/src/FacilityInfo.cpp
@@ -90,7 +90,7 @@ void FacilityInfo::fillExtensions(const Poco::XML::Element *elem) {
     g_log.error("No file extensions defined");
     throw std::runtime_error("No file extensions defined");
   }
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer exts(extsStr, ",",
                  tokenizer::TOK_IGNORE_EMPTY | tokenizer::TOK_TRIM);
   for (const auto &ext : exts) {
diff --git a/Framework/Kernel/src/Interpolation.cpp b/Framework/Kernel/src/Interpolation.cpp
index 6ff8d02d72a..4b866761d46 100644
--- a/Framework/Kernel/src/Interpolation.cpp
+++ b/Framework/Kernel/src/Interpolation.cpp
@@ -174,7 +174,7 @@ std::ostream &operator<<(std::ostream &os, const Interpolation &f) {
 */
 std::istream &operator>>(std::istream &in, Interpolation &f) {
 
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   std::string str;
   getline(in, str);
   tokenizer values(str, ";", tokenizer::TOK_TRIM);
diff --git a/Framework/Kernel/src/MagneticIon.cpp b/Framework/Kernel/src/MagneticIon.cpp
index 72034db1325..a6a611fd394 100644
--- a/Framework/Kernel/src/MagneticIon.cpp
+++ b/Framework/Kernel/src/MagneticIon.cpp
@@ -807,7 +807,7 @@ constexpr double j_Au5[3][9] = {
 }
 
 /// Typedef the map type
-typedef std::unordered_map<std::string, MagneticIon> IonIndex;
+using IonIndex = std::unordered_map<std::string, MagneticIon>;
 
 /// Forward decalre intializer
 void createIonLookup(IonIndex &ion_map);
diff --git a/Framework/Kernel/src/Material.cpp b/Framework/Kernel/src/Material.cpp
index 4d81289c1b9..099e90ab824 100644
--- a/Framework/Kernel/src/Material.cpp
+++ b/Framework/Kernel/src/Material.cpp
@@ -10,8 +10,8 @@
 namespace Mantid {
 
 namespace Kernel {
-typedef Mantid::Kernel::StringTokenizer tokenizer;
-typedef std::pair<std::string, std::string> str_pair;
+using tokenizer = Mantid::Kernel::StringTokenizer;
+using str_pair = std::pair<std::string, std::string>;
 
 using PhysicalConstants::Atom;
 using PhysicalConstants::getAtom;
diff --git a/Framework/Kernel/src/MaterialBuilder.cpp b/Framework/Kernel/src/MaterialBuilder.cpp
index 9d74c5bc1cf..1d9113f21b5 100644
--- a/Framework/Kernel/src/MaterialBuilder.cpp
+++ b/Framework/Kernel/src/MaterialBuilder.cpp
@@ -59,7 +59,7 @@ MaterialBuilder &MaterialBuilder::setFormula(const std::string &formula) {
     throw std::invalid_argument(
         "MaterialBuilder::setFormula() - Empty formula provided.");
   }
-  typedef Material::ChemicalFormula ChemicalFormula;
+  using ChemicalFormula = Material::ChemicalFormula;
   try {
     m_formula = Mantid::Kernel::make_unique<ChemicalFormula>(
         ChemicalFormula(Material::parseChemicalFormula(formula)));
diff --git a/Framework/Kernel/src/MaterialXMLParser.cpp b/Framework/Kernel/src/MaterialXMLParser.cpp
index 1e110f55d4e..e376188d2ef 100644
--- a/Framework/Kernel/src/MaterialXMLParser.cpp
+++ b/Framework/Kernel/src/MaterialXMLParser.cpp
@@ -54,7 +54,7 @@ struct BuilderHandle {
   virtual void operator()(MaterialBuilder &builder,
                           const std::string &value) const = 0;
 };
-typedef std::unique_ptr<BuilderHandle> BuilderHandle_uptr;
+using BuilderHandle_uptr = std::unique_ptr<BuilderHandle>;
 
 // Pointer to member function on MaterialBuilder
 template <typename ArgType>
@@ -65,8 +65,7 @@ using BuilderMethod = MaterialBuilder &(MaterialBuilder::*)(ArgType);
 template <typename ArgType>
 struct TypedBuilderHandle final : public BuilderHandle {
   // Remove const/reference qualifiers from ArgType
-  typedef typename std::remove_const<
-      typename std::remove_reference<ArgType>::type>::type ValueType;
+  using ValueType = typename std::remove_const<typename std::remove_reference<ArgType>::type>::type;
 
   explicit TypedBuilderHandle(BuilderMethod<ArgType> m)
       : BuilderHandle(), m_method(m) {}
@@ -81,7 +80,7 @@ private:
   BuilderMethod<ArgType> m_method;
 };
 
-typedef std::unordered_map<std::string, BuilderHandle_uptr> Handlers;
+using Handlers = std::unordered_map<std::string, BuilderHandle_uptr>;
 
 // Insert a handle into the given map
 template <typename ArgType>
@@ -148,7 +147,7 @@ void addToBuilder(MaterialBuilder *builder, const std::string &attr,
  */
 Material MaterialXMLParser::parse(std::istream &istr) const {
   using namespace Poco::XML;
-  typedef AutoPtr<Document> DocumentPtr;
+  using DocumentPtr = AutoPtr<Document>;
 
   InputSource src(istr);
   DOMParser parser;
@@ -195,7 +194,7 @@ Material MaterialXMLParser::parse(std::istream &istr) const {
  */
 Material MaterialXMLParser::parse(Poco::XML::Element *element) const {
   using namespace Poco::XML;
-  typedef AutoPtr<NamedNodeMap> NamedNodeMapPtr;
+  using NamedNodeMapPtr = AutoPtr<NamedNodeMap>;
   NamedNodeMapPtr attrs = element->attributes();
   const auto id = attrs->getNamedItem(ID_ATT);
   if (!id || id->nodeValue().empty()) {
diff --git a/Framework/Kernel/src/PropertyManager.cpp b/Framework/Kernel/src/PropertyManager.cpp
index 6cf843553ef..ca022354426 100644
--- a/Framework/Kernel/src/PropertyManager.cpp
+++ b/Framework/Kernel/src/PropertyManager.cpp
@@ -347,7 +347,7 @@ void PropertyManager::setPropertiesWithSimpleString(
     const std::unordered_set<std::string> &ignoreProperties) {
   ::Json::Value propertyJson;
   // Split up comma-separated properties
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
 
   boost::char_separator<char> sep(";");
   tokenizer propPairs(propertiesString, ";",
diff --git a/Framework/Kernel/src/Strings.cpp b/Framework/Kernel/src/Strings.cpp
index a1f1868ee9a..7798b8f2d86 100644
--- a/Framework/Kernel/src/Strings.cpp
+++ b/Framework/Kernel/src/Strings.cpp
@@ -850,7 +850,7 @@ int setValues(const std::string &Line, const std::vector<int> &Index,
 
   //  mathFunc::crossSort(sIndex,OPt);
 
-  typedef std::vector<int>::const_iterator iVecIter;
+  using iVecIter = std::vector<int>::const_iterator;
   std::vector<int>::const_iterator sc = sIndex.begin();
   std::vector<int>::const_iterator oc = OPt.begin();
   int cnt(0);
@@ -1072,7 +1072,7 @@ int isMember(const std::vector<std::string> &group,
  */
 std::vector<int> parseRange(const std::string &str, const std::string &elemSep,
                             const std::string &rangeSep) {
-  typedef Mantid::Kernel::StringTokenizer Tokenizer;
+  using Tokenizer = Mantid::Kernel::StringTokenizer;
 
   Tokenizer elements;
 
diff --git a/Framework/Kernel/src/UserStringParser.cpp b/Framework/Kernel/src/UserStringParser.cpp
index d365130ca67..7c094e615dc 100644
--- a/Framework/Kernel/src/UserStringParser.cpp
+++ b/Framework/Kernel/src/UserStringParser.cpp
@@ -84,7 +84,7 @@ bool UserStringParser::Contains(const std::string &input, char ch) {
   */
 std::vector<std::string>
 UserStringParser::separateComma(const std::string &input) {
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer tokens(input, ",", Mantid::Kernel::StringTokenizer::TOK_TRIM);
   return tokens.asVector();
 }
@@ -142,7 +142,7 @@ void UserStringParser::Tokenize(const std::string &input,
                                 const std::string &delimiter,
                                 unsigned int &start, unsigned int &end,
                                 unsigned int &step) {
-  typedef Mantid::Kernel::StringTokenizer tokenizer;
+  using tokenizer = Mantid::Kernel::StringTokenizer;
   tokenizer tokens(input, delimiter);
   // validate the separated tokens
   if (!isValidStepSeparator(input, tokens.asVector())) {
diff --git a/Framework/Kernel/src/VectorHelper.cpp b/Framework/Kernel/src/VectorHelper.cpp
index 199281c7001..d2aa3739793 100644
--- a/Framework/Kernel/src/VectorHelper.cpp
+++ b/Framework/Kernel/src/VectorHelper.cpp
@@ -211,7 +211,7 @@ void rebin(const std::vector<double> &xold, const std::vector<double> &yold,
       }
     } else {
       // non-distribution, just square root final error value
-      typedef double (*pf)(double);
+      using pf = double (*)(double);
       pf uf = std::sqrt;
       std::transform(enew.begin(), enew.end(), enew.begin(), uf);
     }
@@ -322,7 +322,7 @@ void rebinHistogram(const std::vector<double> &xold,
                  // (should be done externally)
   {
     // Now take the root-square of the errors
-    typedef double (*pf)(double);
+    using pf = double (*)(double);
     pf uf = std::sqrt;
     std::transform(enew.begin(), enew.end(), enew.begin(), uf);
   }
@@ -523,7 +523,7 @@ std::vector<NumT> splitStringIntoVector(std::string listString) {
   // Split the string and turn it into a vector.
   std::vector<NumT> values;
 
-  typedef std::vector<std::string> split_vector_type;
+  using split_vector_type = std::vector<std::string>;
   split_vector_type strs;
 
   boost::split(strs, listString, boost::is_any_of(", "));
diff --git a/Framework/Kernel/test/BinaryFileTest.h b/Framework/Kernel/test/BinaryFileTest.h
index 11dae6ad287..b0d5bd2efd6 100644
--- a/Framework/Kernel/test/BinaryFileTest.h
+++ b/Framework/Kernel/test/BinaryFileTest.h
@@ -16,9 +16,9 @@ using std::cout;
 
 //==========================================================================================
 /// Make the code clearer by having this an explicit type
-typedef uint32_t PixelType;
+using PixelType = uint32_t;
 /// Type for the DAS time of flight (data file)
-typedef uint32_t DasTofType;
+using DasTofType = uint32_t;
 /// Structure that matches the form in the binary event list.
 struct DasEvent {
   /// Time of flight.
diff --git a/Framework/Kernel/test/DataServiceTest.h b/Framework/Kernel/test/DataServiceTest.h
index 14b39c910d0..cdd80bae12f 100644
--- a/Framework/Kernel/test/DataServiceTest.h
+++ b/Framework/Kernel/test/DataServiceTest.h
@@ -295,8 +295,8 @@ public:
     svc.add("Four", four);
     svc.add("Two", two);
 
-    typedef Mantid::Kernel::DataServiceSort sortedEnum;
-    typedef Mantid::Kernel::DataServiceHidden hiddenEnum;
+    using sortedEnum = Mantid::Kernel::DataServiceSort;
+    using hiddenEnum = Mantid::Kernel::DataServiceHidden;
 
     // First assert that sort does not impact size
     TS_ASSERT_EQUALS(svc.getObjectNames(sortedEnum::Sorted).size(),
diff --git a/Framework/Kernel/test/DynamicFactoryTest.h b/Framework/Kernel/test/DynamicFactoryTest.h
index fbbc52509ea..19d9e912b75 100644
--- a/Framework/Kernel/test/DynamicFactoryTest.h
+++ b/Framework/Kernel/test/DynamicFactoryTest.h
@@ -20,7 +20,7 @@ class CaseSensitiveIntFactory
     : public DynamicFactory<int, CaseSensitiveStringComparator> {};
 
 class DynamicFactoryTest : public CxxTest::TestSuite {
-  typedef boost::shared_ptr<int> int_ptr;
+  using int_ptr = boost::shared_ptr<int>;
 
 public:
   // This pair of boilerplate methods prevent the suite being created statically
diff --git a/Framework/Kernel/test/FilterChannelTest.h b/Framework/Kernel/test/FilterChannelTest.h
index e59ffadbaa4..e21210140e4 100644
--- a/Framework/Kernel/test/FilterChannelTest.h
+++ b/Framework/Kernel/test/FilterChannelTest.h
@@ -140,7 +140,7 @@ public:
     a.addChannel(tChannel.get());
 
     // create a priority map
-    typedef std::map<unsigned int, std::string> priorityMap;
+    using priorityMap = std::map<unsigned int, std::string>;
     priorityMap pMap;
     pMap.insert(priorityMap::value_type(1, "FATAL"));
     pMap.insert(priorityMap::value_type(2, "CRITICAL"));
diff --git a/Framework/Kernel/test/IValidatorTest.h b/Framework/Kernel/test/IValidatorTest.h
index 3aac7815d0e..8005c39019c 100644
--- a/Framework/Kernel/test/IValidatorTest.h
+++ b/Framework/Kernel/test/IValidatorTest.h
@@ -25,7 +25,7 @@ public:
 
 private:
   std::string check(const boost::any &value) const override {
-    typedef std::vector<double> HeldType;
+    using HeldType = std::vector<double>;
     const HeldType *dataPtr = boost::any_cast<const HeldType *>(value);
     m_head = dataPtr->data();
     return "";
diff --git a/Framework/Kernel/test/MDAxisValidatorTest.h b/Framework/Kernel/test/MDAxisValidatorTest.h
index df39af877fa..f21d126f0b4 100644
--- a/Framework/Kernel/test/MDAxisValidatorTest.h
+++ b/Framework/Kernel/test/MDAxisValidatorTest.h
@@ -11,7 +11,7 @@
 #include "boost/make_shared.hpp"
 
 using Mantid::Kernel::MDAxisValidator;
-typedef boost::shared_ptr<MDAxisValidator> MDAxisValidator_sptr;
+using MDAxisValidator_sptr = boost::shared_ptr<MDAxisValidator>;
 
 class MDAxisValidatorTest : public CxxTest::TestSuite {
 public:
diff --git a/Framework/Kernel/test/MultiFileNameParserTest.h b/Framework/Kernel/test/MultiFileNameParserTest.h
index 32038147bfb..85eb85dead2 100644
--- a/Framework/Kernel/test/MultiFileNameParserTest.h
+++ b/Framework/Kernel/test/MultiFileNameParserTest.h
@@ -19,7 +19,7 @@ public:
   }
   static void destroySuite(MultiFileNameParserTest *suite) { delete suite; }
 
-  typedef std::vector<std::vector<unsigned int>> ParsedRuns;
+  using ParsedRuns = std::vector<std::vector<unsigned int> >;
 
   /////////////////////////////////////////////////////////////////////////////
   // Testing of parseMultiRunString.
diff --git a/Framework/Kernel/test/NDPseudoRandomNumberGeneratorTest.h b/Framework/Kernel/test/NDPseudoRandomNumberGeneratorTest.h
index b2d02302632..18de5157a0f 100644
--- a/Framework/Kernel/test/NDPseudoRandomNumberGeneratorTest.h
+++ b/Framework/Kernel/test/NDPseudoRandomNumberGeneratorTest.h
@@ -13,7 +13,7 @@ using Mantid::Kernel::NDRandomNumberGenerator;
 
 class NDPseudoRandomNumberGeneratorTest : public CxxTest::TestSuite {
 private:
-  typedef boost::shared_ptr<NDRandomNumberGenerator> NDGenerator_sptr;
+  using NDGenerator_sptr = boost::shared_ptr<NDRandomNumberGenerator>;
 
 public:
   void test_That_Next_Always_Returns_ND_Size_Array() {
@@ -63,7 +63,7 @@ private:
   createTestGenerator(const size_t seedValue, const double start = -1.0,
                       const double end = -1.0) {
     using namespace Mantid::Kernel;
-    typedef NDPseudoRandomNumberGenerator<MersenneTwister> NDMersenneTwister;
+    using NDMersenneTwister = NDPseudoRandomNumberGenerator<MersenneTwister>;
     const unsigned int ndims(3);
     if (start > 0.0 && end > 0.0)
       return boost::make_shared<NDMersenneTwister>(ndims, seedValue, start,
diff --git a/Framework/Kernel/test/PropertyWithValueTest.h b/Framework/Kernel/test/PropertyWithValueTest.h
index 7ed65e38470..0dd1155b140 100644
--- a/Framework/Kernel/test/PropertyWithValueTest.h
+++ b/Framework/Kernel/test/PropertyWithValueTest.h
@@ -107,8 +107,8 @@ public:
   the size of the property is 2.
   */
   void testSizeOfVectorOfVectorProperty() {
-    typedef std::vector<int> VecInt;
-    typedef std::vector<VecInt> VecVecInt;
+    using VecInt = std::vector<int>;
+    using VecVecInt = std::vector<VecInt>;
     // Test vector value property.
     VecVecInt v;
     v.push_back(VecInt(1, 0));
-- 
GitLab