.TH "std::ranges::subrange< _It, _Sent, _Kind >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::ranges::subrange< _It, _Sent, _Kind > \- The ranges::subrange class template\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBstd::ranges::view_interface< _Derived >\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP (__detail::__convertible_to_non_slicing< _It > \fBauto\fP __i, _Sent \fB__s\fP) noexcept(is_nothrow_constructible_v< _It, \fBdecltype\fP(__i)> &&is_nothrow_constructible_v< _Sent, _Sent & >)" .br .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP (__detail::__convertible_to_non_slicing< _It > \fBauto\fP __i, _Sent \fB__s\fP, __size_type __n) noexcept(is_nothrow_constructible_v< _It, \fBdecltype\fP(__i)> &&is_nothrow_constructible_v< _Sent, _Sent & >)" .br .ti -1c .RI "template<__detail::__different_from< \fBsubrange\fP > _Rng> .br requires \fBborrowed_range\fP<\fB_Rng\fP> && __detail::__convertible_to_non_slicing<\fBiterator_t\fP<\fB_Rng\fP>, _It> && \fBconvertible_to\fP<\fBsentinel_t\fP<\fB_Rng\fP>, _Sent>\fBconstexpr\fP \fBsubrange\fP (\fB_Rng\fP &&__r) noexcept(noexcept(\fBsubrange\fP(__r, ranges::size(__r)))) _S_store_size &&\fBsized_range\fP< \fB_Rng\fP >" .br .ti -1c .RI "template<__detail::__different_from< \fBsubrange\fP > _Rng> .br requires \fBborrowed_range\fP<\fB_Rng\fP> && __detail::__convertible_to_non_slicing<\fBiterator_t\fP<\fB_Rng\fP>, _It> && \fBconvertible_to\fP<\fBsentinel_t\fP<\fB_Rng\fP>, _Sent> (!_S_store_size)\fBconstexpr\fP \fBsubrange\fP (\fB_Rng\fP &&__r) noexcept(noexcept(\fBsubrange\fP(ranges::begin(__r), ranges::end(__r))))" .br .ti -1c .RI "template<\fBborrowed_range\fP _Rng> .br requires __detail::__convertible_to_non_slicing<\fBiterator_t\fP<\fB_Rng\fP>, _It> && \fBconvertible_to\fP<\fBsentinel_t\fP<\fB_Rng\fP>, _Sent> (\fB_Kind\fP == subrange_kind::sized)\fBconstexpr\fP \fBsubrange\fP (\fB_Rng\fP &&__r, __size_type __n) noexcept(noexcept(\fBsubrange\fP(ranges::begin(__r), ranges::end(__r), __n)))" .br .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP & \fBadvance\fP (\fBiter_difference_t\fP< _It > __n)" .br .ti -1c .RI "\fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBback\fP ()" .br .ti -1c .RI "\fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBback\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP _It \fBbegin\fP ()" .br .ti -1c .RI "\fBconstexpr\fP _It \fBbegin\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBauto\fP \fBdata\fP () \fBconst\fP noexcept(noexcept(ranges::begin(_M_derived())))" .br .ti -1c .RI "\fBconstexpr\fP \fBauto\fP \fBdata\fP () noexcept(noexcept(ranges::begin(_M_derived())))" .br .ti -1c .RI "\fBconstexpr\fP bool \fBempty\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP bool \fBempty\fP () noexcept(noexcept(_S_empty(_M_derived())))" .br .ti -1c .RI "\fBconstexpr\fP _Sent \fBend\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBfront\fP ()" .br .ti -1c .RI "\fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBfront\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP \fBnext\fP (\fBiter_difference_t\fP< _It > __n=1) &&" .br .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP \fBnext\fP (\fBiter_difference_t\fP< _It > __n=1) \fBconst\fP &" .br .ti -1c .RI "template<__detail::__different_from< \fBsubrange\fP > _PairLike> .br requires __detail::__pair_like_convertible_from<\fB_PairLike\fP, \fBconst\fP _It&, \fBconst\fP _Sent&>\fBconstexpr\fP \fBoperator _PairLike\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBoperator bool\fP () \fBconst\fP noexcept(noexcept(ranges::empty(_M_derived())))" .br .ti -1c .RI "\fBconstexpr\fP \fBoperator bool\fP () noexcept(noexcept(ranges::empty(_M_derived())))" .br .ti -1c .RI "template<\fBrandom_access_range\fP _Range = _Derived> \fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBoperator[]\fP (\fBrange_difference_t\fP< _Range > __n)" .br .ti -1c .RI "template<\fBrandom_access_range\fP _Range = const _Derived> \fBconstexpr\fP \fBdecltype\fP(\fBauto\fP) \fBoperator[]\fP (\fBrange_difference_t\fP< _Range > __n) \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBsubrange\fP \fBprev\fP (\fBiter_difference_t\fP< _It > __n=1) \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP __size_type \fBsize\fP () \fBconst\fP" .br .ti -1c .RI "\fBconstexpr\fP \fBauto\fP \fBsize\fP () noexcept(noexcept(_S_size(_M_derived())))" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "\fBstruct\fP \fBviews::_Drop\fP" .br .in -1c .SH "Detailed Description" .PP .SS "template<\fBinput_or_output_iterator\fP _It, \fBsentinel_for\fP< _It > _Sent = _It, subrange_kind _Kind = sized_sentinel_for<_Sent, _It> ? subrange_kind::sized : subrange_kind::unsized> .br requires (\fB_Kind\fP == subrange_kind::sized || !\fBsized_sentinel_for\fP<_Sent, _It>) .br class std::ranges::subrange< _It, _Sent, _Kind >"The ranges::subrange class template\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.