14 #ifndef RANGES_V3_VIEW_FOR_EACH_HPP
15 #define RANGES_V3_VIEW_FOR_EACH_HPP
25 #include <range/v3/utility/static_const.hpp>
34 #include <range/v3/detail/prologue.hpp>
48 template(
typename Rng,
typename Fun)(
49 requires viewable_range<Rng> AND transformable_range<Rng, Fun> AND
51 constexpr
auto operator()(Rng && rng, Fun fun)
const
53 return join(
transform(
static_cast<Rng &&
>(rng), std::move(fun)));
59 using for_each_base_fn::operator();
61 template<
typename Fun>
62 constexpr
auto operator()(Fun fun)
const
75 requires copy_constructible<V>)
78 return views::single(std::move(v));
87 template(
typename Rng)(
89 Rng operator()(Rng rng)
const
112 template(
typename F)(
113 requires invocable<F &>)
116 return views::generate_n(std::move(f), b ? 1 : 0);
125 template(
typename Rng,
typename Fun)(
126 requires viewable_range<Rng> AND views::transformable_range<Rng, Fun> AND
127 input_range<invoke_result_t<Fun &, range_reference_t<Rng>>>)
129 operator>>=(Rng && rng, Fun fun)
131 return views::for_each(
static_cast<Rng &&
>(rng), std::move(fun));
136 #include <range/v3/detail/epilogue.hpp>
CPP_concept input_range
\concept input_range
Definition: concepts.hpp:103
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
defer< bind_back, Fn, Ts... > bind_back
Definition: meta.hpp:994
repeat_n_c< N::type::value, T > repeat_n
Generate list<T,T,T...T> of size N arguments.
Definition: meta.hpp:1899
Definition: generate_n.hpp:41
Definition: for_each.hpp:111
Definition: repeat_n.hpp:43
Definition: single.hpp:41
Lazily applies an unary function to each element in the source range that returns another range (poss...
Definition: for_each.hpp:47
Definition: for_each.hpp:58
Definition: for_each.hpp:73
Definition: for_each.hpp:86
Definition: for_each.hpp:99