#ifndef DD_STATICSYSTEM_H__ #define DD_STATICSYSTEM_H__ #include namespace dd { class StaticSystem { private: StaticSystem(); public: template static T* Get() { return static_cast(Instances.at(typeid(T).hash_code())); } template static void Set(T* ptr) { Instances[typeid(T).hash_code()] = static_cast(ptr); } private: static std::unordered_map Instances; }; } #endif