Provides various type traits and their shortcuts. More...
Classes | |
struct | seqan3::const_reference< t > |
Exposes the const_reference of another type. More... | |
struct | seqan3::difference_type< t > |
Exposes the difference_type of another type. More... | |
struct | seqan3::function_traits< std::function< return_t(args_t...)> > |
A traits class to provide a uniform interface to the properties of a function type. 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 (unary_type_trait specialisation). More... | |
struct | seqan3::reference< 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::size_type< t > |
Exposes the size_type of another type. More... | |
interface | transformation_trait |
Concept for a transformation trait. More... | |
interface | unary_type_trait |
Concept for a unary traits type. More... | |
struct | seqan3::value_type< 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... | |
#define | SEQAN3_IS_SAME(...) std::is_same_v<__VA_ARGS__> |
A macro that behaves like std::is_same_v, except that it doesn't need to instantiate the template on GCC and Clang. | |
Typedefs | |
template<typename t > | |
using | seqan3::const_reference_t = typename detail::const_reference_t< t > |
Shortcut for seqan3::const_reference (transformation_trait shortcut). More... | |
template<typename t > | |
using | seqan3::difference_type_t = typename detail::difference_type_t< t > |
Shortcut for seqan3::difference_type (transformation_trait shortcut). More... | |
template<typename t > | |
using | seqan3::reference_t = typename detail::reference_t< t > |
Shortcut for seqan3::reference (transformation_trait 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 (transformation_trait shortcut). More... | |
template<typename t > | |
using | seqan3::rvalue_reference_t = typename detail::rvalue_reference_t< t > |
Shortcut for seqan3::rvalue_reference (transformation_trait shortcut). More... | |
template<typename t > | |
using | seqan3::size_type_t = typename detail::size_type_t< t > |
Shortcut for seqan3::size_type (transformation_trait shortcut). More... | |
template<typename t > | |
using | seqan3::value_type_t = typename detail::value_type_t< t > |
Shortcut for seqan3::value_type (transformation_trait shortcut). More... | |
Variables | |
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 (unary_type_trait shortcut). More... | |
Provides various type traits and their shortcuts.
| no-api |
Returns true if the expression passed to this macro can be evaluated at compile time, false otherwise.
| no-api |
Shortcut for seqan3::const_reference (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::range_reference_t<t const> instead or if t
models std::input_iterator use std::iter_reference_t<t const> instead.
| no-api |
Shortcut for seqan3::difference_type (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::range_difference_t instead or if t
models std::input_iterator use std::iter_difference_t instead.
| no-api |
Shortcut for seqan3::reference (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::range_reference_t instead or if t
models std::input_iterator use std::iter_reference_t instead.
| no-api |
Return the input type with const
, volatile
and references removed (type trait).
t | The type to operate on. |
| no-api |
Return the input type with &&
removed, but lvalue references preserved (transformation_trait shortcut).
t | The type to operate on. |
| no-api |
Shortcut for seqan3::rvalue_reference (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::range_rvalue_reference_t instead or if t
models std::input_iterator use std::iter_rvalue_reference_t instead.
| no-api |
Shortcut for seqan3::size_type (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::size_type_t instead. If t
models std::input_iterator there is no alternative. Unlike std::ranges::range_size_t, the Standard has no std::iter_size_t.
| no-api |
Shortcut for seqan3::value_type (transformation_trait shortcut).
t | The type you wish to query. |
t
models std::ranges::range use std::ranges::range_value_t instead or if t
models std::input_iterator use std::iter_value_t instead.
|
no-apirelated |
Whether a type std::is_default_constructible in constexpr
-context (unary_type_trait shortcut).
t | The type to operate on. |