100 template <
typename underlying_adaptor_t>
101 class deep :
public detail::adaptor_base<deep<underlying_adaptor_t>, underlying_adaptor_t>
105 using base_type = detail::adaptor_base<deep<underlying_adaptor_t>, underlying_adaptor_t>;
114 using base_type::base_type;
120 using base_type::operator();
129 template <std::ranges::InputRange urng_t,
typename underlying_adaptor_t_>
130 static constexpr
auto impl(urng_t && urange, underlying_adaptor_t_ && adap)
132 return std::forward<urng_t>(urange) | std::forward<underlying_adaptor_t_>(adap);
145 template <std::ranges::InputRange urng_t>
149 constexpr
auto operator()(urng_t && urange)
const &
153 return std::forward<decltype(e)>(e) | me;
158 template <std::ranges::InputRange urng_t>
162 constexpr
auto operator()(urng_t && urange) &&
166 return std::forward<decltype(e)>(e) | me;
178 template <
typename first_arg_t,
typename ... stored_arg_types>
182 constexpr
auto operator()(first_arg_t && first, stored_arg_types && ...args)
const 187 auto adaptor_closure = std::get<0>(this->arguments)(std::forward<first_arg_t>(first),
188 std::forward<stored_arg_types>(args)...);
194 constexpr
auto operator()()
const 199 auto adaptor_closure = std::get<0>(this->arguments)();
218 requires
sizeof...(stored_arg_types) > 0
220 constexpr
auto operator()(urng_t && urange, stored_arg_types && ...args)
const 222 auto adaptor_closure = std::get<0>(this->arguments)(std::forward<stored_arg_types>(args)...);
223 return std::forward<urng_t>(urange) | std::move(adaptor_closure);
230 template <
typename underlying_adaptor_t>
Auxiliary header for the view submodule .
Adaptations of concepts from the Ranges TS.
The SeqAn3 namespace for views.
A wrapper type around an existing view adaptor that enables "deep view" behaviour for that view...
Definition: deep.hpp:101
constexpr auto transform
A range adaptor that takes a invocable and returns a view of the elements with the invocable applied...
Definition: ranges:911