14 #ifndef RANGES_V3_VIEW_GENERATE_HPP
15 #define RANGES_V3_VIEW_GENERATE_HPP
17 #include <type_traits>
31 #include <range/v3/utility/static_const.hpp>
34 #include <range/v3/detail/prologue.hpp>
45 using result_t = invoke_result_t<G &>;
46 semiregular_box_t<G> gen_;
47 detail::non_propagating_cache<result_t> val_;
58 result_t && read()
const
62 return static_cast<result_t &&
>(
static_cast<result_t &
>(*
view_->val_));
69 static_cast<void>(
view_->gen_());
97 requires invocable<G &> AND copy_constructible<G> AND
98 std::is_object<detail::decay_t<invoke_result_t<G &>>>::value AND
99 constructible_from<detail::decay_t<invoke_result_t<G &>>,
100 invoke_result_t<G &>> AND
101 assignable_from<detail::decay_t<invoke_result_t<G &>> &,
102 invoke_result_t<G &>>)
116 #include <range/v3/detail/epilogue.hpp>
117 #include <range/v3/detail/satisfy_boost_range.hpp>
CPP_concept view_
\concept view_
Definition: concepts.hpp:252
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
Definition: generate.hpp:42
Definition: unreachable_sentinel.hpp:27
A utility for constructing a view from a (derived) type that implements begin and end cursors.
Definition: facade.hpp:66
Definition: generate.hpp:95