@@ -36,24 +36,19 @@ namespace ranges {
3636namespace __shift_left {
3737
3838struct __fn {
39- template <class _Iter , class _Sent >
40- _LIBCPP_HIDE_FROM_ABI constexpr subrange<_Iter> static __shift_left_impl (
41- _Iter __first, _Sent __last, iter_difference_t <_Iter> __n) {
39+ template <permutable _Iter, sentinel_for<_Iter> _Sent>
40+ _LIBCPP_HIDE_FROM_ABI static constexpr subrange<_Iter>
41+ operator ()( _Iter __first, _Sent __last, iter_difference_t <_Iter> __n) {
4242 auto __ret = std::__shift_left<_RangeAlgPolicy>(std::move (__first), std::move (__last), std::move (__n));
4343 return {std::move (__ret.first ), std::move (__ret.second )};
4444 }
4545
46- template <permutable _Iter, sentinel_for<_Iter> _Sent>
47- _LIBCPP_HIDE_FROM_ABI constexpr subrange<_Iter>
48- operator ()(_Iter __first, _Sent __last, iter_difference_t <_Iter> __n) const {
49- return __shift_left_impl (std::move (__first), std::move (__last), std::move (__n));
50- }
51-
5246 template <forward_range _Range>
5347 requires permutable<iterator_t <_Range>>
54- _LIBCPP_HIDE_FROM_ABI constexpr borrowed_subrange_t <_Range>
55- operator ()(_Range&& __range, range_difference_t <_Range> __n) const {
56- return __shift_left_impl (ranges::begin (__range), ranges::end (__range), std::move (__n));
48+ _LIBCPP_HIDE_FROM_ABI static constexpr borrowed_subrange_t <_Range>
49+ operator ()(_Range&& __range, range_difference_t <_Range> __n) {
50+ auto __ret = std::__shift_left<_RangeAlgPolicy>(ranges::begin (__range), ranges::end (__range), std::move (__n));
51+ return {std::move (__ret.first ), std::move (__ret.second )};
5752 }
5853};
5954
0 commit comments