std::map<std::string, int> m = {
{"Marc G.", 123},
{"Zulija N.", 456},
{"John D.", 369}
};
在Xcode中我有C++語言方言設置爲「C++ 0x中[-std =的C++ 0x]」和C++標準庫集到「libC++ LLVM C++標準庫,支持C++ 0X」爲什麼我會收到「非集合無法初始化列表初始化」
我需要設置別的東西嗎?
std::map<std::string, int> m = {
{"Marc G.", 123},
{"Zulija N.", 456},
{"John D.", 369}
};
在Xcode中我有C++語言方言設置爲「C++ 0x中[-std =的C++ 0x]」和C++標準庫集到「libC++ LLVM C++標準庫,支持C++ 0X」爲什麼我會收到「非集合無法初始化列表初始化」
我需要設置別的東西嗎?
編輯10/2013:這個答案真的很老,Apple Clang現在確實支持這個。
C++ 11名初始化列表尚不支持作爲鏘3.0
見的執行情況在這裏:(如果只是編譯器支持此功能,你的語法看起來是正確的)Clang C++11 implementation status
Clang 3.6.2支持初始化器列表語法。編譯時只記得通過-std=c++11
標誌。
語法看起來正確,有或沒有'='(假設你在當然的範圍內帶了std :: string)。 –
'g ++ -std = C++ 11' –