15 #include <type_traits> 32 template <
class T,
class U>
34 SEQAN3_CONCEPT weakly_equality_comparable_with =
46 template <
typename lhs_t,
typename rhs_t>
47 struct weakly_equality_comparable_with_trait :
56 template <
typename t1,
typename t2>
74 template <
typename lhs_t,
typename rhs_t>
92 template <
typename t,
typename u>
94 SEQAN3_CONCEPT implicitly_convertible_to = std::is_convertible_v<t, u>;
100 template <
typename t,
typename u>
102 SEQAN3_CONCEPT explicitly_convertible_to = requires (t vt) { {
static_cast<u
>(vt)}; };
109 template <
typename t>
111 SEQAN3_CONCEPT arithmetic = std::is_arithmetic_v<t>;
119 template <
typename t>
121 SEQAN3_CONCEPT floating_point = arithmetic<t> && std::is_floating_point_v<t>;
131 template <
typename t>
145 template <
typename t>
147 SEQAN3_CONCEPT trivially_destructible =
std::destructible<t> && std::is_trivially_destructible_v<t>;
155 template <
typename t>
157 SEQAN3_CONCEPT trivially_copyable =
std::copyable<t> && std::is_trivially_copyable_v<t>;
166 template <
typename t>
168 SEQAN3_CONCEPT trivial = trivially_copyable<t> && trivially_destructible<t> && std::is_trivial_v<t>;
175 template <
typename t>
177 SEQAN3_CONCEPT standard_layout = std::is_standard_layout_v<t>;
189 template <
typename t,
typename u>
191 SEQAN3_CONCEPT weakly_assignable_from = std::is_assignable_v<t, u>;
The concept std::destructible specifies the concept of all types whose instances can safely be destro...
The main SeqAn3 namespace.
The concept integral is satisfied if and only if T is an integral type.
Definition: aligned_sequence_concept.hpp:36
The concept std::convertible_to<From, To> specifies that an expression of the type and value category...
Subsumes std::movable, std::copy_constructible, and requires that the type be std::assignable_from bo...
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type...