我在匿名命名空間中有一個全局變量。cpp文件中的全局變量
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
已經初始化它的作品。
這種行爲是否正確?
我們需要更多的代碼。 – 2012-08-13 13:28:35
你有靜態成員'A'嗎? – 2012-08-13 13:30:18
如果在另一個cpp文件中定義了全局實例,則此實例和m的創建順序未定義。 – 2012-08-13 13:31:50