23template <
typename type_list_t>
24struct type_list_expander;
47template <
template <
typename...>
typename type_list_t,
typename... args_t>
48struct type_list_expander<type_list_t<args_t...>>
60 template <
typename fn_t>
61 requires std::invocable<fn_t, std::type_identity<args_t>...>
106template <
typename type_list_t,
typename unary_predicate_t>
107[[nodiscard]]
constexpr bool all_of(unary_predicate_t && fn)
110 return type_list_expander<type_list_t>::invoke_on_type_identities(
111 [&](
auto &&... type_identities)
155template <
typename type_list_t,
typename unary_function_t>
159 type_list_expander<type_list_t>::invoke_on_type_identities(
160 [&](
auto &&... type_identities)
constexpr bool all_of(unary_predicate_t &&fn)
Tests whether a given predicate evaluates to true for each type in a seqan3::type_list.
Definition type_list_algorithm.hpp:107
constexpr void for_each(unary_function_t &&fn)
Applies a function element wise to all types of a type list.
Definition type_list_algorithm.hpp:157
Provides concept seqan3::template_specialisation_of<mytype, [...]> for checking the type specialisati...
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
static constexpr std::invoke_result_t< fn_t, std::type_identity< args_t >... > invoke_on_type_identities(fn_t &&fn)
Invokes the actual function by passing the types as instances of std::type_identity to the target fun...
Definition type_list_algorithm.hpp:62
Provides seqan3::type_list.
Provides algorithms for meta programming, parameter packs and seqan3::type_list.