26template <
typename type_list_t>
27struct type_list_expander;
50template <
template <
typename...>
typename type_list_t,
typename... args_t>
51struct type_list_expander<type_list_t<args_t...>>
63 template <
typename fn_t>
64 requires std::invocable<fn_t, std::type_identity<args_t>...>
109template <
typename type_list_t,
typename unary_predicate_t>
110[[nodiscard]]
constexpr bool all_of(unary_predicate_t && fn)
113 return type_list_expander<type_list_t>::invoke_on_type_identities(
114 [&](
auto &&... type_identities)
158template <
typename type_list_t,
typename unary_function_t>
162 type_list_expander<type_list_t>::invoke_on_type_identities(
163 [&](
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:110
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:160
Provides concept seqan3::template_specialisation_of<mytype, [...]> for checking the type specialisati...
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
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:65
Provides seqan3::type_list.
Provides algorithms for meta programming, parameter packs and seqan3::type_list.