Следующий фрагмент кода prints 0
compiled with vc++ и prints 1
compiled with g++ or clang++:Visual C++ инициализация несогласованности с НКУ и лязгом
#include <iostream>
#include <vector>
struct S
{
S() = default;
std::vector<int> v{0};
};
int main()
{
std::vector<S> s{{}};
std::cout << s.front().v.size() << std::endl;
}
Является ли это ошибка в ВХ ++?
Если предоставлен пользовательский конструктор (S() {};
вместо S() = default;
) vc++ starts to print 1
, too.
Выглядит действительно как ошибка компилятора в компиляторе vC++. –
Я, кажется, помню, что на C++ 17 ожидается предстоящее изменение в отношении фигурного скоринга с одним элементом. Что произойдет, если вы измените значение 0 на 13? –
@ Cheersandhth.-Alf, например. 'std :: vector v {11,22};' создает ту же проблему. –