https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67631
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed| |2015-09-18 CC| |trippels at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |4.9.2, 5.2.1, 6.0 --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- markus@x4 tmp % cat bra.ii class X { public: X (int); explicit operator unsigned (); }; unsigned foo () { return unsigned{ X (0) }; } markus@x4 tmp % icpc -Wall -Wextra -c -std=c++14 bra.ii markus@x4 tmp % clang++ -Wall -Wextra -c -std=c++14 bra.ii markus@x4 tmp % g++ -Wall -Wextra -c -std=c++14 bra.ii bra.ii: In function ‘unsigned int foo()’: bra.ii:10:26: error: cannot convert ‘X’ to ‘unsigned int’ in initialization return unsigned{ X (0) }; ^