43namespace seqan3::detail::adl_only
47template <
typename ...args_t>
52template <
typename alphabet_t>
53struct enable_aminoacid_cpo :
public detail::customisation_point_object<enable_aminoacid_cpo<alphabet_t>, 2>
56 using base_t = detail::customisation_point_object<enable_aminoacid_cpo<alphabet_t>, 2>;
63 template <
typename alphabet_type>
64 using alphabet_or_type_identity
66 seqan3::is_constexpr_default_constructible_v<std::remove_cvref_t<alphabet_type>>,
73 template <
typename alphabet_type = alphabet_t>
88 template <
typename alphabet_type = alphabet_t>
97 template <
typename alphabet_type = alphabet_t>
100 std::is_base_of_v<seqan3::aminoacid_empty_base, alphabet_type> ==
true
156 detail::adl_only::enable_aminoacid_cpo<std::remove_cvref_t<t>>::cpo_overload(detail::priority_tag<2>{});
178template <
typename type>
Core alphabet concept and free function/type trait wrappers.
#define SEQAN3_CPO_OVERLOAD(...)
A macro that helps to define a seqan3::detail::customisation_point_object.
Definition: customisation_point.hpp:102
constexpr bool enable_aminoacid
A trait that indicates whether a type shall model seqan3::aminoacid_alphabet.
Definition: concept.hpp:146
The generic alphabet concept that covers most data types used in ranges.
A concept that indicates whether an alphabet represents amino acids.
The main SeqAn3 namespace.
Definition: cigar_operation_table.hpp:2
This is an empty base class that can be inherited by types that shall model seqan3::aminoacid_alphabe...
Definition: concept.hpp:35
Provides type traits for working with templates.