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::safe_subrange_t = detail::maybe_dangling_< R, subrange< iterator_t< R > >>

## Enumerations

enum | subrange_kind : bool { unsized, sized }

## Variables

template<typename I , typename S , subrange_kind K>
constexpr bool | ranges::enable_safe_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
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::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:202