C++ – why am I getting “non-aggregate cannot be initialized with initializer list”

cxcode

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

In Xcode I have C++ Language Dialect set to "C++0x [-std=c++0x]" and C++ Standard Library set to "libc++ LLVM C++ Standard library with C++0X Support"

Do I need to set something else?

Best Answer

EDIT 10/2013: this answer is really old, Apple Clang does support this now.

C++11 Initializer Lists are not yet supported as of Clang 3.0

See the implementation status here: Clang C++11 implementation status

(Your syntax looks correct if only the compiler supported this feature)

Related Topic