20namespace bio::alphabet::detail
36concept alphabet_tuple_like =
requires {
requires t::biocpp_alphabet_tuple_like; };
55 using type = meta::type_list<>;
68 requires(
requires {
typename t::biocpp_required_types; })
69struct required_types<t>
72 using type =
typename t::biocpp_required_types;
79using required_types_t =
typename required_types<t>::type;
92struct recursive_required_types
95 using type = meta::type_list<>;
103 requires(
requires {
typename t::biocpp_recursive_required_types; })
104struct recursive_required_types<t>
107 using type =
typename t::biocpp_recursive_required_types;
114using recursive_required_types_t =
typename recursive_required_types<t>::type;
125struct constructible_from
128 template <
typename type>
137struct implicitly_convertible_from
140 template <
typename type>
149struct assignable_from
152 template <
typename type>
161struct weakly_equality_comparable_with_
164 template <
typename type>
173struct weakly_ordered_with_
176 template <
typename type>
187template <
typename lhs_t,
typename rhs_t>
188struct weakly_equality_comparable_with_trait :
195template <
typename lhs_t,
typename rhs_t>
209template <
typename... alternative_types>
210 requires((detail::writable_constexpr_alphabet<alternative_types> && ...) &&
211 (std::regular<alternative_types> && ...) && (
sizeof...(alternative_types) >= 2))
214template <
typename derived_type,
typename... component_types>
215 requires((detail::writable_constexpr_semialphabet<component_types> && ...) &&
216 (std::regular<component_types> && ...))
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).
The alphabet module's namespace.
Definition: aa10li.hpp:23
Provides bio::meta::type_list.