Lines Matching refs:subrange
77 class _LIBCPP_TEMPLATE_VIS subrange
78 : public view_interface<subrange<_Iter, _Sent, _Kind>>
94 subrange() requires default_initializable<_Iter> = default;
97 constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent) in subrange() function
103 constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent, in subrange() function
113 template<__different_from<subrange> _Range>
118 constexpr subrange(_Range&& __range) in subrange() function
120 : subrange(ranges::begin(__range), ranges::end(__range)) in subrange()
123 template<__different_from<subrange> _Range>
128 constexpr subrange(_Range&& __range) in subrange() function
130 : subrange(__range, ranges::size(__range)) in subrange()
137 constexpr subrange(_Range&& __range, make_unsigned_t<iter_difference_t<_Iter>> __n) in subrange() function
139 : subrange(ranges::begin(__range), ranges::end(__range), __n) in subrange()
142 template<__different_from<subrange> _Pair>
177 …[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) cons…
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
199 constexpr subrange& advance(iter_difference_t<_Iter> __n) { in advance()
217 subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>;
220 subrange(_Iter, _Sent, make_unsigned_t<iter_difference_t<_Iter>>)
221 -> subrange<_Iter, _Sent, subrange_kind::sized>;
224 subrange(_Range&&) -> subrange<iterator_t<_Range>, sentinel_t<_Range>,
229 subrange(_Range&&, make_unsigned_t<range_difference_t<_Range>>)
230 -> subrange<iterator_t<_Range>, sentinel_t<_Range>, subrange_kind::sized>;
235 constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange) { in get()
245 constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange) { in get()
253 inline constexpr bool enable_borrowed_range<subrange<_Ip, _Sp, _Kp>> = true;
256 using borrowed_subrange_t = _If<borrowed_range<_Rp>, subrange<iterator_t<_Rp>>, dangling>;
266 struct tuple_size<ranges::subrange<_Ip, _Sp, _Kp>> : integral_constant<size_t, 2> {};
269 struct tuple_element<0, ranges::subrange<_Ip, _Sp, _Kp>> {
274 struct tuple_element<1, ranges::subrange<_Ip, _Sp, _Kp>> {
279 struct tuple_element<0, const ranges::subrange<_Ip, _Sp, _Kp>> {
284 struct tuple_element<1, const ranges::subrange<_Ip, _Sp, _Kp>> {