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.