https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108393
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=99599 CC| |ppalka at gcc dot gnu.org --- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> --- IIUC this is a consequence of CWG2369, which made us check check constraints before checking non-dependent conversions, and which AFAIK only GCC implements. It can be worked around by encoding the conversion to unreachable_sentinel_t as an additional constraint guarding the real constraint: template<std::convertible_to<unreachable_sentinel_t> T, C _Iter> friend constexpr bool operator==(T, const _Iter&) noexcept; See also PR99599