Lines Matching refs:_Iter

37 template<class _Iter, class = void>
40 template<class _Iter>
41 requires requires { typename iterator_traits<_Iter>::iterator_category; }
42 struct __move_iter_category_base<_Iter> {
44 … derived_from<typename iterator_traits<_Iter>::iterator_category, random_access_iterator_tag>,
46 typename iterator_traits<_Iter>::iterator_category
50 template<class _Iter, class _Sent>
52 { declval<const _Iter&>() == declval<_Sent>() } -> convertible_to<bool>;
56 template <class _Iter>
59 : public __move_iter_category_base<_Iter>
64 using iterator_type = _Iter;
67 using value_type = iter_value_t<_Iter>;
68 using difference_type = iter_difference_t<_Iter>;
69 using pointer = _Iter;
70 using reference = iter_rvalue_reference_t<_Iter>;
72 typedef _Iter iterator_type;
74 __is_cpp17_random_access_iterator<_Iter>::value,
76 typename iterator_traits<_Iter>::iterator_category
91 explicit move_iterator(_Iter __i) : __current_(std::move(__i)) {}
101 move_iterator() requires is_constructible_v<_Iter> : __current_() {}
104 requires (!_IsSame<_Up, _Iter>::value) && convertible_to<const _Up&, _Iter>
109 requires (!_IsSame<_Up, _Iter>::value) &&
110 convertible_to<const _Up&, _Iter> &&
111 assignable_from<_Iter&, const _Up&>
118 _LIBCPP_HIDE_FROM_ABI constexpr const _Iter& base() const & noexcept { return __current_; }
119 _LIBCPP_HIDE_FROM_ABI constexpr _Iter base() && { return std::move(__current_); }
128 requires forward_iterator<_Iter>
140 !is_same<_Up, _Iter>::value && is_convertible<const _Up&, _Iter>::value
146 !is_same<_Up, _Iter>::value &&
147 is_convertible<const _Up&, _Iter>::value &&
148 is_assignable<_Iter&, const _Up&>::value
157 _Iter base() const { return __current_; }
182 template<sentinel_for<_Iter> _Sent>
185 requires __move_iter_comparable<_Iter, _Sent>
190 template<sized_sentinel_for<_Iter> _Sent>
192 iter_difference_t<_Iter> operator-(const move_sentinel<_Sent>& __x, const move_iterator& __y)
197 template<sized_sentinel_for<_Iter> _Sent>
199 iter_difference_t<_Iter> operator-(const move_iterator& __x, const move_sentinel<_Sent>& __y)
205 iter_rvalue_reference_t<_Iter> iter_move(const move_iterator& __i)
211 template<indirectly_swappable<_Iter> _It2>
223 _Iter __current_;
299 template <class _Iter>
301 move_iterator<_Iter> operator+(iter_difference_t<_Iter> __n, const move_iterator<_Iter>& __x)
302 requires requires { { __x.base() + __n } -> same_as<_Iter>; }
307 template <class _Iter>
309 move_iterator<_Iter>
310 operator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x)
312 return move_iterator<_Iter>(__x.base() + __n);
316 template <class _Iter>
318 move_iterator<_Iter>
319 make_move_iterator(_Iter __i)
321 return move_iterator<_Iter>(std::move(__i));