20namespace seqan3::detail
26template <
typename char_type>
33 for (
size_t i = 0; i < detail::size_in_values_v<char_type>; ++i)
36 for (
size_t i = char_type{
'A'}; i <= char_type{
'Z'}; ++i)
37 ret[i] = ret[i] - char_type{
'A'} + char_type{
'a'};
45template <
typename char_type>
52 for (
size_t i = 0; i < detail::size_in_values_v<char_type>; ++i)
55 for (
size_t i = char_type{
'a'}; i <= char_type{
'z'}; ++i)
56 ret[i] = ret[i] - char_type{
'a'} + char_type{
'A'};
82template <builtin_
character
char_type>
83constexpr char_type
to_lower(char_type
const c)
noexcept
86 return detail::to_lower_table<char_type>[
static_cast<u_t
>(c)];
98template <builtin_
character
char_type>
99constexpr char_type
to_upper(char_type
const c)
noexcept
102 return detail::to_upper_table<char_type>[
static_cast<u_t
>(c)];
Provides metaprogramming utilities for integer types.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
constexpr char_type to_upper(char_type const c) noexcept
Converts 'a'-'z' to 'A'-'Z' respectively; other characters are returned as is.
Definition: transform.hpp:99
constexpr char_type to_lower(char_type const c) noexcept
Converts 'A'-'Z' to 'a'-'z' respectively; other characters are returned as is.
Definition: transform.hpp:83
Provides concepts that do not have equivalents in C++20.