Ошибка компилятора в Visual studio? - PullRequest
0 голосов
/ 10 мая 2018

Следующие компиляции с помощью компилятора Microsoft C ++ (VS 15.5.6 --std = c ++ 14) вместо выдачи ожидаемой ошибки.

#include <string>

template<class type>
class Foo {
public:
    Foo(type x, std::string y) 
        : x(x)
        , y(y)
    {}

    type x;
    std::string y;
};

template<class type>
class Bar {
public:
    // this line should produce a compile error
    Foo<type> f = { 1, 2, 3 };
};


int main() {
  Bar<double> b;

  // b.x is some random number
  // b.y can't be inspected (probably garbage)
}

Компиляция с g ++ 6.3 приводит к

could not convert '{1, 2, 3}' from '<brace-enclosed initializer list>' to 'Foo<std::__cxx11::basic_string<char> >'

Это ошибка компилятора в Visual studio?

...