c++ 为什么我得到“非聚合不能用初始化程序列表初始化”

std::map<std::string, int> m = {
    {"Marc G.", 123},
    {"Zulija N.", 456},
    {"John D.", 369}
};

在Xcode中,我将C语言方言设置为“C 0x [-std = c 0x]”,C标准库设置为“C0X支持”的libc LLVM C标准库

我需要设置别的吗?

最佳答案
编辑10/2013:这个答案是非常古老的,苹果公司确实支持这一点。

Cl 11.0以前还没有支持C 11初始化列表

请参阅执行状态:Clang C++11 implementation status

(只有编译器支持此功能,您的语法看起来是正确的)

转载注明原文:c++ 为什么我得到“非聚合不能用初始化程序列表初始化” - 代码日志