28 #define SEQAN3_IS_CONSTEXPR(...) std::integral_constant<bool, __builtin_constant_p((__VA_ARGS__, 0))>::value
47 using type = std::conditional_t<std::is_rvalue_reference_v<t>, std::remove_reference_t<t>, t>;
78 requires std::is_default_constructible_v<t>
92 namespace seqan3::detail
106 template <
typename t,
typename ...dependent_ts>
120 template <
typename t,
typename ...dependent_ts>
121 using deferred_type_t =
typename deferred_type<t, dependent_ts...>::type;
136 template <
typename t>
137 constexpr
bool decays_to_ignore_v = std::is_same_v<std::remove_cvref_t<t>, ignore_t>;
149 #if defined(__clang__)
150 # define SEQAN3_IS_SAME(...) __is_same(__VA_ARGS__)
151 #elif defined(__GNUC__)
152 # define SEQAN3_IS_SAME(...) __is_same_as(__VA_ARGS__)
154 # define SEQAN3_IS_SAME(...) std::is_same_v<__VA_ARGS__>
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
typename remove_cvref< t >::type remove_cvref_t
Return the input type with const, volatile and references removed (transformation_trait shortcut).
Definition: type_traits:54
Whether a type std::is_default_constructible in constexpr-context.
Definition: basic.hpp:69
Return the input type with && removed, but lvalue references preserved.
Definition: basic.hpp:45
typename remove_rvalue_reference< t >::type remove_rvalue_reference_t
Return the input type with && removed, but lvalue references preserved (transformation_trait shortcut...
Definition: basic.hpp:56
std::conditional_t< std::is_rvalue_reference_v< t >, std::remove_reference_t< t >, t > type
The return type is the input type with any && stripped.
Definition: basic.hpp:47
Provides C++20 additions to the type_traits header.