Range-v3
Range algorithms, views, and actions for the Standard Library
subrange.hpp File Reference

Classes

struct  ranges::make_subrange_fn
 
struct  ranges::subrange< I, S, K >
 
struct  ranges::subrange< I, S, K >
 
struct  std::tuple_element< 0, ::ranges::subrange< I, S, K > >
 
struct  std::tuple_element< 1, ::ranges::subrange< I, S, K > >
 
struct  std::tuple_size<::ranges::subrange< I, S, K > >
 

Typedefs

template<typename R >
using ranges::borrowed_subrange_t = detail::maybe_dangling_< R, subrange< iterator_t< R > >>
 

Enumerations

enum  subrange_kind : bool { unsized, sized }
 

Functions

template<typename I , typename S >
 ranges::subrange (I, S) -> subrange< I, S >
 
template<typename I , typename S >
requires input_or_output_iterator< I > &&sentinel_for< S, I > ranges::subrange (I, S, detail::iter_size_t< I >) -> subrange< I, S, subrange_kind::sized >
 
template<typename R >
requires borrowed_range< R > ranges::subrange (R &&) -> subrange< iterator_t< R >, sentinel_t< R >,(sized_range< R >||sized_sentinel_for< sentinel_t< R >, iterator_t< R >>) ? subrange_kind::sized :subrange_kind::unsized >
 
template<typename R >
requires borrowed_range< R > ranges::subrange (R &&, detail::iter_size_t< iterator_t< R >>) -> subrange< iterator_t< R >, sentinel_t< R >, subrange_kind::sized >
 

Variables

template<typename I , typename S , subrange_kind K>
constexpr bool ranges::enable_borrowed_range< subrange< I, S, K > > = true
 
template<typename I , typename S = I, subrange_kind K = static_cast<subrange_kind>( detail::is_sized_sentinel_<S, I>())>
requires input_or_output_iterator< I > &&sentinel_for< S, I > && ranges::cpp20::K
 
requires input_or_output_iterator< I > &&sentinel_for< S, I > ranges::cpp20::S
 

Variable Documentation

◆ K

template<typename I , typename S = I, subrange_kind K = static_cast<subrange_kind>( detail::is_sized_sentinel_<S, I>())>
requires input_or_output_iterator< I > &&sentinel_for< S, I > ranges::cpp20::K
Initial value:
== subrange_kind::sized || !sized_sentinel_for<S, I>)`
using subrange = ranges::subrange<I
ranges::subrange
Definition: subrange.hpp:132