20 namespace seqan3::detail
38 SEQAN3_CONCEPT alphabet_tuple_like = requires
40 requires t::seqan3_alphabet_tuple_like;
61 using type = type_list<>;
75 requires requires {
typename t::seqan3_required_types; }
77 struct required_types<t>
80 using type =
typename t::seqan3_required_types;
87 using required_types_t =
typename required_types<t>::type;
100 struct recursive_required_types
103 using type = type_list<>;
110 template <
typename t>
114 typename t::seqan3_recursive_required_types;
117 struct recursive_required_types<t>
120 using type =
typename t::seqan3_recursive_required_types;
126 template <
typename t>
127 using recursive_required_types_t =
typename recursive_required_types<t>::type;
136 template <
typename T>
137 struct constructible_from
140 template <
typename type>
147 template <
typename T>
148 struct implicitly_convertible_from
151 template <
typename type>
158 template <
typename T>
159 struct assignable_from
162 template <
typename type>
169 template <
typename T>
170 struct weakly_equality_comparable_with_
173 template <
typename type>
180 template <
typename T>
181 struct weakly_ordered_with_
184 template <
typename type>
198 template <
typename ...alternative_types>
200 requires (detail::writable_constexpr_alphabet<alternative_types> && ...) &&
201 (std::regular<alternative_types> && ...) &&
202 (
sizeof...(alternative_types) >= 2)
205 class alphabet_variant;
207 template <
typename derived_type,
208 typename ...component_types>
210 requires (detail::writable_constexpr_semialphabet<component_types> && ...) &&
211 (std::regular<component_types> && ...)
213 class alphabet_tuple_base;
Core alphabet concept and free function/type trait wrappers.
Provides concepts for core language types and relations that don't have concepts in C++20 (yet).
Provides lazy template instantiation traits.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::type_list.