26 template <
typename ...args_t>
39 template <typename alph_t>
41 requires requires (alph_t
const chr) { { impl(priority_tag<2>{}, chr) }; }
43 constexpr
auto operator()(alph_t
const chr)
const noexcept
45 static_assert(noexcept(impl(priority_tag<2>{}, chr)),
46 "Only overloads that are marked noexcept are picked up by seqan3::to_phred().");
48 "The return type of your to_phred() implementation must be convertible to size_t.");
50 return impl(priority_tag<2>{}, chr);
89 inline constexpr
auto to_phred = detail::adl_only::to_phred_fn{};
95 template <
typename alphabet_type>
111 template <
typename ...args_t>
116 struct assign_phred_to_fn
125 template <typename alph_t>
128 { { impl(priority_tag<2>{}, a, p) }; }
132 static_assert(noexcept(impl(priority_tag<2>{}, a, p)),
133 "Only overloads that are marked noexcept are picked up by seqan3::assign_phred_to().");
134 static_assert(
std::same_as<alph_t &, decltype(impl(priority_tag<2>{}, a, p))>,
135 "The return type of your assign_phred_to() implementation must be 'alph_t &'.");
137 return impl(priority_tag<2>{}, a, p);
141 template <
typename alph_t>
144 { { impl(priority_tag<2>{}, a, p) }; } && (!std::is_lvalue_reference_v<alph_t>)
148 return (*
this)(p, a);
228 template <
typename t>
266 template <
typename t>
A concept that indicates whether a writable alphabet represents quality scores.
#define SEQAN3_CPO_IMPL(PRIO, TERM)
A macro that helps defining the overload set of a customisation point.
Definition: customisation_point.hpp:45
The main SeqAn3 namespace.
The qualities, usually in phred-score notation.
constexpr auto assign_phred_to
Assign a phred score to a quality alphabet object.
Definition: concept.hpp:189
Definition: concept.hpp:41
A type that can be specialised to provide customisation point implementations so that third party typ...
Definition: concept.hpp:46
A concept that indicates whether an alphabet represents quality scores.
constexpr auto to_phred
The public getter function for the phred representation of a quality score.
Definition: concept.hpp:89
The generic alphabet concept that covers most data types used in ranges.
The std::constructible_from concept specifies that a variable of type T can be initialized with the g...
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:99
Core alphabet concept and free function/type trait wrappers.
Refines seqan3::alphabet and adds assignability.
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type...