Следующий код компилируется OK с использованием XCode 5.0, но не Visual Studio 2013.
#include <vector>
class VectorInit
{
private:
std::vector<int> m_vector{1, 2, 3}; // fails to compile using VS 2013
};
int main()
{
std::vector<int> vector{1, 2, 3};
VectorInit vectorInit;
return 0;
}
Это ошибка, о которой сообщает Visual Studio:
Error 1 error C2664: 'std::vector<int,std::allocator<_Ty>>::vector(std::initializer_list<int>,const std::allocator<_Ty> &)' : cannot convert argument 3 from 'int' to 'const std::allocator<_Ty> &' c:\visual studio 2013\projects\vector-init\main.cpp 6 1 vector-init
Мне не удалось найти пример того, как инициализировать такой вектор в определении класса.
Какой компилятор правильный?
Если синтаксис неверен, является ли единственным вариантом инициализировать m_vector в списке инициализаторов конструктора?