https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121327
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ppalka at gcc dot gnu.org
--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Clang + libc++ also errors: https://godbolt.org/z/oGTh4h6aG
#include <concepts>
template <typename T>
class id {
T m_id;
public:
constexpr id() : m_id() {}
constexpr bool operator==(const id& other) const = default;
zR
template <std::equality_comparable_with<T> U>
constexpr bool operator==(const U& other) const {
return m_id == other;
}
};
struct user_id : public id<int> {};
bool foo(user_id a, user_id b) {
return a == b;
}