20 namespace seqan3::detail
29 template <
class T,
class U>
30 SEQAN3_CONCEPT weakly_equality_comparable_with =
31 requires(std::remove_reference_t<T>
const & t,
32 std::remove_reference_t<U>
const & u)
34 std::convertible_to<decltype(t == u),
bool>;
35 std::convertible_to<decltype(t != u),
bool>;
36 std::convertible_to<decltype(u == t),
bool>;
37 std::convertible_to<decltype(u != t),
bool>;
43 template <
typename lhs_t,
typename rhs_t>
44 struct weakly_equality_comparable_with_trait :
45 std::integral_constant<bool, weakly_equality_comparable_with<lhs_t, rhs_t>>
55 template <
typename t1,
typename t2>
56 SEQAN3_CONCEPT weakly_ordered_with = requires (std::remove_reference_t<t1>
const & v1,
57 std::remove_reference_t<t2>
const & v2)
59 std::convertible_to<decltype(v1 < v2),
bool>;
60 std::convertible_to<decltype(v1 <= v2),
bool>;
61 std::convertible_to<decltype(v1 > v2),
bool>;
62 std::convertible_to<decltype(v1 >= v2),
bool>;
64 std::convertible_to<decltype(v2 < v1),
bool>;
65 std::convertible_to<decltype(v2 <= v1),
bool>;
66 std::convertible_to<decltype(v2 > v1),
bool>;
67 std::convertible_to<decltype(v2 >= v1),
bool>;
73 template <
typename lhs_t,
typename rhs_t>
74 struct weakly_ordered_with_trait : std::integral_constant<bool, weakly_ordered_with<lhs_t, rhs_t>>
87 template <
typename t,
typename u>
97 template <
typename t,
typename u>
108 template <
typename t>
109 SEQAN3_CONCEPT
arithmetic = std::is_arithmetic_v<t>;
120 template <
typename t>
133 template <
typename t>
135 (std::same_as<t, char> || std::same_as<t, unsigned char> || std::same_as<t, signed char> ||
137 std::same_as<t, char8_t> ||
139 std::same_as<t, char16_t> || std::same_as<t, char32_t> || std::same_as<t, wchar_t>);
150 template <
typename t>
162 template <
typename t>
163 SEQAN3_CONCEPT
trivially_copyable = std::copyable<t> && std::is_trivially_copyable_v<t>;
175 template <
typename t>
186 template <
typename t>
202 template <
typename t,
typename u>
A type that satisfies std::is_arithmetic_v<t>.
This concept encompasses exactly the types char, signed char, unsigned char, wchar_t,...
Resolves to std::ranges::explicitly_convertible_to<type1, type2>(). <dl class="no-api">This entity i...
An arithmetic type that also satisfies std::is_floating_point_v<t>.
Resolves to std::ranges::implicitly_convertible_to<type1, type2>(). <dl class="no-api">This entity i...
Resolves to std::is_standard_layout_v<t>.
A type that satisfies seqan3::trivially_copyable and seqan3::trivially_destructible.
A type that satisfies std::is_trivially_copyable_v<t>.
A type that satisfies std::is_trivially_destructible_v<t>.
Resolves to std::is_assignable_v<t>.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides C++20 additions to the type_traits header.