SeqAn3  3.1.0-rc.1
The Modern C++ library for sequence analysis.
template_inspection.hpp File Reference

Provides type traits for working with templates. More...

+ Include dependency graph for template_inspection.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  seqan3::detail::is_type_specialisation_of< source_t, target_template >
 Determines whether a source_type is a specialisation of another template. More...
 
struct  seqan3::detail::is_type_specialisation_of< source_t, target_template >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
struct  seqan3::detail::is_value_specialisation_of< source_t, target_template >
 Determines whether a source_type is a specialisation of another template. More...
 
struct  seqan3::detail::transfer_template_args_onto< source_template< source_arg_types... >, target_template >
 Extracts a type template's type arguments and specialises another template with them. More...
 
struct  seqan3::detail::transfer_template_vargs_onto< source_template< source_varg_types... >, target_template >
 Extracts a type template's non-type arguments and specialises another template with them. More...
 
struct  seqan3::detail::valid_template_spec_or< fallback_t, templ_t, spec_t >
 Exposes templ_t<spec_t...> if that is valid, otherwise fallback_t. More...
 
struct  seqan3::detail::valid_template_spec_or< fallback_t, templ_t, spec_t... >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 

Namespaces

 seqan3
 The main SeqAn3 namespace.
 
 seqan3::detail
 The internal SeqAn3 namespace.
 

Typedefs

template<typename t >
using seqan3::detail::strip_type_identity_t = std::conditional_t< is_type_specialisation_of_v< t, std::type_identity >, transformation_trait_or_t< t, void >, t >
 A transformation trait shortcut that returns the type inside a std::type_identity or the type itself. More...
 
template<typename source_type , template< typename ... > typename target_template>
using seqan3::detail::transfer_template_args_onto_t = typename transfer_template_args_onto< source_type, target_template >::type
 Shortcut for seqan3::detail::transfer_template_args_onto (transformation_trait shortcut). More...
 
template<typename source_type , template< auto ... > typename target_template>
using seqan3::detail::transfer_template_vargs_onto_t = typename transfer_template_vargs_onto< source_type, target_template >::type
 Shortcut for seqan3::detail::transfer_template_vargs_onto (transformation_trait shortcut). More...
 
template<typename fallback_t , template< typename ... > typename templ_t, typename ... spec_t>
using seqan3::detail::valid_template_spec_or_t = typename valid_template_spec_or< fallback_t, templ_t, spec_t... >::type
 Helper for seqan3::detail::valid_template_spec_or (transformation_trait shortcut). More...
 

Variables

template<typename source_t , template< auto ... > typename target_template>
constexpr bool is_value_specialisation_of_v = is_value_specialisation_of<source_t, target_template>::value
 Helper variable template for seqan3::detail::is_value_specialisation_of (unary_type_trait shortcut). More...
 

Detailed Description

Provides type traits for working with templates.

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>
Lydia Buntrock <lydia.buntrock AT fu-berlin.de>

Variable Documentation

◆ is_value_specialisation_of_v

template<typename source_t , template< auto ... > typename target_template>
constexpr bool is_value_specialisation_of_v = is_value_specialisation_of<source_t, target_template>::value
inlineconstexpr

Helper variable template for seqan3::detail::is_value_specialisation_of (unary_type_trait shortcut).

Template Parameters
source_typeThe source type.
target_templateThe type template you wish to compare against (must take only types as template arguments).