14#ifndef RANGES_V3_VIEW_CONST_HPP
15#define RANGES_V3_VIEW_CONST_HPP
27#include <range/v3/utility/static_const.hpp>
32#include <range/v3/detail/prologue.hpp>
38 template<
typename Rng>
46 using CRng = meta::const_if_c<Const, Rng>;
47 using value_ = range_value_t<CRng>;
49 common_reference_t<value_ const &&, range_reference_t<CRng>>;
50 using rvalue_reference_ =
51 common_reference_t<value_ const &&, range_rvalue_reference_t<CRng>>;
54 requires Const && CPP_NOT(Other))
55 constexpr adaptor(adaptor<Other>)
62 noexcept(
noexcept(rvalue_reference_(ranges::iter_move(it))))
64 return ranges::iter_move(it);
67 adaptor<simple_view<Rng>()> begin_adaptor()
72 auto begin_adaptor()
const
73 -> CPP_ret(adaptor<true>)(
78 adaptor<simple_view<Rng>()> end_adaptor()
83 auto end_adaptor()
const
84 -> CPP_ret(adaptor<true>)(
93 : const_view::view_adaptor{std::move(rng)}
96 constexpr auto CPP_fun(size)()(
102 constexpr auto CPP_fun(size)()(
const
109 template<
typename Rng>
110 RANGES_INLINE_VAR
constexpr bool enable_borrowed_range<const_view<Rng>> =
111 enable_borrowed_range<Rng>;
113#if RANGES_CXX_DEDUCTION_GUIDES >= RANGES_CXX_DEDUCTION_GUIDES_17
114 template<
typename Rng>
123 template(
typename Rng)(
138#include <range/v3/detail/epilogue.hpp>
139#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: adaptor.hpp:110
Definition: adaptor.hpp:475
Definition: const.hpp:122