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.

Reply via email to