https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117788
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Is the paper that simple? I thought it says that the array to pointer conversions no longer happen unless the other operand is a pointer. Doesn't that affect overloaded operators as well? I mean say struct S { bool operator== (int *); }; bool foo () { int a[4] = {}; return S {} == a; } Or are those handled elsewhere? "The converted operands shall have arithmetic, enumeration, or pointer type." and corresponding equality sentences would imply that.