https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112490
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=115046
--- Comment #15 from Patrick Palka <ppalka at gcc dot gnu.org> ---
(In reply to Patrick Palka from comment #10)
> 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.
Patching this friend operator- fixes the constraint recursion reported in
PR115046!