]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/typeregistry.h
Use C++11 features with containers
[libs/core.git] / source / core / typeregistry.h
index 27610859c75105d4b774e2d4a8e44493cb415d67..dd5dc01ba2e1e96db0e9056d7d5a9202669814cb 100644 (file)
@@ -43,9 +43,7 @@ private:
                virtual void invoke(T arg) const { action(this->keyword, arg); }
        };
 
-       typedef std::map<std::string, TypeBase *> TypeMap;
-
-       TypeMap types;
+       std::map<std::string, TypeBase *> types;
 
 public:
        ~TypeRegistry();
@@ -65,8 +63,8 @@ public:
 template<template<typename> class A, typename T>
 TypeRegistry<A, T>::~TypeRegistry()
 {
-       for(typename TypeMap::iterator i=types.begin(); i!=types.end(); ++i)
-               delete i->second;
+       for(auto &kvp: types)
+               delete kvp.second;
 }
 
 template<template<typename> class A, typename T>
@@ -88,8 +86,8 @@ void TypeRegistry<A, T>::invoke(const std::string &kw, T arg) const
 template<template<typename> class A, typename T>
 void TypeRegistry<A, T>::invoke_all(T arg) const
 {
-       for(typename TypeMap::const_iterator i=types.begin(); i!=types.end(); ++i)
-               i->second->invoke(arg);
+       for(auto &kvp: types)
+               kvp.second->invoke(arg);
 }
 
 } // namespace Msp