Проблема со списком инициализаторов VC++ 2013

У меня есть следующий код, который не компилируется с vc++ 2013. Это ошибка компилятора?

class Test
{
public:
    Test() :
        mTestBuff{ 1, 2, 3, 4 }
    {

    }

private:
    const vector< int > mTestBuff;
};

error C2661: 'std::vector<int,std::allocator<_Ty>>::vector' : no overloaded function takes 4 arguments

Это прекрасно компилируется с GCC 4.8 и MinGW. Что я могу сделать, чтобы удалить ошибку компиляции?


person Elvis Dukaj    schedule 03.02.2014    source источник
comment
Я не могу проверить это с помощью MSVC2013 прямо сейчас, но пытались ли вы заключить список инициализаторов в круглые скобки... в конце концов, вы хотите вызвать конструктор. Демо здесь.   -  person PaperBirdMaster    schedule 03.02.2014
comment
это работает... но почему это работает на gcc?   -  person Elvis Dukaj    schedule 03.02.2014
comment
Для справки, сообщение об ошибке на английском языке гласит: error C2661: 'std::vector<int,std::allocator<_Ty>>::vector' : no overloaded function takes 4 arguments   -  person Snps    schedule 03.02.2014


Ответы (1)


Попробуй это:

Test() :
    mTestBuff({ 1, 2, 3, 4 })
{

}

Демо здесь.

person PaperBirdMaster    schedule 03.02.2014
comment
@elvis.dukaj Вы правы; непринятие синтаксиса в OP является ошибкой в ​​Visual C++. - person Casey; 03.02.2014