15 #include <type_traits> 38 SEQAN3_CONCEPT AlphabetTupleBase = requires
40 typename t::seqan3_tuple_components;
41 typename t::seqan3_recursive_tuple_components;
54 struct tuple_components;
61 template <AlphabetTupleBase t>
62 struct tuple_components<t>
65 using type =
typename t::seqan3_tuple_components;
78 struct recursive_tuple_components;
85 template <AlphabetTupleBase t>
86 struct recursive_tuple_components<t>
89 using type =
typename t::seqan3_recursive_tuple_components;
100 struct constructible_from
103 template <
typename type>
110 template <
typename T>
111 struct implicitly_convertible_from
114 template <
typename type>
121 template <
typename T>
122 struct assignable_from
125 template <
typename type>
132 template <
typename T>
133 struct weakly_equality_comparable_with
136 template <
typename type>
143 template <
typename T>
144 struct weakly_ordered_with
147 template <
typename type>
161 template <
typename ...alternative_types>
163 requires (detail::WritableConstexprAlphabet<alternative_types> && ...) &&
164 (!std::is_reference_v<alternative_types> && ...) &&
165 (
sizeof...(alternative_types) >= 2)
168 class alphabet_variant;
170 template <
typename derived_type,
171 typename ...component_types>
173 requires (detail::WritableConstexprSemialphabet<component_types> && ...) &&
174 (!std::is_reference_v<component_types> && ...)
176 class alphabet_tuple_base;
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:35