https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80943
Bug ID: 80943 Summary: Conversion function selected in list-initialization in C++1z mode Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: barry.revzin at gmail dot com Target Milestone: --- Consider this example: #include <iostream> struct S; struct T { T() = default; T(S const& ) { std::cout << "1\n"; } }; struct S { operator T() { std::cout << "2\n"; return T{}; } }; int main() { S s; T t{s}; } gcc 7.1 in C++1z mode prints 2. But it should print 1 (as it does in C++11/4 modes), as list-initialization doesn't consider conversion functions.