https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96489

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I believe the rationale for this is that if your <=> can't be defaulted, then
it must be doing something special, and synthesizing == from it is not
necessarily safe.

If <=> is defaulted, then it does the "obvious" thing and so synthesizing == to
do the obvious thing is probably OK.

If <=> is user-provided but you know that an implicitly-defined operator==
would do the right thing, define operator== as defaulted.

Clang agrees with GCC FWIW.

Reply via email to