65 concept cartesian_composition_concept = requires
67 typename t::seqan3_cartesian_components;
68 typename t::seqan3_recursive_cartesian_components;
81 struct cartesian_components;
88 template <cartesian_composition_concept t>
89 struct cartesian_components<t>
92 using type =
typename t::seqan3_cartesian_components;
104 template <
typename t>
105 struct recursive_cartesian_components;
112 template <cartesian_composition_concept t>
113 struct recursive_cartesian_components<t>
116 using type =
typename t::seqan3_recursive_cartesian_components;
126 template <
typename T>
127 struct constructible_from
130 template <
typename type>
131 using invoke = std::integral_constant<bool, std::is_constructible_v<type, T>>;
137 template <
typename T>
138 struct implicitly_convertible_from
141 template <
typename type>
142 using invoke = std::integral_constant<bool, implicitly_convertible_to_concept<T, type>>;
148 template <
typename T>
149 struct assignable_from
152 template <
typename type>
153 using invoke = std::integral_constant<bool, weakly_assignable_concept<type, T>>;
159 template <
typename T>
160 struct weakly_equality_comparable_with
163 template <
typename type>
164 using invoke = std::integral_constant<bool, std::detail::WeaklyEqualityComparableWith<type, T>>;
170 template <
typename T>
171 struct weakly_ordered_with
174 template <
typename type>
175 using invoke = std::integral_constant<bool, weakly_ordered_with_concept<type, T>>;
188 template <
typename ...alternative_types>
190 requires (detail::constexpr_alphabet_concept<alternative_types> && ...) &&
191 (
sizeof...(alternative_types) >= 2)
196 template <
typename derived_type,
197 typename ...component_types>
199 requires (detail::constexpr_semi_alphabet_concept<component_types> && ...)
The CRTP base for a combined alphabet that contains multiple values of different alphabets at the sam...
Definition: cartesian_composition.hpp:209
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
A combined alphabet that can hold values of either of its alternatives.
Definition: detail.hpp:194
Definition: aligned_sequence_concept.hpp:288
Provides C++20 additions to the type_traits header.