Skip to content

Commit 357f4eb

Browse files
committed
[libc++][ranges] refactor 'ranges::shift_left'
1 parent e79f643 commit 357f4eb

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

libcxx/include/__algorithm/ranges_shift_left.h

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,19 @@ namespace ranges {
3636
namespace __shift_left {
3737

3838
struct __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

Comments
 (0)