52 template <typename alph_t>
54 requires requires (alph_t
const chr) { { impl(priority_tag<2>{}, chr) }; }
56 constexpr
auto operator()(alph_t
const chr)
const noexcept
58 static_assert(noexcept(impl(priority_tag<2>{}, chr)),
59 "Only overloads that are marked noexcept are picked up by seqan3::to_phred().");
61 "The return type of your to_phred() implementation must be convertible to size_t.");
63 return impl(priority_tag<2>{}, chr);
104 inline constexpr
auto to_phred = detail::adl::only::to_phred_fn{};
110 template <
typename alphabet_type>
127 struct assign_phred_to_fn
136 template <typename alph_t>
139 { { impl(priority_tag<2>{}, a, p) }; }
143 static_assert(noexcept(impl(priority_tag<2>{}, a, p)),
144 "Only overloads that are marked noexcept are picked up by seqan3::assign_phred_to().");
145 static_assert(
std::Same<alph_t &, decltype(impl(priority_tag<2>{}, a, p))>,
146 "The return type of your assign_phred_to() implementation must be 'alph_t &'.");
148 return impl(priority_tag<2>{}, a, p);
152 template <
typename alph_t>
155 { { impl(priority_tag<2>{}, a, p) }; } && (!std::is_lvalue_reference_v<alph_t>)
159 return (*
this)(p, a);
240 template <
typename t>
242 SEQAN3_CONCEPT QualityAlphabet = Alphabet<t> && requires(t qual)
278 template <
typename t>
280 SEQAN3_CONCEPT WritableQualityAlphabet = WritableAlphabet<t> && QualityAlphabet<t> && requires(t qual)
#define SEQAN3_CPO_IMPL(PRIO, TERM)
A macro that helps defining the overload set of a customisation point.
Definition: customisation_point.hpp:45
Definition: concept.hpp:32
The main SeqAn3 namespace.
constexpr auto assign_phred_to
Assign a phred score to a quality alphabet object.
Definition: concept.hpp:201
constexpr auto to_phred
The public getter function for the phred representation of a quality score.
Definition: concept.hpp:104
The std::Constructible concept specifies that a variable of type T can be initialized with the given ...
decltype(seqan3::to_phred(std::declval< alphabet_type >())) alphabet_phred_t
The phred_type of the alphabet; defined as the return type of seqan3::to_phred.
Definition: concept.hpp:114
Core alphabet concept and free function/type trait wrappers.
A namespace for third party and standard library specialisations of SeqAn customisation points...
Definition: char.hpp:47
The concept std::Same<T, U> is satisfied if and only if T and U denote the same type.