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.

Reply via email to