我在匿名命名空间中有一个全局变量。
namespace {
std::unordered_map<std::string, std::string> m;
}
A::A() { m.insert(make_pair("1", "2")); } // crasches
void A::insert() { m.insert(make_pair("1", "2")); } // ok
如果尝试使用map
内部构造函数,我会得到访问冲突读取位置。但是如果我A
在初始化后使用它,它就可以工作。
这种行为正确吗?