BioC++ core-0.7.0
The Modern C++ libraries for Bioinformatics.
 
Loading...
Searching...
No Matches
bio::alphabet::custom Namespace Reference

A namespace for third party and standard library specialisations of BioC++ customisation points. More...

Classes

struct  assign_char_to
 Customisation tag for bio::alphabet::assign_char_to. More...
 
struct  assign_phred_to
 Customisation tag for bio::alphabet::assign_char_to. More...
 
struct  assign_rank_to
 Customisation tag for bio::alphabet::assign_rank_to.#. More...
 
struct  char_is_valid_for
 Customisation tag for bio::alphabet::assign_char_to. More...
 
struct  complement
 Customisation tag for bio::alphabet::complement. More...
 
struct  size
 CPO tag definition for bio::alphabet::size. More...
 
struct  to_char
 Customisation tag for bio::alphabet::to_char. More...
 
struct  to_phred
 Customisation tag for bio::alphabet::assign_char_to. More...
 
struct  to_rank
 Customisation tag for bio::alphabet::to_rank. More...
 

Functions

Adapt builtin character types as alphabets.

These overloads make char, wchar_t, char16_t and char32_t (but not signed char and unsigned char!) satisfy bio::alphabet::alphabet.

template<bio::meta::nonint_character char_type>
consteval auto tag_invoke (size, char_type const) noexcept
 The number of values the char type can take (e.g. 256 for char).
 
template<bio::meta::nonint_character char_type>
constexpr auto tag_invoke (to_rank tag, char_type const chr) noexcept
 Convert char to rank by casting to an unsigned integral type of same size.
 
template<bio::meta::nonint_character char_type>
constexpr char_type & tag_invoke (assign_rank_to tag, decltype(tag_invoke(to_rank{}, char_type{})) const rank, char_type &chr) noexcept
 Assigning a rank to a char is the same as assigning it a numeric value.
 
template<bio::meta::nonint_character char_type>
constexpr char_type tag_invoke (to_char tag, char_type const chr) noexcept
 Converting char to char is no-op (it will just return the value you pass in).
 
template<bio::meta::nonint_character char_type>
constexpr char_type & tag_invoke (assign_char_to tag, char_type const chr2, char_type &chr) noexcept
 Assign a char to the char type (same as calling =).
 
Adapt unsigned integral types as semialphabets.

These overloads make uint8_t, uint16_t and uint32_t (but not uint64_t!) satisfy bio::alphabet::semialphabet.

template<alphabet::detail::uint_adaptation uint_type>
consteval auto tag_invoke (size tag, uint_type const) noexcept
 The number of values the uint type can take (e.g. 256 for uint8_t).
 
template<alphabet::detail::uint_adaptation uint_type>
constexpr uint_type & tag_invoke (assign_rank_to tag, uint_type const intgr2, uint_type &intgr) noexcept
 Assign a rank to to the uint (same as calling =).
 
template<alphabet::detail::uint_adaptation uint_type>
constexpr auto tag_invoke (to_rank tag, uint_type const intgr) noexcept
 Converting uint to rank is a no-op (it will just return the value you pass in).
 

Variables

template<typename t >
constexpr bool enable_aminoacid = std::derived_from<t, aminoacid_empty_base>
 A trait that indicates whether a type shall model bio::alphabet::aminoacid.
 

Detailed Description

A namespace for third party and standard library specialisations of BioC++ customisation points.

See also
Customisation