xtd 0.2.0
box_char.h
Go to the documentation of this file.
1 #pragma once
5 #include "box_integer.h"
6 
8 namespace xtd {
35  template<typename type_t>
36  class box_char : public xtd::box_integer<type_t> {
37  public:
39  box_char() = default;
40  box_char(const type_t& value) : box_integer<type_t>(value) {}
41  box_char(const box_char&) = default;
42  box_char(box_char&&) = default;
43  box_char& operator =(const box_char&) = default;
45 
49  static bool is_ascii(type_t c) noexcept {return c > 0 && c <= 0x7F;}
50 
56  static bool is_ascii(const ustring& s, size_t index) {return is_ascii(s[index]);}
57 
61  static bool is_control(type_t c) noexcept {return std::iscntrl(c) != 0;}
62 
68  static bool is_control(const ustring& s, size_t index) {return is_control(s[index]);}
69 
74  static bool is_digit(type_t c) noexcept {return std::isdigit(c) != 0;}
75 
81  static bool is_digit(const ustring& s, size_t index) {return is_digit(s[index]);}
82 
86  static bool is_letter(type_t c) noexcept {return std::isalpha(c) != 0;}
87 
93  static bool is_letter(const ustring& s, size_t index) {return is_letter(s[index]);}
94 
98  static bool is_letter_or_digit(type_t c) noexcept {return std::isalnum(c) != 0;}
99 
105  static bool is_letter_or_digit(const ustring& s, size_t index) {return is_letter_or_digit(s[index]);}
106 
110  static bool is_lower(type_t c) noexcept {return std::islower(c) != 0;}
111 
117  static bool is_lower(const ustring& s, size_t index) {return is_lower(s[index]);}
118 
122  static bool is_number(type_t c) noexcept {return std::isdigit(c) != 0;}
123 
129  static bool is_number(const ustring& s, size_t index) {return is_number(s[index]);}
130 
134  static bool is_punctuation(type_t c) noexcept {return std::ispunct(c) != 0;}
135 
141  static bool is_punctuation(const ustring& s, size_t index) {return is_punctuation(s[index]);}
142 
146  static bool is_separator(type_t c) noexcept {return std::isspace(c) != 0 || c == '\n';}
147 
153  static bool is_separator(const ustring& s, size_t index) {return is_separator(s[index]);}
154 
158  static bool is_symbol(type_t c) noexcept {return std::isgraph(c) != 0 || c == 0x9C;}
159 
165  static bool is_symbol(const ustring& s, size_t index) {return is_symbol(s[index]);}
166 
170  static bool is_upper(type_t c) noexcept {return std::isupper(c) != 0;}
171 
177  static bool is_upper(const ustring& s, size_t index) {return is_upper(s[index]);}
178 
182  static bool is_white_space(type_t c) noexcept {return std::isspace(c) != 0;}
183 
189  static bool is_white_space(const ustring& s, size_t index) {return is_white_space(s[index]);}
190 
194  static char to_lower(type_t c) noexcept {return static_cast<type_t>(std::tolower(c));}
195 
199  static char to_upper(type_t c) noexcept {return static_cast<type_t>(std::toupper(c));}
200  };
201 }
static bool is_punctuation(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a punctuation mark...
Definition: box_char.h:134
Represents a boxed char object.
Definition: box_char.h:36
static bool is_ascii(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is an ASCII character...
Definition: box_char.h:56
static bool is_number(type_t c) noexcept
Indicates whether a Unicode character is categorized as a number.
Definition: box_char.h:122
static bool is_letter_or_digit(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a l...
Definition: box_char.h:105
static bool is_white_space(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as whi...
Definition: box_char.h:189
static bool is_letter(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a U...
Definition: box_char.h:93
static bool is_upper(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as an uppercase letter.
Definition: box_char.h:170
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
static bool is_letter(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a Unicode letter.
Definition: box_char.h:86
const type_t & value() const noexcept
Gets the underlying value.
Definition: box.h:79
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
static bool is_letter_or_digit(type_t c) noexcept
Indicates whether a Unicode character is categorized as a letter or a decimal digit.
Definition: box_char.h:98
static bool is_digit(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a d...
Definition: box_char.h:81
static bool is_white_space(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as white space.
Definition: box_char.h:182
static bool is_punctuation(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a p...
Definition: box_char.h:141
static bool is_separator(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a separator character.
Definition: box_char.h:146
static bool is_number(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a n...
Definition: box_char.h:129
static bool is_control(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a control character.
Definition: box_char.h:61
static bool is_control(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a c...
Definition: box_char.h:68
static bool is_separator(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a s...
Definition: box_char.h:153
static bool is_ascii(type_t c) noexcept
Returns true if c is an ASCII character ([ U+0000..U+007F ]).
Definition: box_char.h:49
Represents a boxed integer object.
Definition: box_integer.h:36
static bool is_digit(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a decimal digit.
Definition: box_char.h:74
static bool is_symbol(type_t c) noexcept
Indicates whether the specified Unicode character is categorized as a symbol character.
Definition: box_char.h:158
static char to_lower(type_t c) noexcept
Converts the value of a Unicode character to its lowercase equivalent.
Definition: box_char.h:194
static bool is_symbol(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a s...
Definition: box_char.h:165
static bool is_upper(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as an ...
Definition: box_char.h:177
static char to_upper(type_t c) noexcept
Converts the value of a Unicode character to its uppercase equivalent.
Definition: box_char.h:199
Contains xtd::box_integer class.
static bool is_lower(type_t c) noexcept
ndicates whether the specified Unicode character is categorized as a lowercase letter.
Definition: box_char.h:110
static bool is_lower(const ustring &s, size_t index)
Indicates whether the character at the specified position in a specified string is categorized as a l...
Definition: box_char.h:117