https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100631
TC <rs2740 at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rs2740 at gmail dot com --- Comment #4 from TC <rs2740 at gmail dot com> --- (In reply to 康桓瑋 from comment #1) > Another issue is that in elements_view::_Sentinel in ranges#L3677: > > > template<bool _Const2, > typename _Base2 = __detail::__maybe_const_t<_Const2, _Vp>> > requires sized_sentinel_for<sentinel_t<_Base>, iterator_t<_Base2>> > friend constexpr range_difference_t<_Base2> > operator-(const _Iterator<_Const2>& __x, const _Sentinel& __y) > { return __x._M_current - __y._M_end; } > > > the return type of the function is range_difference_t<_Base2>, but in > [range.elements#sentinel], it is defined as range_difference_t<Base>: > > > template<bool OtherConst> > requires sized_sentinel_for<sentinel_t<Base>, iterator_t<maybe- > const<OtherConst, V>>> > friend constexpr range_difference_t<Base> > operator-(const iterator<OtherConst>& x, const sentinel& y); > > > Perhaps range_difference_t<Base> and range_difference_t<_Base2> are > equivalent in this case, but I am not sure. This one is a problem with the WP.