[dcl.fct.def.default] p1 just states: > A function that is explicitly defaulted shall >> - be a special member function or **a comparison operator function** ([[over.binary]](https://eel.is/c++draft/over.binary)), and >> - not have default arguments[.](https://eel.is/c++draft/dcl.fct.def.default#1.sentence-2) If I don't omit some other rules, there are no more restrictions on what the comparison operator function shall satisfy. Consider this example: ````cpp enum E{}; bool operator==(E,E) = default; ```` This [example](https://godbolt.org/z/9W7xf6nh3) directly causes GCC to crash while Clang reports some diagnoses for which I cannot find the corresponding wording in the standard.