128 template <
typename underlying_adaptor_t>
129 class deep :
public detail::pipable_adaptor_base<deep<underlying_adaptor_t>>
133 underlying_adaptor_t inner_functor;
140 constexpr
deep() =
default;
141 constexpr
deep(
deep const &) =
default;
143 constexpr
deep & operator=(
deep const &) =
default;
144 constexpr
deep & operator=(
deep &&) =
default;
148 constexpr
deep(underlying_adaptor_t && inner)
149 : inner_functor{std::forward<underlying_adaptor_t>(inner)}
167 template <
typename urng_t,
typename ...arg_types>
168 constexpr
auto impl(urng_t && urange, arg_types && ...args)
const 173 [argos = std::tuple<arg_types...>(std::forward<arg_types>(args)...),
this] (
auto &&
subrange)
177 std::make_index_sequence<std::tuple_size_v<decltype(argos)>>{});
182 return inner_functor(std::forward<urng_t>(urange), std::forward<arg_types>(args)...);
187 template <
typename urng_t,
typename tuple_t,
size_t ... indexes>
188 constexpr
auto impl_expand(urng_t && urange, tuple_t && tuple, std::index_sequence<indexes...>)
const 190 return impl(std::forward<urng_t>(urange), std::get<indexes>(std::forward<tuple_t>(tuple))...);
198 template <
typename underlying_adaptor_t>
constexpr auto transform
A range adaptor that takes a invocable and returns a view of the elements with the invocable applied...
Definition: transform.hpp:95
Auxiliary header for the view submodule .
The SeqAn3 namespace for views.
std::ranges::iterator_range< it_t, sen_t > subrange
Create a view from a pair of iterator and sentinel.
Definition: subrange.hpp:96
A wrapper type around an existing view adaptor that enables "deep view" behaviour for that view...
Definition: deep.hpp:129
constexpr deep(underlying_adaptor_t &&inner)
Constructor that takes the underlying adaptor as parameter.
Definition: deep.hpp:148