28template <
typename source_type,
template <
typename...>
typename target_template>
29struct transfer_template_args_onto
57template <
template <
typename...>
typename source_template,
58 template <
typename...>
59 typename target_template,
60 typename... source_arg_types>
61 requires(
requires() {
typename target_template<source_arg_types...>; })
62struct transfer_template_args_onto<source_template<source_arg_types...>, target_template>
65 using type = target_template<source_arg_types...>;
72template <
typename source_type,
template <
typename...>
typename target_template>
80template <
typename source_type,
template <
auto...>
typename target_template>
81struct transfer_template_vargs_onto
102template <
template <
auto...>
typename source_template,
104 typename target_template,
105 auto... source_varg_types>
106 requires(
requires() {
typename target_template<source_varg_types...>; })
107struct transfer_template_vargs_onto<source_template<source_varg_types...>, target_template>
110 using type = target_template<source_varg_types...>;
117template <
typename source_type,
template <
auto...>
typename target_template>
136template <
typename source_t,
template <
typename...>
typename target_template>
141template <
typename source_t,
template <
typename...>
typename target_template>
143 !std::same_as<transformation_trait_or_t<transfer_template_args_onto<source_t, target_template>,
void>,
void>)
153template <
typename source_t,
template <
typename...>
typename target_template>
174template <
typename mytype,
template <
typename...>
typename type_template>
175concept template_specialisation_of = is_type_specialisation_of_v<mytype, type_template>;
182template <
typename source_t,
template <
auto...>
typename target_template>
196template <
typename source_t,
template <
auto...>
typename target_template>
198 !std::same_as<transformation_trait_or_t<transfer_template_vargs_onto<source_t, target_template>,
void>,
void>)
199struct is_value_specialisation_of<source_t, target_template> :
208template <
typename source_t,
template <
auto...>
typename target_template>
220template <
typename fallback_t,
template <
typename...>
typename templ_t,
typename... spec_t>
228template <
typename fallback_t,
template <
typename...>
typename templ_t,
typename... spec_t>
229 requires(
requires {
typename templ_t<spec_t...>; })
233 using type = templ_t<spec_t...>;
243template <
typename fallback_t,
template <
typename...>
typename templ_t,
typename... spec_t>
typename valid_template_spec_or< fallback_t, templ_t, spec_t... >::type valid_template_spec_or_t
Helper for bio::meta::valid_template_spec_or (transformation_trait shortcut).
Definition: template_inspection.hpp:244
typename transfer_template_args_onto< source_type, target_template >::type transfer_template_args_onto_t
Shortcut for bio::meta::transfer_template_args_onto (transformation_trait shortcut).
Definition: template_inspection.hpp:73
typename transformation_trait_or< type_t, default_t >::type transformation_trait_or_t
Helper type of bio::meta::transformation_trait_or (transformation_trait shortcut).
Definition: transformation_trait_or.hpp:53
typename transfer_template_vargs_onto< source_type, target_template >::type transfer_template_vargs_onto_t
Shortcut for bio::meta::transfer_template_vargs_onto (transformation_trait shortcut).
Definition: template_inspection.hpp:118
constexpr bool is_type_specialisation_of_v
Helper variable template for bio::meta::detail::is_type_specialisation_of (unary_type_trait shortcut)...
Definition: template_inspection.hpp:154
constexpr bool is_value_specialisation_of_v
Helper variable template for bio::meta::is_value_specialisation_of (unary_type_trait shortcut).
Definition: template_inspection.hpp:209