Lines Matching refs:_Iter

63   template<class _Pair, class _Iter, class _Sent>
66 constructible_from<_Pair, _Iter, _Sent> &&
67 __convertible_to_non_slicing<_Iter, tuple_element_t<0, _Pair>> &&
72 template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent = _Iter,
73 subrange_kind _Kind = sized_sentinel_for<_Sent, _Iter>
76 requires (_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _Iter>)
78 : public view_interface<subrange<_Iter, _Sent, _Kind>>
82 …c constexpr bool _StoreSize = (_Kind == subrange_kind::sized && !sized_sentinel_for<_Sent, _Iter>);
87 using _Size = conditional_t<_StoreSize, make_unsigned_t<iter_difference_t<_Iter>>, _Empty>;
88 _LIBCPP_NO_UNIQUE_ADDRESS _Iter __begin_ = _Iter();
94 subrange() requires default_initializable<_Iter> = default;
97 constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent) in subrange()
103 constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent, in subrange()
104 make_unsigned_t<iter_difference_t<_Iter>> __n) in subrange()
108 if constexpr (sized_sentinel_for<_Sent, _Iter>) in subrange()
109 _LIBCPP_ASSERT((__end_ - __begin_) == static_cast<iter_difference_t<_Iter>>(__n), in subrange()
115 __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
125 __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
134 requires __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
137 constexpr subrange(_Range&& __range, make_unsigned_t<iter_difference_t<_Iter>> __n) in subrange()
143 requires __pair_like_convertible_from<_Pair, const _Iter&, const _Sent&>
150 constexpr _Iter begin() const requires copyable<_Iter> { in begin()
154 [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr _Iter begin() requires (!copyable<_Iter>) { in begin()
168 constexpr make_unsigned_t<iter_difference_t<_Iter>> size() const in size()
177 …[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) cons…
178 requires forward_iterator<_Iter>
185 … [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) && {
190 …[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange prev(iter_difference_t<_Iter> __n = 1) const
191 requires bidirectional_iterator<_Iter>
199 constexpr subrange& advance(iter_difference_t<_Iter> __n) { in advance()
200 if constexpr (bidirectional_iterator<_Iter>) { in advance()
216 template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
217 subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>;
219 template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
220 subrange(_Iter, _Sent, make_unsigned_t<iter_difference_t<_Iter>>)
221 -> subrange<_Iter, _Sent, subrange_kind::sized>;
232 template<size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
233 requires ((_Index == 0 && copyable<_Iter>) || _Index == 1)
235 constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange) { in get() argument
242 template<size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
245 constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange) { in get() argument