23 #ifndef _OBJECT_FACTORY_HPP_ 24 #define _OBJECT_FACTORY_HPP_ 39 template <
typename object_key,
typename object_base>
class factory 42 template <
typename object_type>
44 std::function <object_base*()> object_creator = default_creator <object_type>)
46 typename std::map<object_key, std::function <object_base*()>>::iterator it =
m_creators_map.find (k);
60 typename std::map<object_key, std::function <object_base*()>>::iterator it =
m_creators_map.find (k);
65 return (it->second) ();
69 template <
typename object_type>
72 return new object_type;
75 std::map <object_key, std::function <object_base*()>>
m_creators_map;
std::map< object_key, std::function< object_base *()> > m_creators_map
static object_base * default_creator()
object_base * create_object(object_key k)
int register_creator(object_key k, std::function< object_base *()> object_creator=default_creator< object_type >)