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