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<std::string, TypeBase *> TypeMap;
-
- TypeMap types;
+ std::map<std::string, TypeBase *> types;
public:
~TypeRegistry();
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>
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