Почему я получаю "неагрегат не может быть инициализирован с помощью списка инициализаторов"
std::map<std::string, int> m = {
{"Marc G.", 123},
{"Zulija N.", 456},
{"John D.", 369}
};
В Xcode у меня установлен диалект языка С++ на "С++ 0x [-std = С++ 0x]" и стандартная библиотека С++, установленная в "библиотеку libС++ LLVM С++ Standard с поддержкой С++ 0X"
Нужно ли устанавливать что-то еще?
Ответы
Ответ 1
EDIT 10/2013: этот ответ действительно старый, Apple Clang действительно поддерживает это сейчас.
С++ 11 Списки инициализаторов пока не поддерживаются как Clang 3.0
См. статус реализации здесь: Статус реализации Clang С++ 11
(Ваш синтаксис выглядит корректно, если только компилятор поддерживает эту функцию)
Ответ 2
Clang 3.6.2 поддерживает синтаксис списка инициализаторов. Просто не забудьте передать флаг -std=c++11
при компиляции.