Список инициаторов не работает с вектором в Visual Studio 2012?
Возможный дубликат:
Возможности С++ 11 в Visual Studio 2012
Итак, я читал списки инициализаторов С++ 11 сегодня через Wikipedia и увидел, что С++ 11 поддерживает следующее синтаксис для стандартных контейнеров:
std::vector<std::string> v = { "xyzzy", "plugh", "abracadabra" };
std::vector<std::string> v({ "xyzzy", "plugh", "abracadabra" });
std::vector<std::string> v{ "xyzzy", "plugh", "abracadabra" };
Когда я пытаюсь выполнить следующее в Visual Studio 2012, я получаю ошибку компиляции C2552: 'vecs' : non-aggregates cannot be initialized with initializer list
Вот мой код:
#include <vector>
using namespace std;
int main() {
vector<string> vecs = {"h", "g", "e"};
}
Поддерживает ли VS2012 списки инициализаторов или я просто что-то не понимаю?
Спасибо!
Ответы
Ответ 1
Visual Studio 2012 не поддерживает списки инициализаторов.
Ну, это произошло только до ноября 2012 года. Теперь это происходит, по крайней мере, в альфа-состоянии. Конечно, этот код все равно не будет работать, потому что они все еще помещают списки инициализаторов в стандартную библиотеку.