我实现了一个看起来像这样的单例类:
h file:
class MySingleton
{
public:
static MySingleton& GetInstance();
private:
MySingleton();
virtual ~MySingleton();
std::map<MyStruct, PointerToClass*, MyCompareStruct> mMyMap;
CRITICAL_SECTION mMyMapCriticalSection;
};
cpp文件:
MySingleton& MySingleton::GetInstance()
{
static MySingleton instance;
return instance;
}
在某些运行中,我的代码在实例初始化时崩溃:
static MySingleton instance;
我在实施中做错了什么? 我正在开发visual studio 2015
答案 0 :(得分:0)
可能崩溃的是#std :: map&#39; stdlib完全初始化之前的初始化。
如果从另一个静态初始化程序调用{{1}},则会发生这种情况。未在不同库之间定义初始化顺序。
解决方案是在调用main之前不构造非POD事物。