Changement de rupture en C ++ 20 ou régression dans clang-trunk / gcc-trunk lors de la surcharge de comparaison d'égalité avec une valeur de retour non booléenne?

Le code suivant compile correctement avec clang-trunk en mode c ++ 17 mais se casse en mode c ++ 2a (c ++ 20 à venir): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};}...