14#ifndef RANGES_V3_VIEW_GENERATE_HPP
15#define RANGES_V3_VIEW_GENERATE_HPP
31#include <range/v3/utility/static_const.hpp>
34#include <range/v3/detail/prologue.hpp>
41 struct generate_view :
view_facade<generate_view<G>, infinite>
45 using result_t = invoke_result_t<G &>;
46 semiregular_box_t<G> gen_;
47 detail::non_propagating_cache<result_t> val_;
51 generate_view *
view_;
55 explicit cursor(generate_view * view)
58 result_t && read()
const
62 return static_cast<result_t &&
>(
static_cast<result_t &
>(*
view_->val_));
69 static_cast<void>(
view_->gen_());
82 generate_view() =
default;
83 explicit generate_view(G g)
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>
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 range_fwd.hpp:152
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