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

Reply via email to