Этот фрагмент кода хорошо компилируется на gcc 8.1 и clang 6.0, но дает ICE на MSVC (предварительный выпуск на 2017 и 2018 годы):
#include <vector> #include <string> struct Data { unsigned char data; }; struct A { std::string x; Data y{255}; }; void f(std::vector<A> arg) { } int main() { f(std::vector<A>{{"Test"}}); }
Очевидно, я столкнулся с еще одной ошибкой компилятора MSVC.
Но чтобы быть действительно уверенным: приведенный выше код соответствует стандарту C ++ или я тоже допустил ошибку?
Задача ещё не решена.
Других решений пока нет …