33 class type_reduce_fn :
public adaptor_base<type_reduce_fn>
37 using base_t = adaptor_base<type_reduce_fn>;
50 template <std::ranges::range urng_t>
51 static constexpr
auto impl(urng_t && urange)
53 static_assert(std::ranges::viewable_range<urng_t>,
54 "The views::type_reduce adaptor can only be passed viewable_ranges, i.e. Views or &-to-non-View.");
57 if constexpr (std::ranges::view<remove_cvref_t<urng_t>>)
62 else if constexpr (is_type_specialisation_of_v<remove_cvref_t<urng_t>,
std::basic_string> &&
68 else if constexpr (forwarding_range<urng_t> &&
69 std::ranges::contiguous_range<urng_t> &&
70 std::ranges::sized_range<urng_t>)
75 else if constexpr (forwarding_range<urng_t> &&
76 std::ranges::random_access_range<urng_t> &&
77 std::ranges::sized_range<urng_t>)
79 return std::ranges::subrange<std::ranges::iterator_t<urng_t>, std::ranges::iterator_t<urng_t>>
81 std::ranges::begin(urange),
167 template <
typename t>
Provides seqan3::type_list and auxiliary type traits.
The main SeqAn3 namespace.
detail::search_mode_all constexpr all
Configuration element to receive all hits within the error bounds.
Definition: mode.hpp:43
constexpr auto type_reduce
A view adaptor that behaves like std::views::all, but type erases certain ranges. ...
Definition: type_reduce.hpp:158
The SeqAn namespace for views.
Definition: view_to_simd.hpp:672
Additional non-standard concepts for ranges.
Adaptations of concepts from the Ranges TS.
Provides std::span from the C++20 standard library.
constexpr size_t size
The size of a type pack.
Definition: traits.hpp:116
Definition: aligned_sequence_concept.hpp:36
decltype(views::type_reduce(std::declval< t >())) type_reduce_view
Deduces the return value of seqan3::views::type_reduce.
Definition: type_reduce.hpp:168
Auxiliary header for the views submodule .