16 #include <type_traits>
20 namespace seqan3::detail
33 template <
class T,
class U>
34 SEQAN3_CONCEPT weakly_equality_comparable_with =
38 std::convertible_to<decltype(t == u),
bool>;
39 std::convertible_to<decltype(t != u),
bool>;
40 std::convertible_to<decltype(u == t),
bool>;
41 std::convertible_to<decltype(u != t),
bool>;
46 template <
typename lhs_t,
typename rhs_t>
47 struct weakly_equality_comparable_with_trait :
57 template <
typename t1,
typename t2>
61 std::convertible_to<decltype(v1 < v2),
bool>;
62 std::convertible_to<decltype(v1 <= v2),
bool>;
63 std::convertible_to<decltype(v1 > v2),
bool>;
64 std::convertible_to<decltype(v1 >= v2),
bool>;
66 std::convertible_to<decltype(v2 < v1),
bool>;
67 std::convertible_to<decltype(v2 <= v1),
bool>;
68 std::convertible_to<decltype(v2 > v1),
bool>;
69 std::convertible_to<decltype(v2 >= v1),
bool>;
74 template <
typename lhs_t,
typename rhs_t>
94 template <
typename t,
typename u>
103 template <
typename t,
typename u>
113 template <
typename t>
114 SEQAN3_CONCEPT
arithmetic = std::is_arithmetic_v<t>;
124 template <
typename t>
136 template <
typename t>
138 (std::same_as<t, char> || std::same_as<t, unsigned char> || std::same_as<t, signed char> ||
140 std::same_as<t, char8_t> ||
142 std::same_as<t, char16_t> || std::same_as<t, char32_t> || std::same_as<t, wchar_t>);
152 template <
typename t>
163 template <
typename t>
164 SEQAN3_CONCEPT
trivially_copyable = std::copyable<t> && std::is_trivially_copyable_v<t>;
175 template <
typename t>
185 template <
typename t>
200 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