14#ifndef RANGES_V3_VIEW_TAIL_HPP
15#define RANGES_V3_VIEW_TAIL_HPP
27#include <range/v3/utility/static_const.hpp>
32#include <range/v3/detail/prologue.hpp>
39 constexpr T prev_or_zero_(T n)
41 return n == 0 ? T(0) : T(n - 1);
47 template<
typename Rng>
50 (range_cardinality<Rng>::value >= 0)
51 ? detail::prev_or_zero_(range_cardinality<Rng>::value)
60 : rng_(
static_cast<Rng &&
>(rng))
66 return next(ranges::begin(rng_), 1, ranges::end(rng_));
68 template(
bool Const =
true)(
69 requires Const AND
range<meta::const_if_c<Const, Rng>>)
72 return next(ranges::begin(rng_), 1, ranges::end(rng_));
76 return ranges::end(rng_);
78 template(
bool Const =
true)(
79 requires Const AND
range<meta::const_if_c<Const, Rng>>)
80 sentinel_t<meta::const_if_c<Const, Rng>> end()
const
82 return ranges::end(rng_);
86 constexpr auto CPP_fun(size)()(
89 using size_type = range_size_t<Rng>;
95 constexpr auto CPP_fun(size)()(
const
98 using size_type = range_size_t<Rng>;
109 template<
typename Rng>
110 RANGES_INLINE_VAR
constexpr bool enable_borrowed_range<tail_view<Rng>> =
111 enable_borrowed_range<Rng>;
113#if RANGES_CXX_DEDUCTION_GUIDES >= RANGES_CXX_DEDUCTION_GUIDES_17
114 template(
typename Rng)(
117 ->tail_view<views::all_t<Rng>>;
124 template(
typename Rng)(
126 meta::if_c<range_cardinality<Rng>::value == 0,
129 operator()(Rng && rng)
const
131 return all(
static_cast<Rng &&
>(rng));
142#include <range/v3/detail/epilogue.hpp>
143#include <range/v3/detail/satisfy_boost_range.hpp>
The viewable_range concept.
decltype(begin(declval(Rng &))) iterator_t
Definition: access.hpp:698
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
meta::size_t< L::size()> size
An integral constant wrapper that is the size of the meta::list L.
Definition: meta.hpp:1696
Definition: traits.hpp:128
Definition: interface.hpp:129