libstdc++
std::ranges::subrange< _It, _Sent, _Kind > Class Template Reference
Inheritance diagram for std::ranges::subrange< _It, _Sent, _Kind >:
[legend]

Public Member Functions

constexpr subrange (__detail::__convertible_to_non_slicing< _It > auto __i, _Sent __s, __size_type __n) noexcept(is_nothrow_constructible_v< _It, decltype(__i)> &&is_nothrow_constructible_v< _Sent, _Sent & >) requires(_Kind
 
decltype(auto) constexpr back () const requires bidirectional_range< const subrange< _It, _Sent, _Kind > > &&common_range< const subrange< _It, _Sent, _Kind > >
 
constexpr _It begin () const requires copyable< _It >
 
constexpr _It begin () requires(!copyable< _It >)
 
constexpr auto data () noexcept(noexcept(ranges::begin(_M_derived()))) requires contiguous_iterator< iterator_t< subrange< _It, _Sent, _Kind > >>
 
constexpr auto data () const noexcept(noexcept(ranges::begin(_M_derived()))) requires range< const subrange< _It, _Sent, _Kind > > &&contiguous_iterator< iterator_t< const subrange< _It, _Sent, _Kind > >>
 
constexpr bool empty () const
 
constexpr _Sent end () const
 
decltype(auto) constexpr front () requires forward_range< subrange< _It, _Sent, _Kind > >
 
decltype(auto) constexpr front () const requires forward_range< const subrange< _It, _Sent, _Kind > >
 
constexpr bool noexcept (noexcept(_S_empty(_M_derived()))) requires forward_range< subrange< _It, _Sent, _Kind > >
 
constexpr noexcept (is_nothrow_constructible_v< _It, decltype(__i)> &&is_nothrow_constructible_v< _Sent, _Sent & >) requires(!_S_store_size)
 
constexpr _It &&convertible_to
< sentinel_t< _Rng >, _Sent >
constexpr 
noexcept (noexcept(subrange(__r, ranges::size(__r)))) requires _S_store_size &&sized_range< _Rng >
 
template<__detail::__different_from< subrange > _Rng>
requires borrowed_range< _Rng >
&&__detail::__convertible_to_non_slicing
< iterator_t< _Rng >, _It >
&&convertible_to< sentinel_t
< _Rng >, _Sent > constexpr 
noexcept (noexcept(subrange(ranges::begin(__r), ranges::end(__r)))) requires(!_S_store_size)
 
template<borrowed_range _Rng>
requires
__detail::__convertible_to_non_slicing
< iterator_t< _Rng >, _It >
&&convertible_to< sentinel_t
< _Rng >, _Sent > constexpr 
noexcept (noexcept(subrange(ranges::begin(__r), ranges::end(__r), __n))) requires(_Kind
 
requires
__detail::__convertible_to_non_slicing
< iterator_t< _Rng >, _It >
&&convertible_to< sentinel_t
< _Rng >, _Sent > constexpr
const _It const _Sent
&constexpr 
operator _PairLike () const
 
constexpr operator bool () noexcept(noexcept(ranges::empty(_M_derived()))) requires requires
 
constexpr operator bool () const noexcept(noexcept(ranges::empty(_M_derived()))) requires requires
 
decltype(auto) constexpr operator[] (range_difference_t< _Range > __n)
 
decltype(auto) constexpr operator[] (range_difference_t< _Range > __n) const
 
return * ranges::prev (ranges::end(_M_derived()))
 
constexpr auto size () noexcept(noexcept(_S_size(_M_derived()))) requires forward_range< subrange< _It, _Sent, _Kind > > &&sized_sentinel_for< sentinel_t< subrange< _It, _Sent, _Kind > >
 
constexpr auto size () const noexcept(noexcept(_S_size(_M_derived()))) requires forward_range< const subrange< _It, _Sent, _Kind > > &&sized_sentinel_for< sentinel_t< const subrange< _It, _Sent, _Kind > >
 

Public Attributes

decltype(auto) constexpr
requires bidirectional_range
< subrange< _It, _Sent, _Kind > > && 
common_range< _Derived >
 
constexpr auto iterator_t< _Derived >
 
constexpr auto iterator_t< const _Derived >
 

Friends

struct views::_Drop
 

Detailed Description

template<input_or_output_iterator _It, sentinel_for< _It > _Sent = _It, subrange_kind _Kind = sized_sentinel_for<_Sent, _It> ? subrange_kind::sized : subrange_kind::unsized>
class std::ranges::subrange< _It, _Sent, _Kind >

The ranges::subrange class template.

Definition at line 228 of file ranges_util.h.


The documentation for this class was generated from the following file: