21namespace seqan3::detail
39concept alphabet_tuple_like =
requires {
requires t::seqan3_alphabet_tuple_like; };
59 using type = type_list<>;
72 requires requires {
typename t::seqan3_required_types; }
73struct required_types<t>
76 using type =
typename t::seqan3_required_types;
83using required_types_t =
typename required_types<t>::type;
96struct recursive_required_types
99 using type = type_list<>;
107 requires requires {
typename t::seqan3_recursive_required_types; }
108struct recursive_required_types<t>
111 using type =
typename t::seqan3_recursive_required_types;
118using recursive_required_types_t =
typename recursive_required_types<t>::type;
129struct constructible_from
132 template <
typename type>
141struct implicitly_convertible_from
144 template <
typename type>
153struct assignable_from
156 template <
typename type>
165struct weakly_equality_comparable_with_
168 template <
typename type>
177struct weakly_ordered_with_
180 template <
typename type>
191template <
typename lhs_t,
typename rhs_t>
192struct weakly_equality_comparable_with_trait :
199template <
typename lhs_t,
typename rhs_t>
213template <
typename... alternative_types>
214 requires (detail::writable_constexpr_alphabet<alternative_types> && ...) && (std::regular<alternative_types> && ...)
215 && (
sizeof...(alternative_types) >= 2)
216class alphabet_variant;
218template <
typename derived_type,
typename... component_types>
219 requires (detail::writable_constexpr_semialphabet<component_types> && ...) && (std::regular<component_types> && ...)
220class alphabet_tuple_base;
Core alphabet concept and free function/type trait wrappers.
Provides alphabet helper concepts.
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.