Created attachment 1930808 [details] C11Test.cpp It appears not only MSVC, but also clang and intel compiler does differently. In the sample reproducer, to have the same output of other compilers needs commenting out Test(std::initializer_list<Test> init) The issue is not specific to gcc-toolset-11. Apparently gcc understands the braced initializer as a verbatim vector initializer list: https://en.cppreference.com/w/cpp/utility/initializer_list
This is a known problem. There's been some movement in the upstream PR: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83264#c11 so maybe this will get resolved relatively soon. But it needs to be fixed in the upstream first.