Я ожидал, что следующий код скомпилируется, но Visual Studio 2013 Update 2 выдает ошибку, тогда как g++ 4.7 компилирует его нормально.
using std::vector;
using std::string;
struct Settings
{
vector<string> allowable = { "-t", "--type", "-v", "--verbosity" };
};
Компиляция VS 2013 завершается ошибкой:
'std::vector<std::string,std::allocator<_Ty>>::vector'
: ни одна перегруженная функция не принимает 4 аргумента
Если я изменю элемент следующим образом, он отлично скомпилируется:
vector<string> allowable = vector<string> { "-t", "--type", "-v", "--verbosity" };
Я просмотрел предложение. ссылка из FAQ Бьярна, и я просмотрел MSDN страница о реализованных функциях C++11 в VS 2013, но я все еще смущен. Должен ли он компилироваться как есть, или я ошибаюсь и должен указывать тип дважды?
initializer_list
ужасно сломан в MSVC 2013, на самом деле многие функции С++ 11 немного зависят от того, работают они или нет :( - person Ylisar   schedule 02.07.2014