X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Ftyperegistry.h;h=193fe07fa9810d1426a4a430e53e26d9eeb802c4;hb=4ad05c650c55e3edccea887d15b26f41cdf60fb6;hp=27610859c75105d4b774e2d4a8e44493cb415d67;hpb=47ce9e396aca83fbf90b7130263aaa4c8439af9c;p=libs%2Fcore.git diff --git a/source/core/typeregistry.h b/source/core/typeregistry.h index 2761085..193fe07 100644 --- a/source/core/typeregistry.h +++ b/source/core/typeregistry.h @@ -40,12 +40,10 @@ private: RegisteredType(const std::string &kw): TypeBase(kw) { } - virtual void invoke(T arg) const { action(this->keyword, arg); } + void invoke(T arg) const override { action(this->keyword, arg); } }; - typedef std::map TypeMap; - - TypeMap types; + std::map types; public: ~TypeRegistry(); @@ -65,8 +63,8 @@ public: template class A, typename T> TypeRegistry::~TypeRegistry() { - for(typename TypeMap::iterator i=types.begin(); i!=types.end(); ++i) - delete i->second; + for(auto &kvp: types) + delete kvp.second; } template class A, typename T> @@ -88,8 +86,8 @@ void TypeRegistry::invoke(const std::string &kw, T arg) const template class A, typename T> void TypeRegistry::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