5 #include <unordered_map>
12 template <
class GenericObjectT>
class TypeMap {
17 std::unordered_map<std::type_index, GenericObjectT *> object_storage_map_;
27 template <
class ObjectT>
void setObject(ObjectT &
object) {
28 object_storage_map_[
typeid(ObjectT)] = &
object;
38 return static_cast<ObjectT *
>(object_storage_map_[
typeid(ObjectT)]);
48 template <
class ObjectT>
const ObjectT *
getObject()
const {
50 static_cast<const ObjectT *>(object_storage_map_.at(
typeid(ObjectT))));
ObjectT * getObject()
return the object stored
Definition: type_map.h:37
const ObjectT * getObject() const
return a const oject pointer stored
Definition: type_map.h:48
Store objects with a common base class.
Definition: type_map.h:12
void setObject(ObjectT &object)
Store the object with base class as GenericObjectT.
Definition: type_map.h:27