Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why am I getting "non-aggregate cannot be initialized with initializer list"

Tags:

c++

xcode

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?

like image 461
joels Avatar asked Jan 19 '12 03:01

joels


2 Answers

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)

like image 133
Firoze Lafeer Avatar answered Oct 26 '22 20:10

Firoze Lafeer


Clang 3.6.2 supports initializer-list syntax. Just remember to pass -std=c++11 flag when compiling.

like image 26
BartoszKP Avatar answered Oct 26 '22 18:10

BartoszKP