https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93043
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Nik_Vzdornov from comment #2) > why is this considered a bug? Can I consider this as > https://eel.is/c++draft/over.match.oper#11.sentence-1(CWG1687), which > introduced: "except that the second standard conversion sequence of a > user-defined conversion sequence (12.2.4.2.3 [over.ics.user]) is not > applied". We even have cppref : "If the overload resolution selects a > built-in candidate, the user-defined conversion sequence from an operand of > class type is not allowed to have a second standard conversion sequence: the > user-defined conversion function must give the expected operand type > directly" and other cases when X { int operator(); } x; in the context of > the expression x + 1.0 we consider https://eel.is/c++draft/over.built#10 > firstly and then "Usual arithmetic conversions" ยง7.4 [expr.arith.conv]. clang, MSVC and EDG all accepts this; that is GCC is the one which is different here.