Provides various type traits and their shortcuts. More...
Classes | |
interface | seqan3::Compatible |
Two types are "compatible" if their seqan3::dimension_v and their seqan3::innermost_value_type_t are the same. More... | |
struct | seqan3::const_reference< t > |
Exposes the const_reference of another type. More... | |
struct | seqan3::const_reference< rng_t > |
Exposes the const_reference of another type. More... | |
struct | seqan3::difference_type< t > |
Exposes the difference_type of another type. More... | |
struct | seqan3::difference_type< it_t > |
Exposes the difference_type of another type. More... | |
struct | seqan3::difference_type< rng_t > |
Exposes the difference_type of another type. More... | |
struct | seqan3::innermost_value_type< t > |
Recursively determines the value_type on containers and/or iterators. More... | |
struct | seqan3::is_constexpr_default_constructible< t > |
Whether a type std::is_default_constructible in constexpr -context. More... | |
struct | seqan3::is_constexpr_default_constructible< t > |
Whether a type std::is_default_constructible in constexpr -context (UnaryTypeTrait specialisation). More... | |
struct | seqan3::iterator_tag< it_t > |
Exposes the iterator_category from the modelled concept. More... | |
struct | seqan3::reference< t > |
Exposes the reference of another type. More... | |
struct | seqan3::reference< it_t > |
Exposes the reference type of another type. More... | |
struct | seqan3::reference< rng_t > |
Exposes the reference of another type. More... | |
struct | seqan3::remove_rvalue_reference< t > |
Return the input type with && removed, but lvalue references preserved. More... | |
struct | seqan3::rvalue_reference< t > |
Exposes the rvalue_reference of another type. More... | |
struct | seqan3::rvalue_reference< it_t > |
Exposes the rvalue_reference type of another type. More... | |
struct | seqan3::rvalue_reference< rng_t > |
Exposes the rvalue_reference of another type. More... | |
struct | seqan3::size_type< t > |
Exposes the size_type of another type. More... | |
struct | seqan3::size_type< it_t > |
Exposes the size_type of another type. More... | |
struct | seqan3::size_type< rng_t > |
Exposes the size_type of another type. More... | |
interface | seqan3::TransformationTrait |
Concept for a transformation trait. More... | |
struct | std::type_identity< t > |
The identity transformation (a TransformationTrait that returns the input). | |
interface | seqan3::UnaryTypeTrait |
Concept for a unary traits type. More... | |
struct | seqan3::value_type< t > |
Exposes the value_type of another type. More... | |
struct | seqan3::value_type< it_t > |
Exposes the value_type of another type. More... | |
struct | seqan3::value_type< rng_t > |
Exposes the value_type of another type. More... | |
Macros | |
#define | SEQAN3_IS_CONSTEXPR(...) std::integral_constant<bool, __builtin_constant_p((__VA_ARGS__, 0))>::value |
Returns true if the expression passed to this macro can be evaluated at compile time, false otherwise. More... | |
Typedefs | |
template<typename t > | |
using | seqan3::const_reference_t = typename const_reference< t >::type |
Shortcut for seqan3::const_reference (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::difference_type_t = typename difference_type< t >::type |
Shortcut for seqan3::difference_type (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::innermost_value_type_t = typename innermost_value_type< t >::type |
Shortcut for seqan3::innermost_value_type (TransformationTrait shortcut). More... | |
template<typename it_t > | |
using | seqan3::iterator_tag_t = typename iterator_tag< it_t >::type |
Return the iterator_category type of the input type (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::reference_t = typename reference< t >::type |
Shortcut for seqan3::reference (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::remove_cvref_t = std::remove_cv_t< std::remove_reference_t< t > > |
Return the input type with const , volatile and references removed (type trait). More... | |
template<typename t > | |
using | seqan3::remove_rvalue_reference_t = typename remove_rvalue_reference< t >::type |
Return the input type with && removed, but lvalue references preserved (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::rvalue_reference_t = typename rvalue_reference< t >::type |
Shortcut for seqan3::rvalue_reference (TransformationTrait shortcut). More... | |
template<typename t > | |
using | seqan3::size_type_t = typename size_type< t >::type |
Shortcut for seqan3::size_type (TransformationTrait shortcut). More... | |
template<typename t > | |
using | std::type_identity_t = typename type_identity< t >::type |
A shortcut for std::type_identity. | |
template<typename t > | |
using | seqan3::value_type_t = typename value_type< t >::type |
Shortcut for seqan3::value_type (TransformationTrait shortcut). More... | |
Variables | |
template<typename t > | |
constexpr size_t | seqan3::dimension_v = 1 |
Returns the number of times you can call seqan3::value_type_t recursively on t (type trait). More... | |
template<typename t > | |
constexpr bool | is_constexpr_default_constructible_v = is_constexpr_default_constructible<t>::value |
Whether a type std::is_default_constructible in constexpr -context (UnaryTypeTrait shortcut). More... | |
Provides various type traits and their shortcuts.
The <concepts> header from C++20's standard library.
#define SEQAN3_IS_CONSTEXPR | ( | ... | ) | std::integral_constant<bool, __builtin_constant_p((__VA_ARGS__, 0))>::value |
Returns true if the expression passed to this macro can be evaluated at compile time, false otherwise.
using seqan3::const_reference_t = typedef typename const_reference<t>::type |
Shortcut for seqan3::const_reference (TransformationTrait shortcut).
t | The type you wish to query. |
using seqan3::difference_type_t = typedef typename difference_type<t>::type |
Shortcut for seqan3::difference_type (TransformationTrait shortcut).
t | The type you wish to query. |
using seqan3::innermost_value_type_t = typedef typename innermost_value_type<t>::type |
Shortcut for seqan3::innermost_value_type (TransformationTrait shortcut).
using seqan3::iterator_tag_t = typedef typename iterator_tag<it_t>::type |
Return the iterator_category
type of the input type (TransformationTrait shortcut).
it_t | The type to operate on. |
using seqan3::reference_t = typedef typename reference<t>::type |
Shortcut for seqan3::reference (TransformationTrait shortcut).
t | The type you wish to query. |
using seqan3::remove_cvref_t = typedef std::remove_cv_t<std::remove_reference_t<t> > |
Return the input type with const
, volatile
and references removed (type trait).
t | The type to operate on. |
using seqan3::remove_rvalue_reference_t = typedef typename remove_rvalue_reference<t>::type |
Return the input type with &&
removed, but lvalue references preserved (TransformationTrait shortcut).
t | The type to operate on. |
using seqan3::rvalue_reference_t = typedef typename rvalue_reference<t>::type |
Shortcut for seqan3::rvalue_reference (TransformationTrait shortcut).
t | The type you wish to query. |
using seqan3::size_type_t = typedef typename size_type<t>::type |
Shortcut for seqan3::size_type (TransformationTrait shortcut).
t | The type you wish to query. |
using seqan3::value_type_t = typedef typename value_type<t>::type |
Shortcut for seqan3::value_type (TransformationTrait shortcut).
t | The type you wish to query. |
constexpr size_t seqan3::dimension_v = 1 |
Returns the number of times you can call seqan3::value_type_t
recursively on t (type trait).
t | The type to be queried; must resolve seqan3::value_type_t at least once. |
Attention, this type trait implicitly removes cv-qualifiers and reference from the types it recurses on and returns.
|
related |
Whether a type std::is_default_constructible in constexpr
-context (UnaryTypeTrait shortcut).
t | The type to operate on. |