https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102247
TC <rs2740 at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rs2740 at gmail dot com
--- Comment #2 from TC <rs2740 at gmail dot com> ---
struct X { explicit X() {} };
struct Y { Y() {} };
void f(X);
void f(Y);
void g() {
f({}); // GCC rejects, clang accepts
}
GCC is correct. For copy-list-initialization, explicitness of constructor is
not considered in forming implicit conversion sequences; rather, if a explicit
constructor is chosen, the program is ill-formed. See core issue 1228 and
[over.match.list].