初始化全局静态变量的范式

来源:互联网 发布:网络聊天能聊出感情吗 编辑:程序博客网 时间:2024/05/12 18:04
auto& ClassMap()
{
static auto _ClassMap = []()
{
map<type_index, type_index> _ClassMap;
struct
{
decltype(_ClassMap)& map;
template<class U, class V>
void registry() {
map.insert(make_pair(type_index(typeid(U)), type_index(typeid(V))));
};
} reg{ _ClassMap };


//reg.registry<GameObject, void>();
reg.registry<SpaceStation, GameObject>();
reg.registry<SpaceShip, GameObject>();
reg.registry<Asteroid, GameObject>();
reg.registry<WarShip, SpaceShip>();
reg.registry<UltraAsteroid, Asteroid>();
 
return _ClassMap;
}();
return _ClassMap;
}
0 0
原创粉丝点击