Range-v3 Range algorithms, views, and actions for the Standard Library |

Classes | Typedefs | Enumerations | Functions | Variables
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 > >>
template<typename R >
using | ranges::safe_subrange_t = borrowed_subrange_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 >
| ranges::subrange (I, S, detail::iter_size_t< I >) -> subrange< I, S, subrange_kind::sized >
template<typename 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 >
| 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