MyGUI 3.4.3
MyGUI::UString Class Reference

A UTF-16 string with implicit conversion to/from std::string and std::wstring. More...

#include <MyGUI_UString.h>

Data Structures

class  _base_iterator
 base iterator class for UString More...
 
class  _const_fwd_iterator
 const forward iterator for UString More...
 
class  _const_rev_iterator
 const reverse iterator for UString More...
 
class  _fwd_iterator
 forward iterator for UString More...
 
class  _rev_iterator
 forward iterator for UString More...
 
class  invalid_data
 This exception is used when invalid data streams are encountered. More...
 

Public Types

using size_type = size_t
 size type used to indicate string size and character positions within the string
 
using unicode_char = uint32
 a single 32-bit Unicode character
 
using code_point = uint16
 a single UTF-16 code point
 
using value_type = code_point
 value type typedef for use in iterators
 
using dstring = std::basic_string<code_point>
 
using utf32string = std::basic_string<unicode_char>
 string type used for returning UTF-32 formatted data
 
using iterator = _fwd_iterator
 iterator
 
using reverse_iterator = _rev_iterator
 reverse iterator
 
using const_iterator = _const_fwd_iterator
 const iterator
 
using const_reverse_iterator = _const_rev_iterator
 const reverse iterator
 

Public Member Functions

Constructors/Destructor
 UString ()
 default constructor, creates an empty string
 
 UString (const UString &copy)
 copy constructor
 
 UString (size_type length, const code_point &ch)
 length copies of ch
 
 UString (const code_point *str)
 duplicate of nul-terminated sequence str
 
 UString (const code_point *str, size_type length)
 duplicate of str, length code points long
 
 UString (const UString &str, size_type index, size_type length)
 substring of str starting at index and length code points long
 
 UString (const wchar_t *w_str)
 duplicate of nul-terminated wchar_t array
 
 UString (const wchar_t *w_str, size_type length)
 duplicate of w_str, length characters long
 
 UString (const std::wstring &wstr)
 duplicate of wstr
 
 UString (const char *c_str)
 duplicate of nul-terminated C-string c_str (UTF-8 encoding)
 
 UString (const char *c_str, size_type length)
 duplicate of c_str, length characters long (UTF-8 encoding)
 
 UString (const std::string &str)
 duplicate of str (UTF-8 encoding)
 
 UString (const utf32string &str)
 
template<size_type num>
 UString (const char(&str)[num])
 
 UString (std::string_view str)
 
 ~UString ()
 destructor
 
Utility functions
size_type size () const
 Returns the number of code points in the current string.
 
size_type length () const
 Returns the number of code points in the current string.
 
size_type length_Characters () const
 Returns the number of Unicode characters in the string.
 
size_type max_size () const
 returns the maximum number of UTF-16 code points that the string can hold
 
void reserve (size_type size)
 sets the capacity of the string to at least size code points
 
void resize (size_type num, const code_point &val=0)
 changes the size of the string to size, filling in any new area with val
 
void swap (UString &from)
 exchanges the elements of the current string with those of from
 
bool empty () const
 returns true if the string has no elements, false otherwise
 
const code_pointc_str () const
 returns a pointer to the first character in the current string
 
const code_pointdata () const
 returns a pointer to the first character in the current string
 
size_type capacity () const
 returns the number of elements that the string can hold before it will need to allocate more space
 
void clear ()
 deletes all of the elements in the string
 
UString substr (size_type index, size_type num=npos) const
 returns a substring of the current string, starting at index, and num characters long.
 
void push_back (unicode_char val)
 appends val to the end of the string
 
void push_back (wchar_t val)
 appends val to the end of the string
 
void push_back (code_point val)
 appends val to the end of the string
 
void push_back (char val)
 appends val to the end of the string
 
bool inString (unicode_char ch) const
 returns true if the given Unicode character ch is in this string
 
Stream variations
const std::string & asUTF8 () const
 returns the current string in UTF-8 form within a std::string
 
const char * asUTF8_c_str () const
 returns the current string in UTF-8 form as a nul-terminated char array
 
const utf32stringasUTF32 () const
 returns the current string in UTF-32 form within a utf32string
 
const unicode_charasUTF32_c_str () const
 returns the current string in UTF-32 form as a nul-terminated unicode_char array
 
const std::wstring & asWStr () const
 returns the current string in the native form of std::wstring
 
const wchar_t * asWStr_c_str () const
 returns the current string in the native form of a nul-terminated wchar_t array
 
Single Character Access
code_pointat (size_type loc)
 returns a reference to the element in the string at index loc
 
const code_pointat (size_type loc) const
 returns a reference to the element in the string at index loc
 
unicode_char getChar (size_type loc) const
 returns the data point loc evaluated as a UTF-32 value
 
int setChar (size_type loc, unicode_char ch)
 sets the value of the character at loc to the Unicode value ch (UTF-32)
 
iterator acquisition
iterator begin ()
 returns an iterator to the first element of the string
 
const_iterator begin () const
 returns an iterator to the first element of the string
 
iterator end ()
 returns an iterator just past the end of the string
 
const_iterator end () const
 returns an iterator just past the end of the string
 
reverse_iterator rbegin ()
 returns a reverse iterator to the last element of the string
 
const_reverse_iterator rbegin () const
 returns a reverse iterator to the last element of the string
 
reverse_iterator rend ()
 returns a reverse iterator just past the beginning of the string
 
const_reverse_iterator rend () const
 returns a reverse iterator just past the beginning of the string
 
assign
UStringassign (iterator start, iterator end)
 gives the current string the values from start to end
 
UStringassign (const UString &str)
 assign str to the current string
 
UStringassign (const code_point *str)
 assign the nul-terminated str to the current string
 
UStringassign (const code_point *str, size_type num)
 assign the first num characters of str to the current string
 
UStringassign (const UString &str, size_type index, size_type len)
 assign len entries from str to the current string, starting at index
 
UStringassign (size_type num, const code_point &ch)
 assign num copies of ch to the current string
 
UStringassign (const std::wstring &wstr)
 assign wstr to the current string (wstr is treated as a UTF-16 stream)
 
UStringassign (const wchar_t *w_str)
 assign w_str to the current string
 
UStringassign (const wchar_t *w_str, size_type num)
 assign the first num characters of w_str to the current string
 
UStringassign (std::string_view str)
 assign str to the current string (str is treated as a UTF-8 stream)
 
UStringassign (const utf32string &str)
 
UStringassign (const char *c_str, size_type num)
 assign the first num characters of c_str to the current string (c_str is treated as a UTF-8 stream)
 
append
UStringappend (const UString &str)
 appends str on to the end of the current string
 
UStringappend (const code_point *str)
 appends str on to the end of the current string
 
UStringappend (const UString &str, size_type index, size_type len)
 appends a substring of str starting at index that is len characters long on to the end of the current string
 
UStringappend (const code_point *str, size_type num)
 appends num characters of str on to the end of the current string
 
UStringappend (size_type num, code_point ch)
 appends num repetitions of ch on to the end of the current string
 
UStringappend (iterator start, iterator end)
 appends the sequence denoted by start and end on to the end of the current string
 
UStringappend (const wchar_t *w_str, size_type num)
 appends num characters of str on to the end of the current string
 
UStringappend (size_type num, wchar_t ch)
 appends num repetitions of ch on to the end of the current string
 
UStringappend (const char *c_str, size_type num)
 appends num characters of str on to the end of the current string (UTF-8 encoding)
 
UStringappend (size_type num, char ch)
 appends num repetitions of ch on to the end of the current string (Unicode values less than 128)
 
UStringappend (size_type num, unicode_char ch)
 appends num repetitions of ch on to the end of the current string (Full Unicode spectrum)
 
insert
iterator insert (iterator i, const code_point &ch)
 inserts ch before the code point denoted by i
 
UStringinsert (size_type index, const UString &str)
 inserts str into the current string, at location index
 
UStringinsert (size_type index, const code_point *str)
 inserts str into the current string, at location index
 
UStringinsert (size_type index1, const UString &str, size_type index2, size_type num)
 inserts a substring of str (starting at index2 and num code points long) into the current string, at location index1
 
void insert (iterator i, iterator start, iterator end)
 inserts the code points denoted by start and end into the current string, before the code point specified by i
 
UStringinsert (size_type index, const code_point *str, size_type num)
 inserts num code points of str into the current string, at location index
 
UStringinsert (size_type index, const wchar_t *w_str, size_type num)
 inserts num code points of str into the current string, at location index
 
UStringinsert (size_type index, const char *c_str, size_type num)
 inserts num code points of str into the current string, at location index
 
UStringinsert (size_type index, size_type num, code_point ch)
 inserts num copies of ch into the current string, at location index
 
UStringinsert (size_type index, size_type num, wchar_t ch)
 inserts num copies of ch into the current string, at location index
 
UStringinsert (size_type index, size_type num, char ch)
 inserts num copies of ch into the current string, at location index
 
UStringinsert (size_type index, size_type num, unicode_char ch)
 inserts num copies of ch into the current string, at location index
 
void insert (iterator i, size_type num, const code_point &ch)
 inserts num copies of ch into the current string, before the code point denoted by i
 
void insert (iterator i, size_type num, const wchar_t &ch)
 inserts num copies of ch into the current string, before the code point denoted by i
 
void insert (iterator i, size_type num, const char &ch)
 inserts num copies of ch into the current string, before the code point denoted by i
 
void insert (iterator i, size_type num, const unicode_char &ch)
 inserts num copies of ch into the current string, before the code point denoted by i
 
erase
iterator erase (iterator loc)
 removes the code point pointed to by loc, returning an iterator to the next character
 
iterator erase (iterator start, iterator end)
 removes the code points between start and end (including the one at start but not the one at end), returning an iterator to the code point after the last code point removed
 
UStringerase (size_type index=0, size_type num=npos)
 removes num code points from the current string, starting at index
 
replace
UStringreplace (size_type index1, size_type num1, const UString &str)
 replaces up to num1 code points of the current string (starting at index1) with str
 
UStringreplace (size_type index1, size_type num1, const UString &str, size_type num2)
 replaces up to num1 code points of the current string (starting at index1) with up to num2 code points from str
 
UStringreplace (size_type index1, size_type num1, const UString &str, size_type index2, size_type num2)
 replaces up to num1 code points of the current string (starting at index1) with up to num2 code points from str beginning at index2
 
UStringreplace (iterator start, iterator end, const UString &str, size_type num=npos)
 replaces code points in the current string from start to end with num code points from str
 
UStringreplace (size_type index, size_type num1, size_type num2, code_point ch)
 replaces up to num1 code points in the current string (beginning at index) with num2 copies of ch
 
UStringreplace (iterator start, iterator end, size_type num, code_point ch)
 replaces the code points in the current string from start to end with num copies of ch
 
compare
int compare (const UString &str) const
 compare str to the current string
 
int compare (const code_point *str) const
 compare str to the current string
 
int compare (size_type index, size_type length, const UString &str) const
 compare str to a substring of the current string, starting at index for length characters
 
int compare (size_type index, size_type length, const UString &str, size_type index2, size_type length2) const
 compare a substring of str to a substring of the current string, where index2 and length2 refer to str and index and length refer to the current string
 
int compare (size_type index, size_type length, const code_point *str, size_type length2) const
 compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 characters long, and the substring of the current string begins at index and is length characters long
 
int compare (size_type index, size_type length, const wchar_t *w_str, size_type length2) const
 compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 elements long, and the substring of the current string begins at index and is length characters long
 
int compare (size_type index, size_type length, const char *c_str, size_type length2) const
 compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 UTF-8 code points long, and the substring of the current string begins at index and is length characters long
 
find & rfind
size_type find (const UString &str, size_type index=0) const
 returns the index of the first occurrence of str within the current string, starting at index; returns UString::npos if nothing is found
 
size_type find (const code_point *cp_str, size_type index, size_type length) const
 returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found
 
size_type find (const char *c_str, size_type index, size_type length) const
 returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found
 
size_type find (const wchar_t *w_str, size_type index, size_type length) const
 returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found
 
size_type find (char ch, size_type index=0) const
 returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found
 
size_type find (code_point ch, size_type index=0) const
 returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found
 
size_type find (wchar_t ch, size_type index=0) const
 returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found
 
size_type find (unicode_char ch, size_type index=0) const
 returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found
 
size_type rfind (const UString &str, size_type index=0) const
 returns the location of the first occurrence of str in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type rfind (const code_point *cp_str, size_type index, size_type num) const
 returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found
 
size_type rfind (const char *c_str, size_type index, size_type num) const
 returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found
 
size_type rfind (const wchar_t *w_str, size_type index, size_type num) const
 returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found
 
size_type rfind (char ch, size_type index=0) const
 returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type rfind (code_point ch, size_type index) const
 returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type rfind (wchar_t ch, size_type index=0) const
 returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type rfind (unicode_char ch, size_type index=0) const
 returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
find_first/last_(not)_of
size_type find_first_of (const UString &str, size_type index=0, size_type num=npos) const
 Returns the index of the first character within the current string that matches any character in str, beginning the search at index and searching at most num characters; returns UString::npos if nothing is found.
 
size_type find_first_of (code_point ch, size_type index=0) const
 returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_of (char ch, size_type index=0) const
 returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_of (wchar_t ch, size_type index=0) const
 returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_of (unicode_char ch, size_type index=0) const
 returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_not_of (const UString &str, size_type index=0, size_type num=npos) const
 returns the index of the first character within the current string that does not match any character in str, beginning the search at index and searching at most num characters; returns UString::npos if nothing is found
 
size_type find_first_not_of (code_point ch, size_type index=0) const
 returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_not_of (char ch, size_type index=0) const
 returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_not_of (wchar_t ch, size_type index=0) const
 returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found
 
size_type find_first_not_of (unicode_char ch, size_type index=0) const
 returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found
 
size_type find_last_of (const UString &str, size_type index=npos, size_type num=npos) const
 returns the index of the first character within the current string that matches any character in str, doing a reverse search from index and searching at most num characters; returns UString::npos if nothing is found
 
size_type find_last_of (code_point ch, size_type index=npos) const
 returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_of (char ch, size_type index=npos) const
 returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_of (wchar_t ch, size_type index=npos) const
 returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_of (unicode_char ch, size_type index=npos) const
 returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_not_of (const UString &str, size_type index=npos, size_type num=npos) const
 returns the index of the last character within the current string that does not match any character in str, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_not_of (code_point ch, size_type index=npos) const
 returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_not_of (char ch, size_type index=npos) const
 returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_not_of (wchar_t ch, size_type index=npos) const
 returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
size_type find_last_not_of (unicode_char ch, size_type index=npos) const
 returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found
 
Operators
bool operator< (const UString &right) const
 less than operator
 
bool operator<= (const UString &right) const
 less than or equal operator
 
bool operator> (const UString &right) const
 greater than operator
 
bool operator>= (const UString &right) const
 greater than or equal operator
 
bool operator== (const UString &right) const
 equality operator
 
bool operator!= (const UString &right) const
 inequality operator
 
UStringoperator= (const UString &s)
 assignment operator, implicitly casts all compatible types
 
UStringoperator= (code_point ch)
 assignment operator
 
UStringoperator= (char ch)
 assignment operator
 
UStringoperator= (wchar_t ch)
 assignment operator
 
UStringoperator= (unicode_char ch)
 assignment operator
 
code_pointoperator[] (size_type index)
 code point dereference operator
 
const code_pointoperator[] (size_type index) const
 code point dereference operator
 
Implicit Cast Operators
 operator std::string () const
 implicit cast to std::string
 
 operator std::wstring () const
 implicit cast to std::wstring
 
 operator std::string_view () const
 implicit cast to std::string_view
 

Static Public Member Functions

UTF-16 character encoding/decoding
static bool _utf16_independent_char (code_point cp)
 returns true if cp does not match the signature for the lead of follow code point of a surrogate pair in a UTF-16 sequence
 
static bool _utf16_surrogate_lead (code_point cp)
 returns true if cp matches the signature of a surrogate pair lead character
 
static bool _utf16_surrogate_follow (code_point cp)
 returns true if cp matches the signature of a surrogate pair following character
 
static size_t _utf16_char_length (code_point cp)
 estimates the number of UTF-16 code points in the sequence starting with cp
 
static size_t _utf16_char_length (unicode_char uc)
 returns the number of UTF-16 code points needed to represent the given UTF-32 character cp
 
static size_t _utf16_to_utf32 (const code_point in_cp[2], unicode_char &out_uc)
 converts the given UTF-16 character buffer in_cp to a single UTF-32 Unicode character out_uc, returns the number of code points used to create the output character (2 for surrogate pairs, otherwise 1)
 
static size_t _utf32_to_utf16 (const unicode_char &in_uc, code_point out_cp[2])
 writes the given UTF-32 uc_in to the buffer location out_cp using UTF-16 encoding, returns the number of code points used to encode the input (always 1 or 2)
 

Static Public Attributes

static const size_type npos = std::numeric_limits<size_t>::max()
 the usual constant representing: not found, no limit, etc
 

Related Symbols

(Note that these are not member symbols.)

UString operator+ (const UString &s1, const UString &s2)
 string addition operator
 
UString operator+ (const UString &s1, UString::code_point c)
 string addition operator
 
UString operator+ (const UString &s1, UString::unicode_char c)
 string addition operator
 
UString operator+ (const UString &s1, char c)
 string addition operator
 
UString operator+ (const UString &s1, wchar_t c)
 string addition operator
 
UString operator+ (UString::code_point c, const UString &s2)
 string addition operator
 
UString operator+ (UString::unicode_char c, const UString &s2)
 string addition operator
 
UString operator+ (char c, const UString &s2)
 string addition operator
 
UString operator+ (wchar_t c, const UString &s2)
 string addition operator
 
std::ostream & operator<< (std::ostream &os, const UString &s)
 std::ostream write operator
 
std::wostream & operator<< (std::wostream &os, const UString &s)
 std::wostream write operator
 

UTF-8 character encoding/decoding

static bool _utf8_start_char (unsigned char cp)
 returns true if cp is the beginning of a UTF-8 sequence
 
static size_t _utf8_char_length (unsigned char cp)
 estimates the number of UTF-8 code points in the sequence starting with cp
 
static size_t _utf8_char_length (unicode_char uc)
 returns the number of UTF-8 code points needed to represent the given UTF-32 character cp
 
static size_t _utf8_to_utf32 (const unsigned char in_cp[6], unicode_char &out_uc)
 converts the given UTF-8 character buffer to a single UTF-32 Unicode character, returns the number of bytes used to create the output character (maximum of 6)
 
static size_t _utf32_to_utf8 (const unicode_char &in_uc, unsigned char out_cp[6])
 writes the given UTF-32 uc_in to the buffer location out_cp using UTF-8 encoding, returns the number of bytes used to encode the input
 
static size_type _verifyUTF8 (const unsigned char *c_str)
 verifies a UTF-8 stream, returning the total number of Unicode characters found
 
static size_type _verifyUTF8 (std::string_view str)
 verifies a UTF-8 stream, returning the total number of Unicode characters found
 
static size_type _verifyUTF8 (const char *c_str, size_type num)
 verifies a UTF-8 stream, returning the total number of Unicode characters found
 

Detailed Description

A UTF-16 string with implicit conversion to/from std::string and std::wstring.

This class provides a complete 1 to 1 map of most std::string functions (at least to my knowledge). Implicit conversions allow this string class to work with all common C++ string formats, with specialty functions defined where implicit conversion would cause potential problems or is otherwise unavailable.

Some additional functionality is present to assist in working with characters using the 32-bit UTF-32 encoding. (Which is guaranteed to fit any Unicode character into a single code point.) Note: Reverse iterators do not have this functionality due to the ambiguity that surrounds working with UTF-16 in reverse. (Such as, where should an iterator point to represent the beginning of a surrogate pair?)

Supported Input Types
The supported string types for input, and their assumed encoding schemes, are:
  • std::string (UTF-8)
  • char* (UTF-8)
  • std::wstring (autodetected UTF-16 / UTF-32 based on compiler)
  • wchar_t* (autodetected UTF-16 / UTF-32 based on compiler)
See also

Definition at line 143 of file MyGUI_UString.h.

Member Typedef Documentation

◆ code_point

a single UTF-16 code point

Definition at line 169 of file MyGUI_UString.h.

◆ const_iterator

const iterator

Definition at line 409 of file MyGUI_UString.h.

◆ const_reverse_iterator

const reverse iterator

Definition at line 410 of file MyGUI_UString.h.

◆ dstring

using MyGUI::UString::dstring = std::basic_string<code_point>

Definition at line 174 of file MyGUI_UString.h.

◆ iterator

iterator

Definition at line 407 of file MyGUI_UString.h.

◆ reverse_iterator

reverse iterator

Definition at line 408 of file MyGUI_UString.h.

◆ size_type

using MyGUI::UString::size_type = size_t

size type used to indicate string size and character positions within the string

Definition at line 161 of file MyGUI_UString.h.

◆ unicode_char

a single 32-bit Unicode character

Definition at line 166 of file MyGUI_UString.h.

◆ utf32string

using MyGUI::UString::utf32string = std::basic_string<unicode_char>

string type used for returning UTF-32 formatted data

Definition at line 177 of file MyGUI_UString.h.

◆ value_type

value type typedef for use in iterators

Definition at line 172 of file MyGUI_UString.h.

Constructor & Destructor Documentation

◆ UString() [1/15]

MyGUI::UString::UString ( )

default constructor, creates an empty string

Definition at line 472 of file MyGUI_UString.cpp.

◆ UString() [2/15]

MyGUI::UString::UString ( const UString & copy)

copy constructor

Definition at line 477 of file MyGUI_UString.cpp.

◆ UString() [3/15]

MyGUI::UString::UString ( size_type length,
const code_point & ch )

length copies of ch

Definition at line 483 of file MyGUI_UString.cpp.

◆ UString() [4/15]

MyGUI::UString::UString ( const code_point * str)

duplicate of nul-terminated sequence str

Definition at line 489 of file MyGUI_UString.cpp.

◆ UString() [5/15]

MyGUI::UString::UString ( const code_point * str,
size_type length )

duplicate of str, length code points long

Definition at line 495 of file MyGUI_UString.cpp.

◆ UString() [6/15]

MyGUI::UString::UString ( const UString & str,
size_type index,
size_type length )

substring of str starting at index and length code points long

Definition at line 501 of file MyGUI_UString.cpp.

◆ UString() [7/15]

MyGUI::UString::UString ( const wchar_t * w_str)

duplicate of nul-terminated wchar_t array

◆ UString() [8/15]

MyGUI::UString::UString ( const wchar_t * w_str,
size_type length )

duplicate of w_str, length characters long

◆ UString() [9/15]

MyGUI::UString::UString ( const std::wstring & wstr)

duplicate of wstr

Definition at line 521 of file MyGUI_UString.cpp.

◆ UString() [10/15]

MyGUI::UString::UString ( const char * c_str)

duplicate of nul-terminated C-string c_str (UTF-8 encoding)

Definition at line 527 of file MyGUI_UString.cpp.

◆ UString() [11/15]

MyGUI::UString::UString ( const char * c_str,
size_type length )

duplicate of c_str, length characters long (UTF-8 encoding)

Definition at line 533 of file MyGUI_UString.cpp.

◆ UString() [12/15]

MyGUI::UString::UString ( const std::string & str)

duplicate of str (UTF-8 encoding)

Definition at line 539 of file MyGUI_UString.cpp.

◆ UString() [13/15]

MyGUI::UString::UString ( const utf32string & str)
explicit

Definition at line 545 of file MyGUI_UString.cpp.

◆ UString() [14/15]

template<size_type num>
MyGUI::UString::UString ( const char(&) str[num])
inline

Definition at line 445 of file MyGUI_UString.h.

◆ UString() [15/15]

MyGUI::UString::UString ( std::string_view str)
inlineexplicit

Definition at line 450 of file MyGUI_UString.h.

◆ ~UString()

MyGUI::UString::~UString ( )

destructor

Definition at line 551 of file MyGUI_UString.cpp.

Member Function Documentation

◆ _utf16_char_length() [1/2]

size_t MyGUI::UString::_utf16_char_length ( code_point cp)
static

estimates the number of UTF-16 code points in the sequence starting with cp

Definition at line 1653 of file MyGUI_UString.cpp.

◆ _utf16_char_length() [2/2]

size_t MyGUI::UString::_utf16_char_length ( unicode_char uc)
static

returns the number of UTF-16 code points needed to represent the given UTF-32 character cp

Definition at line 1660 of file MyGUI_UString.cpp.

◆ _utf16_independent_char()

bool MyGUI::UString::_utf16_independent_char ( code_point cp)
static

returns true if cp does not match the signature for the lead of follow code point of a surrogate pair in a UTF-16 sequence

Definition at line 1632 of file MyGUI_UString.cpp.

◆ _utf16_surrogate_follow()

bool MyGUI::UString::_utf16_surrogate_follow ( code_point cp)
static

returns true if cp matches the signature of a surrogate pair following character

Definition at line 1646 of file MyGUI_UString.cpp.

◆ _utf16_surrogate_lead()

bool MyGUI::UString::_utf16_surrogate_lead ( code_point cp)
static

returns true if cp matches the signature of a surrogate pair lead character

Definition at line 1639 of file MyGUI_UString.cpp.

◆ _utf16_to_utf32()

size_t MyGUI::UString::_utf16_to_utf32 ( const code_point in_cp[2],
unicode_char & out_uc )
static

converts the given UTF-16 character buffer in_cp to a single UTF-32 Unicode character out_uc, returns the number of code points used to create the output character (2 for surrogate pairs, otherwise 1)

This function does it's best to prevent error conditions, verifying complete surrogate pairs before applying the algorithm. In the event that half of a pair is found it will happily generate a value in the 0xD800 - 0xDFFF range, which is normally an invalid Unicode value but we preserve them for use as sentinel values.

Definition at line 1667 of file MyGUI_UString.cpp.

◆ _utf32_to_utf16()

size_t MyGUI::UString::_utf32_to_utf16 ( const unicode_char & in_uc,
code_point out_cp[2] )
static

writes the given UTF-32 uc_in to the buffer location out_cp using UTF-16 encoding, returns the number of code points used to encode the input (always 1 or 2)

This function, like its counterpart, will happily create invalid UTF-16 surrogate pairs. These invalid entries will be created for any value of in_uc that falls in the range U+D800 - U+DFFF. These are generally useful as sentinel values to represent various program specific conditions.

Note
This function will also pass through any single UTF-16 code point without modification, making it a safe method of ensuring a stream that is unknown UTF-32 or UTF-16 is truly UTF-16.

Definition at line 1699 of file MyGUI_UString.cpp.

◆ _utf32_to_utf8()

size_t MyGUI::UString::_utf32_to_utf8 ( const unicode_char & in_uc,
unsigned char out_cp[6] )
static

writes the given UTF-32 uc_in to the buffer location out_cp using UTF-8 encoding, returns the number of bytes used to encode the input

Definition at line 1812 of file MyGUI_UString.cpp.

◆ _utf8_char_length() [1/2]

size_t MyGUI::UString::_utf8_char_length ( unicode_char uc)
static

returns the number of UTF-8 code points needed to represent the given UTF-32 character cp

Definition at line 1747 of file MyGUI_UString.cpp.

◆ _utf8_char_length() [2/2]

size_t MyGUI::UString::_utf8_char_length ( unsigned char cp)
static

estimates the number of UTF-8 code points in the sequence starting with cp

Definition at line 1728 of file MyGUI_UString.cpp.

◆ _utf8_start_char()

bool MyGUI::UString::_utf8_start_char ( unsigned char cp)
static

returns true if cp is the beginning of a UTF-8 sequence

Definition at line 1723 of file MyGUI_UString.cpp.

◆ _utf8_to_utf32()

size_t MyGUI::UString::_utf8_to_utf32 ( const unsigned char in_cp[6],
unicode_char & out_uc )
static

converts the given UTF-8 character buffer to a single UTF-32 Unicode character, returns the number of bytes used to create the output character (maximum of 6)

Definition at line 1774 of file MyGUI_UString.cpp.

◆ _verifyUTF8() [1/3]

UString::size_type MyGUI::UString::_verifyUTF8 ( const char * c_str,
size_type num )
static

verifies a UTF-8 stream, returning the total number of Unicode characters found

Definition at line 1846 of file MyGUI_UString.cpp.

◆ _verifyUTF8() [2/3]

UString::size_type MyGUI::UString::_verifyUTF8 ( const unsigned char * c_str)
static

verifies a UTF-8 stream, returning the total number of Unicode characters found

Definition at line 1840 of file MyGUI_UString.cpp.

◆ _verifyUTF8() [3/3]

static size_type MyGUI::UString::_verifyUTF8 ( std::string_view str)
inlinestatic

verifies a UTF-8 stream, returning the total number of Unicode characters found

Definition at line 950 of file MyGUI_UString.h.

◆ append() [1/11]

UString & MyGUI::UString::append ( const char * c_str,
size_type num )

appends num characters of str on to the end of the current string (UTF-8 encoding)

Definition at line 1008 of file MyGUI_UString.cpp.

◆ append() [2/11]

UString & MyGUI::UString::append ( const code_point * str)

appends str on to the end of the current string

Definition at line 966 of file MyGUI_UString.cpp.

◆ append() [3/11]

UString & MyGUI::UString::append ( const code_point * str,
size_type num )

appends num characters of str on to the end of the current string

Definition at line 978 of file MyGUI_UString.cpp.

◆ append() [4/11]

UString & MyGUI::UString::append ( const UString & str)

appends str on to the end of the current string

Definition at line 960 of file MyGUI_UString.cpp.

◆ append() [5/11]

UString & MyGUI::UString::append ( const UString & str,
size_type index,
size_type len )

appends a substring of str starting at index that is len characters long on to the end of the current string

Definition at line 972 of file MyGUI_UString.cpp.

◆ append() [6/11]

UString & MyGUI::UString::append ( const wchar_t * w_str,
size_type num )

appends num characters of str on to the end of the current string

◆ append() [7/11]

UString & MyGUI::UString::append ( iterator start,
iterator end )

appends the sequence denoted by start and end on to the end of the current string

Definition at line 990 of file MyGUI_UString.cpp.

◆ append() [8/11]

UString & MyGUI::UString::append ( size_type num,
char ch )

appends num repetitions of ch on to the end of the current string (Unicode values less than 128)

Definition at line 1015 of file MyGUI_UString.cpp.

◆ append() [9/11]

UString & MyGUI::UString::append ( size_type num,
code_point ch )

appends num repetitions of ch on to the end of the current string

Definition at line 984 of file MyGUI_UString.cpp.

◆ append() [10/11]

UString & MyGUI::UString::append ( size_type num,
unicode_char ch )

appends num repetitions of ch on to the end of the current string (Full Unicode spectrum)

Definition at line 1021 of file MyGUI_UString.cpp.

◆ append() [11/11]

UString & MyGUI::UString::append ( size_type num,
wchar_t ch )

appends num repetitions of ch on to the end of the current string

◆ assign() [1/12]

UString & MyGUI::UString::assign ( const char * c_str,
size_type num )

assign the first num characters of c_str to the current string (c_str is treated as a UTF-8 stream)

Definition at line 922 of file MyGUI_UString.cpp.

◆ assign() [2/12]

UString & MyGUI::UString::assign ( const code_point * str)

assign the nul-terminated str to the current string

Definition at line 843 of file MyGUI_UString.cpp.

◆ assign() [3/12]

UString & MyGUI::UString::assign ( const code_point * str,
size_type num )

assign the first num characters of str to the current string

Definition at line 849 of file MyGUI_UString.cpp.

◆ assign() [4/12]

UString & MyGUI::UString::assign ( const std::wstring & wstr)

assign wstr to the current string (wstr is treated as a UTF-16 stream)

Definition at line 867 of file MyGUI_UString.cpp.

◆ assign() [5/12]

UString & MyGUI::UString::assign ( const UString & str)

assign str to the current string

Definition at line 837 of file MyGUI_UString.cpp.

◆ assign() [6/12]

UString & MyGUI::UString::assign ( const UString & str,
size_type index,
size_type len )

assign len entries from str to the current string, starting at index

Definition at line 855 of file MyGUI_UString.cpp.

◆ assign() [7/12]

UString & MyGUI::UString::assign ( const utf32string & str)

Definition at line 913 of file MyGUI_UString.cpp.

◆ assign() [8/12]

UString & MyGUI::UString::assign ( const wchar_t * w_str)

assign w_str to the current string

◆ assign() [9/12]

UString & MyGUI::UString::assign ( const wchar_t * w_str,
size_type num )

assign the first num characters of w_str to the current string

◆ assign() [10/12]

UString & MyGUI::UString::assign ( iterator start,
iterator end )

gives the current string the values from start to end

Definition at line 831 of file MyGUI_UString.cpp.

◆ assign() [11/12]

UString & MyGUI::UString::assign ( size_type num,
const code_point & ch )

assign num copies of ch to the current string

Definition at line 861 of file MyGUI_UString.cpp.

◆ assign() [12/12]

UString & MyGUI::UString::assign ( std::string_view str)
inline

assign str to the current string (str is treated as a UTF-8 stream)

Definition at line 598 of file MyGUI_UString.h.

◆ asUTF32()

const UString::utf32string & MyGUI::UString::asUTF32 ( ) const

returns the current string in UTF-32 form within a utf32string

Definition at line 685 of file MyGUI_UString.cpp.

◆ asUTF32_c_str()

const UString::unicode_char * MyGUI::UString::asUTF32_c_str ( ) const

returns the current string in UTF-32 form as a nul-terminated unicode_char array

Definition at line 691 of file MyGUI_UString.cpp.

◆ asUTF8()

const std::string & MyGUI::UString::asUTF8 ( ) const

returns the current string in UTF-8 form within a std::string

Definition at line 673 of file MyGUI_UString.cpp.

◆ asUTF8_c_str()

const char * MyGUI::UString::asUTF8_c_str ( ) const

returns the current string in UTF-8 form as a nul-terminated char array

Definition at line 679 of file MyGUI_UString.cpp.

◆ asWStr()

const std::wstring & MyGUI::UString::asWStr ( ) const

returns the current string in the native form of std::wstring

Definition at line 697 of file MyGUI_UString.cpp.

◆ asWStr_c_str()

const wchar_t * MyGUI::UString::asWStr_c_str ( ) const

returns the current string in the native form of a nul-terminated wchar_t array

Definition at line 703 of file MyGUI_UString.cpp.

◆ at() [1/2]

UString::code_point & MyGUI::UString::at ( size_type loc)

returns a reference to the element in the string at index loc

Definition at line 709 of file MyGUI_UString.cpp.

◆ at() [2/2]

const UString::code_point & MyGUI::UString::at ( size_type loc) const

returns a reference to the element in the string at index loc

Definition at line 714 of file MyGUI_UString.cpp.

◆ begin() [1/2]

UString::iterator MyGUI::UString::begin ( )

returns an iterator to the first element of the string

Definition at line 767 of file MyGUI_UString.cpp.

◆ begin() [2/2]

UString::const_iterator MyGUI::UString::begin ( ) const

returns an iterator to the first element of the string

Definition at line 775 of file MyGUI_UString.cpp.

◆ c_str()

const UString::code_point * MyGUI::UString::c_str ( ) const

returns a pointer to the first character in the current string

Definition at line 604 of file MyGUI_UString.cpp.

◆ capacity()

UString::size_type MyGUI::UString::capacity ( ) const

returns the number of elements that the string can hold before it will need to allocate more space

Definition at line 614 of file MyGUI_UString.cpp.

◆ clear()

void MyGUI::UString::clear ( )

deletes all of the elements in the string

Definition at line 619 of file MyGUI_UString.cpp.

◆ compare() [1/7]

int MyGUI::UString::compare ( const code_point * str) const

compare str to the current string

Definition at line 1233 of file MyGUI_UString.cpp.

◆ compare() [2/7]

int MyGUI::UString::compare ( const UString & str) const

compare str to the current string

Definition at line 1228 of file MyGUI_UString.cpp.

◆ compare() [3/7]

int MyGUI::UString::compare ( size_type index,
size_type length,
const char * c_str,
size_type length2 ) const

compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 UTF-8 code points long, and the substring of the current string begins at index and is length characters long

Definition at line 1262 of file MyGUI_UString.cpp.

◆ compare() [4/7]

int MyGUI::UString::compare ( size_type index,
size_type length,
const code_point * str,
size_type length2 ) const

compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 characters long, and the substring of the current string begins at index and is length characters long

Definition at line 1249 of file MyGUI_UString.cpp.

◆ compare() [5/7]

int MyGUI::UString::compare ( size_type index,
size_type length,
const UString & str ) const

compare str to a substring of the current string, starting at index for length characters

Definition at line 1238 of file MyGUI_UString.cpp.

◆ compare() [6/7]

int MyGUI::UString::compare ( size_type index,
size_type length,
const UString & str,
size_type index2,
size_type length2 ) const

compare a substring of str to a substring of the current string, where index2 and length2 refer to str and index and length refer to the current string

Definition at line 1243 of file MyGUI_UString.cpp.

◆ compare() [7/7]

int MyGUI::UString::compare ( size_type index,
size_type length,
const wchar_t * w_str,
size_type length2 ) const

compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 elements long, and the substring of the current string begins at index and is length characters long

◆ data()

const UString::code_point * MyGUI::UString::data ( ) const

returns a pointer to the first character in the current string

Definition at line 609 of file MyGUI_UString.cpp.

◆ empty()

bool MyGUI::UString::empty ( ) const

returns true if the string has no elements, false otherwise

Definition at line 599 of file MyGUI_UString.cpp.

◆ end() [1/2]

UString::iterator MyGUI::UString::end ( )

returns an iterator just past the end of the string

Definition at line 783 of file MyGUI_UString.cpp.

◆ end() [2/2]

UString::const_iterator MyGUI::UString::end ( ) const

returns an iterator just past the end of the string

Definition at line 791 of file MyGUI_UString.cpp.

◆ erase() [1/3]

UString::iterator MyGUI::UString::erase ( iterator loc)

removes the code point pointed to by loc, returning an iterator to the next character

Definition at line 1161 of file MyGUI_UString.cpp.

◆ erase() [2/3]

UString::iterator MyGUI::UString::erase ( iterator start,
iterator end )

removes the code points between start and end (including the one at start but not the one at end), returning an iterator to the code point after the last code point removed

Definition at line 1169 of file MyGUI_UString.cpp.

◆ erase() [3/3]

UString & MyGUI::UString::erase ( size_type index = 0,
size_type num = npos )

removes num code points from the current string, starting at index

Definition at line 1177 of file MyGUI_UString.cpp.

◆ find() [1/8]

UString::size_type MyGUI::UString::find ( char ch,
size_type index = 0 ) const

returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found

ch is only capable of representing Unicode values up to U+007F (127)

Definition at line 1293 of file MyGUI_UString.cpp.

◆ find() [2/8]

UString::size_type MyGUI::UString::find ( code_point ch,
size_type index = 0 ) const

returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found

ch is only capable of representing Unicode values up to U+FFFF (65535)

Definition at line 1298 of file MyGUI_UString.cpp.

◆ find() [3/8]

UString::size_type MyGUI::UString::find ( const char * c_str,
size_type index,
size_type length ) const

returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found

cp_str is a UTF-8 encoded string

Definition at line 1279 of file MyGUI_UString.cpp.

◆ find() [4/8]

UString::size_type MyGUI::UString::find ( const code_point * cp_str,
size_type index,
size_type length ) const

returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found

cp_str is a UTF-16 encoded string

Definition at line 1273 of file MyGUI_UString.cpp.

◆ find() [5/8]

UString::size_type MyGUI::UString::find ( const UString & str,
size_type index = 0 ) const

returns the index of the first occurrence of str within the current string, starting at index; returns UString::npos if nothing is found

str is a UTF-16 encoded string, but through implicit casting can also be a UTF-8 encoded string (const char* or std::string)

Definition at line 1268 of file MyGUI_UString.cpp.

◆ find() [6/8]

size_type MyGUI::UString::find ( const wchar_t * w_str,
size_type index,
size_type length ) const

returns the index of the first occurrence of str within the current string and within length code points, starting at index; returns UString::npos if nothing is found

cp_str is a UTF-16 encoded string

◆ find() [7/8]

UString::size_type MyGUI::UString::find ( unicode_char ch,
size_type index = 0 ) const

returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found

ch can fully represent any Unicode character

Definition at line 1310 of file MyGUI_UString.cpp.

◆ find() [8/8]

size_type MyGUI::UString::find ( wchar_t ch,
size_type index = 0 ) const

returns the index of the first occurrence ch within the current string, starting at index; returns UString::npos if nothing is found

ch is only capable of representing Unicode values up to U+FFFF (65535)

◆ find_first_not_of() [1/5]

UString::size_type MyGUI::UString::find_first_not_of ( char ch,
size_type index = 0 ) const

returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found

Definition at line 1431 of file MyGUI_UString.cpp.

◆ find_first_not_of() [2/5]

UString::size_type MyGUI::UString::find_first_not_of ( code_point ch,
size_type index = 0 ) const

returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found

Definition at line 1424 of file MyGUI_UString.cpp.

◆ find_first_not_of() [3/5]

UString::size_type MyGUI::UString::find_first_not_of ( const UString & str,
size_type index = 0,
size_type num = npos ) const

returns the index of the first character within the current string that does not match any character in str, beginning the search at index and searching at most num characters; returns UString::npos if nothing is found

Definition at line 1407 of file MyGUI_UString.cpp.

◆ find_first_not_of() [4/5]

UString::size_type MyGUI::UString::find_first_not_of ( unicode_char ch,
size_type index = 0 ) const

returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found

Definition at line 1443 of file MyGUI_UString.cpp.

◆ find_first_not_of() [5/5]

size_type MyGUI::UString::find_first_not_of ( wchar_t ch,
size_type index = 0 ) const

returns the index of the first character within the current string that does not match ch, starting the search at index; returns UString::npos if nothing is found

◆ find_first_of() [1/5]

UString::size_type MyGUI::UString::find_first_of ( char ch,
size_type index = 0 ) const

returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found

Definition at line 1388 of file MyGUI_UString.cpp.

◆ find_first_of() [2/5]

UString::size_type MyGUI::UString::find_first_of ( code_point ch,
size_type index = 0 ) const

returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found

Definition at line 1381 of file MyGUI_UString.cpp.

◆ find_first_of() [3/5]

UString::size_type MyGUI::UString::find_first_of ( const UString & str,
size_type index = 0,
size_type num = npos ) const

Returns the index of the first character within the current string that matches any character in str, beginning the search at index and searching at most num characters; returns UString::npos if nothing is found.

Definition at line 1366 of file MyGUI_UString.cpp.

◆ find_first_of() [4/5]

UString::size_type MyGUI::UString::find_first_of ( unicode_char ch,
size_type index = 0 ) const

returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found

Definition at line 1400 of file MyGUI_UString.cpp.

◆ find_first_of() [5/5]

size_type MyGUI::UString::find_first_of ( wchar_t ch,
size_type index = 0 ) const

returns the index of the first occurrence of ch in the current string, starting the search at index; returns UString::npos if nothing is found

◆ find_last_not_of() [1/5]

UString::size_type MyGUI::UString::find_last_not_of ( char ch,
size_type index = npos ) const

returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1530 of file MyGUI_UString.cpp.

◆ find_last_not_of() [2/5]

UString::size_type MyGUI::UString::find_last_not_of ( code_point ch,
size_type index = npos ) const

returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1523 of file MyGUI_UString.cpp.

◆ find_last_not_of() [3/5]

UString::size_type MyGUI::UString::find_last_not_of ( const UString & str,
size_type index = npos,
size_type num = npos ) const

returns the index of the last character within the current string that does not match any character in str, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1496 of file MyGUI_UString.cpp.

◆ find_last_not_of() [4/5]

UString::size_type MyGUI::UString::find_last_not_of ( unicode_char ch,
size_type index = npos ) const

returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1542 of file MyGUI_UString.cpp.

◆ find_last_not_of() [5/5]

size_type MyGUI::UString::find_last_not_of ( wchar_t ch,
size_type index = npos ) const

returns the index of the last occurrence of a character that does not match ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

◆ find_last_of() [1/5]

size_type MyGUI::UString::find_last_of ( char ch,
size_type index = npos ) const
inline

returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 828 of file MyGUI_UString.h.

◆ find_last_of() [2/5]

UString::size_type MyGUI::UString::find_last_of ( code_point ch,
size_type index = npos ) const

returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1475 of file MyGUI_UString.cpp.

◆ find_last_of() [3/5]

UString::size_type MyGUI::UString::find_last_of ( const UString & str,
size_type index = npos,
size_type num = npos ) const

returns the index of the first character within the current string that matches any character in str, doing a reverse search from index and searching at most num characters; returns UString::npos if nothing is found

Definition at line 1450 of file MyGUI_UString.cpp.

◆ find_last_of() [4/5]

UString::size_type MyGUI::UString::find_last_of ( unicode_char ch,
size_type index = npos ) const

returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1489 of file MyGUI_UString.cpp.

◆ find_last_of() [5/5]

size_type MyGUI::UString::find_last_of ( wchar_t ch,
size_type index = npos ) const

returns the index of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

◆ getChar()

UString::unicode_char MyGUI::UString::getChar ( size_type loc) const

returns the data point loc evaluated as a UTF-32 value

This function will will only properly decode surrogate pairs when loc points to the index of a lead code point that is followed by a trailing code point. Evaluating the trailing code point itself, or pointing to a code point that is a sentinel value (part of a broken pair) will return the value of just that code point (not a valid Unicode value, but useful as a sentinel value).

Definition at line 719 of file MyGUI_UString.cpp.

◆ insert() [1/16]

UString::iterator MyGUI::UString::insert ( iterator i,
const code_point & ch )

inserts ch before the code point denoted by i

Definition at line 1042 of file MyGUI_UString.cpp.

◆ insert() [2/16]

void MyGUI::UString::insert ( iterator i,
iterator start,
iterator end )

inserts the code points denoted by start and end into the current string, before the code point specified by i

Definition at line 1062 of file MyGUI_UString.cpp.

◆ insert() [3/16]

void MyGUI::UString::insert ( iterator i,
size_type num,
const char & ch )

inserts num copies of ch into the current string, before the code point denoted by i

Definition at line 1137 of file MyGUI_UString.cpp.

◆ insert() [4/16]

void MyGUI::UString::insert ( iterator i,
size_type num,
const code_point & ch )

inserts num copies of ch into the current string, before the code point denoted by i

Definition at line 1126 of file MyGUI_UString.cpp.

◆ insert() [5/16]

void MyGUI::UString::insert ( iterator i,
size_type num,
const unicode_char & ch )

inserts num copies of ch into the current string, before the code point denoted by i

Definition at line 1142 of file MyGUI_UString.cpp.

◆ insert() [6/16]

void MyGUI::UString::insert ( iterator i,
size_type num,
const wchar_t & ch )

inserts num copies of ch into the current string, before the code point denoted by i

◆ insert() [7/16]

UString & MyGUI::UString::insert ( size_type index,
const char * c_str,
size_type num )

inserts num code points of str into the current string, at location index

Definition at line 1082 of file MyGUI_UString.cpp.

◆ insert() [8/16]

UString & MyGUI::UString::insert ( size_type index,
const code_point * str )
inline

inserts str into the current string, at location index

Definition at line 647 of file MyGUI_UString.h.

◆ insert() [9/16]

UString & MyGUI::UString::insert ( size_type index,
const code_point * str,
size_type num )

inserts num code points of str into the current string, at location index

Definition at line 1067 of file MyGUI_UString.cpp.

◆ insert() [10/16]

UString & MyGUI::UString::insert ( size_type index,
const UString & str )

inserts str into the current string, at location index

Definition at line 1050 of file MyGUI_UString.cpp.

◆ insert() [11/16]

UString & MyGUI::UString::insert ( size_type index,
const wchar_t * w_str,
size_type num )

inserts num code points of str into the current string, at location index

◆ insert() [12/16]

UString & MyGUI::UString::insert ( size_type index,
size_type num,
char ch )

inserts num copies of ch into the current string, at location index

Definition at line 1103 of file MyGUI_UString.cpp.

◆ insert() [13/16]

UString & MyGUI::UString::insert ( size_type index,
size_type num,
code_point ch )

inserts num copies of ch into the current string, at location index

Definition at line 1089 of file MyGUI_UString.cpp.

◆ insert() [14/16]

UString & MyGUI::UString::insert ( size_type index,
size_type num,
unicode_char ch )

inserts num copies of ch into the current string, at location index

Definition at line 1109 of file MyGUI_UString.cpp.

◆ insert() [15/16]

UString & MyGUI::UString::insert ( size_type index,
size_type num,
wchar_t ch )

inserts num copies of ch into the current string, at location index

◆ insert() [16/16]

UString & MyGUI::UString::insert ( size_type index1,
const UString & str,
size_type index2,
size_type num )

inserts a substring of str (starting at index2 and num code points long) into the current string, at location index1

Definition at line 1056 of file MyGUI_UString.cpp.

◆ inString()

bool MyGUI::UString::inString ( unicode_char ch) const

returns true if the given Unicode character ch is in this string

Definition at line 661 of file MyGUI_UString.cpp.

◆ length()

UString::size_type MyGUI::UString::length ( ) const

Returns the number of code points in the current string.

Definition at line 561 of file MyGUI_UString.cpp.

◆ length_Characters()

UString::size_type MyGUI::UString::length_Characters ( ) const

Returns the number of Unicode characters in the string.

Executes in linear time.

Definition at line 566 of file MyGUI_UString.cpp.

◆ max_size()

UString::size_type MyGUI::UString::max_size ( ) const

returns the maximum number of UTF-16 code points that the string can hold

Definition at line 579 of file MyGUI_UString.cpp.

◆ operator std::string()

MyGUI::UString::operator std::string ( ) const

implicit cast to std::string

Definition at line 1620 of file MyGUI_UString.cpp.

◆ operator std::string_view()

MyGUI::UString::operator std::string_view ( ) const
inline

implicit cast to std::string_view

Definition at line 896 of file MyGUI_UString.h.

◆ operator std::wstring()

MyGUI::UString::operator std::wstring ( ) const

implicit cast to std::wstring

Definition at line 1626 of file MyGUI_UString.cpp.

◆ operator!=()

bool MyGUI::UString::operator!= ( const UString & right) const

inequality operator

Definition at line 1605 of file MyGUI_UString.cpp.

◆ operator<()

bool MyGUI::UString::operator< ( const UString & right) const

less than operator

Definition at line 1549 of file MyGUI_UString.cpp.

◆ operator<=()

bool MyGUI::UString::operator<= ( const UString & right) const

less than or equal operator

Definition at line 1554 of file MyGUI_UString.cpp.

◆ operator=() [1/5]

UString & MyGUI::UString::operator= ( char ch)

assignment operator

Definition at line 1570 of file MyGUI_UString.cpp.

◆ operator=() [2/5]

UString & MyGUI::UString::operator= ( code_point ch)

assignment operator

Definition at line 1564 of file MyGUI_UString.cpp.

◆ operator=() [3/5]

UString & MyGUI::UString::operator= ( const UString & s)

assignment operator, implicitly casts all compatible types

Definition at line 1559 of file MyGUI_UString.cpp.

◆ operator=() [4/5]

UString & MyGUI::UString::operator= ( unicode_char ch)

assignment operator

Definition at line 1584 of file MyGUI_UString.cpp.

◆ operator=() [5/5]

UString & MyGUI::UString::operator= ( wchar_t ch)

assignment operator

◆ operator==()

bool MyGUI::UString::operator== ( const UString & right) const

equality operator

Definition at line 1600 of file MyGUI_UString.cpp.

◆ operator>()

bool MyGUI::UString::operator> ( const UString & right) const

greater than operator

Definition at line 1590 of file MyGUI_UString.cpp.

◆ operator>=()

bool MyGUI::UString::operator>= ( const UString & right) const

greater than or equal operator

Definition at line 1595 of file MyGUI_UString.cpp.

◆ operator[]() [1/2]

UString::code_point & MyGUI::UString::operator[] ( size_type index)

code point dereference operator

Definition at line 1610 of file MyGUI_UString.cpp.

◆ operator[]() [2/2]

const UString::code_point & MyGUI::UString::operator[] ( size_type index) const

code point dereference operator

Definition at line 1615 of file MyGUI_UString.cpp.

◆ push_back() [1/4]

void MyGUI::UString::push_back ( char val)

appends val to the end of the string

Limited to characters under the 127 value barrier.

Definition at line 656 of file MyGUI_UString.cpp.

◆ push_back() [2/4]

void MyGUI::UString::push_back ( code_point val)

appends val to the end of the string

This can be used to push surrogate pair code points, you'll just need to push them one after the other.

Definition at line 651 of file MyGUI_UString.cpp.

◆ push_back() [3/4]

void MyGUI::UString::push_back ( unicode_char val)

appends val to the end of the string

Definition at line 633 of file MyGUI_UString.cpp.

◆ push_back() [4/4]

void MyGUI::UString::push_back ( wchar_t val)

appends val to the end of the string

◆ rbegin() [1/2]

UString::reverse_iterator MyGUI::UString::rbegin ( )

returns a reverse iterator to the last element of the string

Definition at line 799 of file MyGUI_UString.cpp.

◆ rbegin() [2/2]

UString::const_reverse_iterator MyGUI::UString::rbegin ( ) const

returns a reverse iterator to the last element of the string

Definition at line 807 of file MyGUI_UString.cpp.

◆ rend() [1/2]

UString::reverse_iterator MyGUI::UString::rend ( )

returns a reverse iterator just past the beginning of the string

Definition at line 815 of file MyGUI_UString.cpp.

◆ rend() [2/2]

UString::const_reverse_iterator MyGUI::UString::rend ( ) const

returns a reverse iterator just past the beginning of the string

Definition at line 823 of file MyGUI_UString.cpp.

◆ replace() [1/6]

UString & MyGUI::UString::replace ( iterator start,
iterator end,
const UString & str,
size_type num = npos )

replaces code points in the current string from start to end with num code points from str

Definition at line 1204 of file MyGUI_UString.cpp.

◆ replace() [2/6]

UString & MyGUI::UString::replace ( iterator start,
iterator end,
size_type num,
code_point ch )

replaces the code points in the current string from start to end with num copies of ch

Definition at line 1219 of file MyGUI_UString.cpp.

◆ replace() [3/6]

UString & MyGUI::UString::replace ( size_type index,
size_type num1,
size_type num2,
code_point ch )

replaces up to num1 code points in the current string (beginning at index) with num2 copies of ch

Definition at line 1213 of file MyGUI_UString.cpp.

◆ replace() [4/6]

UString & MyGUI::UString::replace ( size_type index1,
size_type num1,
const UString & str )

replaces up to num1 code points of the current string (starting at index1) with str

Definition at line 1186 of file MyGUI_UString.cpp.

◆ replace() [5/6]

UString & MyGUI::UString::replace ( size_type index1,
size_type num1,
const UString & str,
size_type index2,
size_type num2 )

replaces up to num1 code points of the current string (starting at index1) with up to num2 code points from str beginning at index2

Definition at line 1198 of file MyGUI_UString.cpp.

◆ replace() [6/6]

UString & MyGUI::UString::replace ( size_type index1,
size_type num1,
const UString & str,
size_type num2 )

replaces up to num1 code points of the current string (starting at index1) with up to num2 code points from str

Definition at line 1192 of file MyGUI_UString.cpp.

◆ reserve()

void MyGUI::UString::reserve ( size_type size)

sets the capacity of the string to at least size code points

Definition at line 584 of file MyGUI_UString.cpp.

◆ resize()

void MyGUI::UString::resize ( size_type num,
const code_point & val = 0 )

changes the size of the string to size, filling in any new area with val

Definition at line 589 of file MyGUI_UString.cpp.

◆ rfind() [1/8]

UString::size_type MyGUI::UString::rfind ( char ch,
size_type index = 0 ) const

returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1342 of file MyGUI_UString.cpp.

◆ rfind() [2/8]

UString::size_type MyGUI::UString::rfind ( code_point ch,
size_type index ) const

returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1347 of file MyGUI_UString.cpp.

◆ rfind() [3/8]

UString::size_type MyGUI::UString::rfind ( const char * c_str,
size_type index,
size_type num ) const

returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found

Definition at line 1328 of file MyGUI_UString.cpp.

◆ rfind() [4/8]

UString::size_type MyGUI::UString::rfind ( const code_point * cp_str,
size_type index,
size_type num ) const

returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found

Definition at line 1322 of file MyGUI_UString.cpp.

◆ rfind() [5/8]

UString::size_type MyGUI::UString::rfind ( const UString & str,
size_type index = 0 ) const

returns the location of the first occurrence of str in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1317 of file MyGUI_UString.cpp.

◆ rfind() [6/8]

size_type MyGUI::UString::rfind ( const wchar_t * w_str,
size_type index,
size_type num ) const

returns the location of the first occurrence of str in the current string, doing a reverse search from index, searching at most num characters; returns UString::npos if nothing is found

◆ rfind() [7/8]

UString::size_type MyGUI::UString::rfind ( unicode_char ch,
size_type index = 0 ) const

returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

Definition at line 1359 of file MyGUI_UString.cpp.

◆ rfind() [8/8]

size_type MyGUI::UString::rfind ( wchar_t ch,
size_type index = 0 ) const

returns the location of the first occurrence of ch in the current string, doing a reverse search from index; returns UString::npos if nothing is found

◆ setChar()

int MyGUI::UString::setChar ( size_type loc,
unicode_char ch )

sets the value of the character at loc to the Unicode value ch (UTF-32)

Providing sentinel values (values between U+D800-U+DFFF) are accepted, but you should be aware that you can also unwittingly create a valid surrogate pair if you don't pay attention to what you are doing.

Note
This operation may also lengthen the string if a surrogate pair is needed to represent the value given, but one is not available to replace; or alternatively shorten the string if an existing surrogate pair is replaced with a character that is representable without a surrogate pair. The return value will signify any lengthening or shortening performed, returning 0 if no change was made, -1 if the string was shortened, or 1 if the string was lengthened. Any single call can only change the string length by + or - 1.

Definition at line 737 of file MyGUI_UString.cpp.

◆ size()

UString::size_type MyGUI::UString::size ( ) const

Returns the number of code points in the current string.

Definition at line 556 of file MyGUI_UString.cpp.

◆ substr()

UString MyGUI::UString::substr ( size_type index,
size_type num = npos ) const

returns a substring of the current string, starting at index, and num characters long.

If num is omitted, it will default to UString::npos, and the substr() function will simply return the remainder of the string starting at index.

Definition at line 624 of file MyGUI_UString.cpp.

◆ swap()

void MyGUI::UString::swap ( UString & from)

exchanges the elements of the current string with those of from

Definition at line 594 of file MyGUI_UString.cpp.

Friends And Related Symbol Documentation

◆ operator+() [1/9]

UString operator+ ( char c,
const UString & s2 )
related

string addition operator

Definition at line 1040 of file MyGUI_UString.h.

◆ operator+() [2/9]

UString operator+ ( const UString & s1,
char c )
related

string addition operator

Definition at line 1018 of file MyGUI_UString.h.

◆ operator+() [3/9]

UString operator+ ( const UString & s1,
const UString & s2 )
related

string addition operator

Definition at line 1003 of file MyGUI_UString.h.

◆ operator+() [4/9]

UString operator+ ( const UString & s1,
UString::code_point c )
related

string addition operator

Definition at line 1008 of file MyGUI_UString.h.

◆ operator+() [5/9]

UString operator+ ( const UString & s1,
UString::unicode_char c )
related

string addition operator

Definition at line 1013 of file MyGUI_UString.h.

◆ operator+() [6/9]

UString operator+ ( const UString & s1,
wchar_t c )
related

string addition operator

Definition at line 1024 of file MyGUI_UString.h.

◆ operator+() [7/9]

UString operator+ ( UString::code_point c,
const UString & s2 )
related

string addition operator

Definition at line 1030 of file MyGUI_UString.h.

◆ operator+() [8/9]

UString operator+ ( UString::unicode_char c,
const UString & s2 )
related

string addition operator

Definition at line 1035 of file MyGUI_UString.h.

◆ operator+() [9/9]

UString operator+ ( wchar_t c,
const UString & s2 )
related

string addition operator

Definition at line 1046 of file MyGUI_UString.h.

◆ operator<<() [1/2]

std::ostream & operator<< ( std::ostream & os,
const UString & s )
related

std::ostream write operator

Definition at line 1118 of file MyGUI_UString.h.

◆ operator<<() [2/2]

std::wostream & operator<< ( std::wostream & os,
const UString & s )
related

std::wostream write operator

Definition at line 1124 of file MyGUI_UString.h.

Field Documentation

◆ mStrBuffer

std::string* MyGUI::UString::mStrBuffer
mutable

Definition at line 996 of file MyGUI_UString.h.

◆ mUTF32StrBuffer

utf32string* MyGUI::UString::mUTF32StrBuffer
mutable

Definition at line 998 of file MyGUI_UString.h.

◆ mVoidBuffer

void* MyGUI::UString::mVoidBuffer
mutable

Definition at line 995 of file MyGUI_UString.h.

◆ mWStrBuffer

std::wstring* MyGUI::UString::mWStrBuffer
mutable

Definition at line 997 of file MyGUI_UString.h.

◆ npos

const size_type MyGUI::UString::npos = std::numeric_limits<size_t>::max()
static

the usual constant representing: not found, no limit, etc

Definition at line 163 of file MyGUI_UString.h.


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