https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119259
--- Comment #6 from Anders Wind <awia00 at gmail dot com> --- To give an example as to why it would be beneficial to not eagerly fail in this case: We have a template type which, just like my example, has operator==()=default (as well as other functionality). This enables the user to perform equality checks when the inner type supports it, and still use the type (just without comparing it to anything) for when it does not.