General Utility Library for C++14  2.8
case_ascii.h
Go to the documentation of this file.
1 
24 #ifndef GUL14_CASE_ASCII_H_
25 #define GUL14_CASE_ASCII_H_
26 
27 #include <string>
28 #include "gul14/internal.h"
29 #include "gul14/string_view.h"
30 
31 namespace gul14 {
32 
41 constexpr char lowercase_ascii(char c) noexcept
42 {
43  if (c >= 'A' && c <= 'Z')
44  c = static_cast<char>(c + ('a' - 'A'));
45  return c;
46 }
47 
56 GUL_EXPORT
57 std::string lowercase_ascii(gul14::string_view str);
58 
69 GUL_EXPORT
70 std::string &lowercase_ascii_inplace(std::string &str) noexcept;
71 
80 constexpr char uppercase_ascii(char c) noexcept
81 {
82  if (c >= 'a' && c <= 'z')
83  c = static_cast<char>(c - ('a' - 'A'));
84  return c;
85 }
86 
95 GUL_EXPORT
96 std::string uppercase_ascii(gul14::string_view str);
97 
108 GUL_EXPORT
109 std::string &uppercase_ascii_inplace(std::string &str) noexcept;
110 
111 } // namespace gul14
112 
113 #endif
114 
115 /* vim:set expandtab softtabstop=4 tabstop=4 shiftwidth=4 textwidth=90 cindent: */
Definition of macros used internally by GUL.
Namespace gul14 contains all functions and classes of the General Utility Library.
Definition: doxygen.h:26
GUL_EXPORT std::string & lowercase_ascii_inplace(std::string &str) noexcept
Replace all ASCII characters in a string by their lowercase equivalents.
Definition: case_ascii.cc:40
constexpr char lowercase_ascii(char c) noexcept
Return the ASCII lowercase equivalent of the given character (or the unchanged character,...
Definition: case_ascii.h:41
constexpr char uppercase_ascii(char c) noexcept
Return the ASCII uppercase equivalent of the given character (or the unchanged character,...
Definition: case_ascii.h:80
GUL_EXPORT std::string & uppercase_ascii_inplace(std::string &str) noexcept
Replace all ASCII characters in a string by their uppercase equivalents.
Definition: case_ascii.cc:59
Provides a gul14::string_view that is fully compatible with C++17's std::string_view.