Lines Matching defs:subrange
21 #include <__fwd/subrange.h>
75 class _LIBCPP_TEMPLATE_VIS subrange : public view_interface<subrange<_Iter, _Sent, _Kind>> {
91 _LIBCPP_HIDE_FROM_ABI subrange()
95 _LIBCPP_HIDE_FROM_ABI constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent)
99 _LIBCPP_HIDE_FROM_ABI constexpr subrange(
105 "std::ranges::subrange was passed an invalid size hint");
108 template <__different_from<subrange> _Range>
111 _LIBCPP_HIDE_FROM_ABI constexpr subrange(_Range&& __range)
113 : subrange(ranges::begin(__range), ranges::end(__range)) {}
115 template <__different_from<subrange> _Range>
118 _LIBCPP_HIDE_FROM_ABI constexpr subrange(_Range&& __range)
120 : subrange(__range, ranges::size(__range)) {}
125 _LIBCPP_HIDE_FROM_ABI constexpr subrange(_Range&& __range, make_unsigned_t<iter_difference_t<_Iter>> __n)
127 : subrange(ranges::begin(__range), ranges::end(__range), __n) {}
159 [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) const&
167 [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) && {
172 [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange prev(iter_difference_t<_Iter> __n = 1) const
180 _LIBCPP_HIDE_FROM_ABI constexpr subrange& advance(iter_difference_t<_Iter> __n) {
198 subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>;
201 subrange(_Iter, _Sent, make_unsigned_t<iter_difference_t<_Iter>>) -> subrange<_Iter, _Sent, subrange_kind::sized>;
204 subrange(_Range&&) -> subrange<iterator_t<_Range>,
211 subrange(_Range&&, make_unsigned_t<range_difference_t<_Range>>)
212 -> subrange<iterator_t<_Range>, sentinel_t<_Range>, subrange_kind::sized>;
216 _LIBCPP_HIDE_FROM_ABI constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange) {
225 _LIBCPP_HIDE_FROM_ABI constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange) {
233 inline constexpr bool enable_borrowed_range<subrange<_Ip, _Sp, _Kp>> = true;
236 using borrowed_subrange_t = _If<borrowed_range<_Rp>, subrange<iterator_t<_Rp>>, dangling>;
239 // [range.subrange.general]
246 struct tuple_size<ranges::subrange<_Ip, _Sp, _Kp>> : integral_constant<size_t, 2> {};
249 struct tuple_element<0, ranges::subrange<_Ip, _Sp, _Kp>> {
254 struct tuple_element<1, ranges::subrange<_Ip, _Sp, _Kp>> {
259 struct tuple_element<0, const ranges::subrange<_Ip, _Sp, _Kp>> {
264 struct tuple_element<1, const ranges::subrange<_Ip, _Sp, _Kp>> {