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!