https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51553
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Jason, is this resolution definitely correct? Clang and EDG agree with GCC 4.6 here, and [over.best.ics] does seem relevant. Maybe related, maybe not. G++ also rejects: struct A { explicit operator bool() const { return false; } }; A a; bool b = bool{a}; which Clang and EDG accept, and it certainly seems odd when bool(a) and (bool)a are OK.