Подтвердить что ты не робот

Почему я получаю "неагрегат не может быть инициализирован с помощью списка инициализаторов"

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

В Xcode у меня установлен диалект языка С++ на "С++ 0x [-std = С++ 0x]" и стандартная библиотека С++, установленная в "библиотеку libС++ LLVM С++ Standard с поддержкой С++ 0X"

Нужно ли устанавливать что-то еще?

4b9b3361

Ответ 1

EDIT 10/2013: этот ответ действительно старый, Apple Clang действительно поддерживает это сейчас.

С++ 11 Списки инициализаторов пока не поддерживаются как Clang 3.0

См. статус реализации здесь: Статус реализации Clang С++ 11

(Ваш синтаксис выглядит корректно, если только компилятор поддерживает эту функцию)

Ответ 2

Clang 3.6.2 поддерживает синтаксис списка инициализаторов. Просто не забудьте передать флаг -std=c++11 при компиляции.