SeqAn3
seqan3::char_adaptation_concept Interface Reference

A concept that covers char type adaptations for seqan3::alphabet_concept. More...

#include <seqan3/alphabet/adaptation/concept.hpp>

Inheritance diagram for seqan3::char_adaptation_concept:
[legend]

Related Functions

(Note that these are not member functions.)

Free function wrappers for the char alphabet adaptation

For char, char16_t and char32_t do conversion to/from uint types.

template<typename char_type >
constexpr underlying_char_t< char_type > to_char (char_type const chr) requires detail
 Converting char to char is no-op (it will just return the value you pass in). More...
 
template<typename char_type >
constexpr underlying_rank_t< char_type > to_rank (char_type const chr) requires detail
 Convert char to rank by casting to an unsigned integral type of same size. More...
 
template<typename char_type >
constexpr char_type & assign_char (char_type &chr, underlying_char_t< char_type > const chr2) requires detail
 Assign a char to the char type (same as calling =). More...
 
template<typename char_type >
constexpr char_type && assign_char (char_type &&chr, underlying_char_t< char_type > const chr2) requires detail
 Assign a char to the char type (same as calling =). More...
 
template<typename char_type >
constexpr char_type & assign_rank (char_type &chr, underlying_rank_t< char_type > const rank) requires detail
 Assigning a rank to a char is the same as assigning it a numeric value. More...
 
template<typename char_type >
constexpr char_type && assign_rank (char_type &&chr, underlying_rank_t< char_type > const rank) requires detail
 Assigning a rank to a char is the same as assigning it a numeric value. More...
 
Requirements for seqan3::alphabet_concept

You can expect these functions on all types that implement seqan3::alphabet_concept.

template<typename alphabet_type >
using underlying_char_t = typename underlying_char< alphabet_type >::type
 The char_type of the alphabet. [type metafunction shortcut]. More...
 
char_type to_char (alphabet_concept const alph)
 Returns the alphabet letter's value in character representation. More...
 
alphabet_concept && assign_char (alphabet_concept &&alph, char_type const chr)
 Returns the alphabet letter's value in character representation. More...
 
Requirements for seqan3::semi_alphabet_concept

You can expect these functions on all types that implement seqan3::semi_alphabet_concept.

template<typename semi_alphabet_type >
using underlying_rank_t = typename underlying_rank< semi_alphabet_type >::type
 The rank_type of the semi_alphabet. [type metafunction shortcut]. More...
 
template<typename alphabet_type >
constexpr auto alphabet_size_v = alphabet_size<alphabet_type>::value
 The size of the alphabet. [value metafunction shortcut]. More...
 
rank_type to_rank (semi_alphabet_concept const alph)
 Returns the alphabet letter's value in rank representation. More...
 
semi_alphabet_concept && assign_rank (semi_alphabet_concept &&alph, rank_type const rank)
 Returns the alphabet letter's value in rank representation. More...
 
Requirements for std::Swappable

You can expect these functions on all types that implement std::Swappable.

void swap (t &lhs, t &rhs)
 Swaps the contents of two objects. More...
 
Requirements for std::EqualityComparable

You can expect these functions on all types that implement std::Equality_comparable.

bool operator== (type const &lhs, type const &rhs)
 (In-)Equality comparison. More...
 
bool operator!= (type const &lhs, type const &rhs)
 (In-)Equality comparison. More...
 
Requirements for std::StrictTotallyOrdered

You can expect these functions on all types that implement std::StrictTotallyOrdered.

bool operator< (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator<= (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator> (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 
bool operator>= (type const &lhs, type const &rhs)
 Less-than, greater-than and -or-equal comparisons. More...
 

Detailed Description

A concept that covers char type adaptations for seqan3::alphabet_concept.

This concept introduces no formal requirements beyond those of seqan3::alphabet_concept and type being one of the following types:

  • char
  • char16_t
  • char32_t
Attention
  • Note that signed char and unsigned char are absent from the list, because of their type ambiguity with int8_t and uint8_t.
  • Note that wchar_t is absent from the list for its notorious brokenness (different sizes and signedness between platforms); use char16_t or char32_t instead.
Please be aware that this file needs be included after alphabet/adaptation/char.hpp.
Concepts and doxygen
The requirements for this concept are given as related functions and metafunctions. Types that satisfy this concept are shown as "implementing this interface".

The documentation for this interface was generated from the following files: