40namespace seqan3::detail::adl_only
44template <
typename... args_t>
49template <
typename alphabet_t>
50struct enable_aminoacid_cpo :
public detail::customisation_point_object<enable_aminoacid_cpo<alphabet_t>, 2>
53 using base_t = detail::customisation_point_object<enable_aminoacid_cpo<alphabet_t>, 2>;
60 template <
typename alphabet_type>
61 using alphabet_or_type_identity =
63 && seqan3::is_constexpr_default_constructible_v<std::remove_cvref_t<alphabet_type>>,
70 template <
typename alphabet_type = alphabet_t>
84 template <
typename alphabet_type = alphabet_t>
92 template <
typename alphabet_type = alphabet_t>
94 std::is_base_of_v<seqan3::aminoacid_empty_base, alphabet_type> ==
true
150 detail::adl_only::enable_aminoacid_cpo<std::remove_cvref_t<t>>::cpo_overload(detail::priority_tag<2>{});
172template <
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:104
constexpr bool enable_aminoacid
A trait that indicates whether a type shall model seqan3::aminoacid_alphabet.
Definition alphabet/aminoacid/concept.hpp:143
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 aligned_sequence_concept.hpp:26
This is an empty base class that can be inherited by types that shall model seqan3::aminoacid_alphabe...
Definition alphabet/aminoacid/concept.hpp:32
Provides type traits for working with templates.