Breaking Änderung in C ++ 20 oder Regression in Clang-Trunk / Gcc-Trunk beim Überladen des Gleichheitsvergleichs mit nicht-booleschem Rückgabewert?

Der folgende Code lässt sich gut mit Clang-Trunk im C ++ 17-Modus kompilieren, bricht jedoch im C ++ 2a-Modus (bevorstehendes C ++ 20) ab: // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const...