21 namespace seqan3::detail
39 concept alphabet_tuple_like =
requires {
requires t::seqan3_alphabet_tuple_like; };
59 using type = type_list<>;
73 struct required_types<t>
76 using type =
typename t::seqan3_required_types;
83 using required_types_t =
typename required_types<t>::type;
96 struct recursive_required_types
99 using type = type_list<>;
106 template <
typename t>
108 struct recursive_required_types<t>
111 using type =
typename t::seqan3_recursive_required_types;
117 template <
typename t>
118 using recursive_required_types_t =
typename recursive_required_types<t>::type;
128 template <
typename T>
129 struct constructible_from
132 template <
typename type>
140 template <
typename T>
141 struct implicitly_convertible_from
144 template <
typename type>
152 template <
typename T>
153 struct assignable_from
156 template <
typename type>
164 template <
typename T>
165 struct weakly_equality_comparable_with_
168 template <
typename type>
176 template <
typename T>
177 struct weakly_ordered_with_
180 template <
typename type>
191 template <
typename lhs_t,
typename rhs_t>
192 struct weakly_equality_comparable_with_trait :
199 template <
typename lhs_t,
typename rhs_t>
213 template <
typename... alternative_types>
214 requires (detail::writable_constexpr_alphabet<alternative_types> && ...) && (std::regular<alternative_types> && ...)
215 && (
sizeof...(alternative_types) >= 2)
216 class alphabet_variant;
218 template <
typename derived_type,
typename... component_types>
219 requires (detail::writable_constexpr_semialphabet<component_types> && ...) && (std::regular<component_types> && ...)
220 class alphabet_tuple_base;
Core alphabet concept and free function/type trait wrappers.
Provides alphabet helper concepts.
requires requires
The rank_type of the semi-alphabet; defined as the return type of seqan3::to_rank....
Definition: alphabet/concept.hpp:164
Provides lazy template instantiation traits.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::type_list.
Provides concepts that do not have equivalents in C++20.