class X { public: explicit X(int) { } }; class Y { public: Y(int) { } }; void foo(X) { } void bar(Y) { } int main(int, char**) { foo({ 42 }); bar({ 42 }); return 0; }
Standard input is empty
prog.cpp: In function ‘int main(int, char**)’: prog.cpp:27:15: error: converting to ‘X’ from initializer list would use explicit constructor ‘X::X(int)’ foo({ 42 }); ^
Standard output is empty