https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112490
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |14.3
--- Comment #10 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Thanks for testing. The commit that was just pushed uses a slightly different
approach to work around the constraint recursion that should be better overall.
Fixed on trunk so far.
(In reply to Chameleon from comment #8)
> No, it is partially fixed.
>
> Please patch also this:
>
> template<__detail::__not_a_const_iterator _Sent,
> same_as<basic_const_iterator> _Self>
> requires sized_sentinel_for<_Sent, _It>
> friend constexpr difference_type
> operator-(const _Sent& __x, const _Self& __y)
> noexcept(noexcept(__x - __y._M_current))
> { return __x - __y._M_current; }
Hmm, I considered adjusting this friend operator- too but I couldn't come up
with a testcase that currently misbehaves. Do you have a testcase? The
operator-'s sized_sentinel_for constraint doesn't seem as potentially loopy as
the relops' totally_ordered_with constraint.