OpenGUI::UTFString Class Reference

#include <OpenGUI_String.h>

List of all members.


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:
See also:


Public Types

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

Public Member Functions

Constructors/Destructor
 UTFString ()
 default constructor, creates an empty string
 UTFString (const UTFString &copy)
 copy constructor
 UTFString (size_type length, const code_point &ch)
 length copies of ch
 UTFString (const code_point *str)
 duplicate of nul-terminated sequence str
 UTFString (const code_point *str, size_type length)
 duplicate of str, length code points long
 UTFString (const UTFString &str, size_type index, size_type length)
 substring of str starting at index and length code points long
 UTFString (const wchar_t *w_str)
 duplicate of nul-terminated wchar_t array
 UTFString (const wchar_t *w_str, size_type length)
 duplicate of w_str, length characters long
 UTFString (const std::wstring &wstr)
 duplicate of wstr
 UTFString (const char *c_str)
 duplicate of nul-terminated C-string c_str (UTF-8 encoding)
 UTFString (const char *c_str, size_type length)
 duplicate of c_str, length characters long (UTF-8 encoding)
 UTFString (const std::string &str)
 duplicate of str (UTF-8 encoding)
 UTFString (size_type length, const unicode_char &ch)
 length copies of ch
 ~UTFString ()
 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 (UTFString &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
UTFString 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
UTFStringassign (iterator start, iterator end)
 gives the current string the values from start to end
UTFStringassign (const UTFString &str)
 assign str to the current string
UTFStringassign (const code_point *str)
 assign the nul-terminated str to the current string
UTFStringassign (const code_point *str, size_type num)
 assign the first num characters of str to the current string
UTFStringassign (const UTFString &str, size_type index, size_type len)
 assign len entries from str to the current string, starting at index
UTFStringassign (size_type num, const code_point &ch)
 assign num copies of ch to the current string
UTFStringassign (const std::wstring &wstr)
 assign wstr to the current string (wstr is treated as a UTF-16 stream)
UTFStringassign (const wchar_t *w_str)
 assign w_str to the current string
UTFStringassign (const wchar_t *w_str, size_type num)
 assign the first num characters of w_str to the current string
UTFStringassign (const std::string &str)
 assign str to the current string (str is treated as a UTF-8 stream)
UTFStringassign (const char *c_str)
 assign c_str to the current string (c_str is treated as a UTF-8 stream)
UTFStringassign (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)
UTFStringassign (size_type num, const unicode_char &ch)
 assign num copies of ch to the current string
append
UTFStringappend (const UTFString &str)
 appends str on to the end of the current string
UTFStringappend (const code_point *str)
 appends str on to the end of the current string
UTFStringappend (const UTFString &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
UTFStringappend (const code_point *str, size_type num)
 appends num characters of str on to the end of the current string
UTFStringappend (size_type num, code_point ch)
 appends num repetitions of ch on to the end of the current string
UTFStringappend (iterator start, iterator end)
 appends the sequence denoted by start and end on to the end of the current string
UTFStringappend (const wchar_t *w_str, size_type num)
 appends num characters of str on to the end of the current string
UTFStringappend (size_type num, wchar_t ch)
 appends num repetitions of ch on to the end of the current string
UTFStringappend (const char *c_str, size_type num)
 appends num characters of str on to the end of the current string (UTF-8 encoding)
UTFStringappend (size_type num, char ch)
 appends num repetitions of ch on to the end of the current string (Unicode values less than 128)
UTFStringappend (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
UTFStringinsert (size_type index, const UTFString &str)
 inserts str into the current string, at location index
UTFStringinsert (size_type index, const code_point *str)
 inserts str into the current string, at location index
UTFStringinsert (size_type index1, const UTFString &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
UTFStringinsert (size_type index, const code_point *str, size_type num)
 inserts num code points of str into the current string, at location index
UTFStringinsert (size_type index, const wchar_t *w_str, size_type num)
 inserts num code points of str into the current string, at location index
UTFStringinsert (size_type index, const char *c_str, size_type num)
 inserts num code points of str into the current string, at location index
UTFStringinsert (size_type index, size_type num, code_point ch)
 inserts num copies of ch into the current string, at location index
UTFStringinsert (size_type index, size_type num, wchar_t ch)
 inserts num copies of ch into the current string, at location index
UTFStringinsert (size_type index, size_type num, char ch)
 inserts num copies of ch into the current string, at location index
UTFStringinsert (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
UTFStringerase (size_type index=0, size_type num=npos)
 removes num code points from the current string, starting at index
replace
UTFStringreplace (size_type index1, size_type num1, const UTFString &str)
 replaces up to num1 code points of the current string (starting at index1) with str
UTFStringreplace (size_type index1, size_type num1, const UTFString &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
UTFStringreplace (size_type index1, size_type num1, const UTFString &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
UTFStringreplace (iterator start, iterator end, const UTFString &str, size_type num=npos)
 replaces code points in the current string from start to end with num code points from str
UTFStringreplace (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
UTFStringreplace (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 UTFString &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 UTFString &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 UTFString &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 UTFString &str, size_type index=0) const
 returns the index of the first occurrence of str within the current string, starting at index; returns UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
size_type rfind (const UTFString &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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
find_first/last_(not)_of
size_type find_first_of (const UTFString &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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
size_type find_first_not_of (const UTFString &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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
size_type find_last_of (const UTFString &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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
size_type find_last_not_of (const UTFString &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 UTFString::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 UTFString::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 UTFString::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 UTFString::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 UTFString::npos if nothing is found
Operators
bool operator< (const UTFString &right) const
 less than operator
bool operator<= (const UTFString &right) const
 less than or equal operator
bool operator> (const UTFString &right) const
 greater than operator
bool operator>= (const UTFString &right) const
 greater than or equal operator
bool operator== (const UTFString &right) const
 equality operator
bool operator!= (const UTFString &right) const
 inequality operator
UTFStringoperator= (const UTFString &s)
 assignment operator, implicitly casts all compatible types
UTFStringoperator= (code_point ch)
 assignment operator
UTFStringoperator= (char ch)
 assignment operator
UTFStringoperator= (wchar_t ch)
 assignment operator
UTFStringoperator= (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

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)
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 (const std::string &str)
 verifies a UTF-8 stream, returning the total number of Unicode characters found

Static Public Attributes

static const size_type npos = ~0
 the usual constant representing: not found, no limit, etc

Related Functions

(Note that these are not member functions.)

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

Classes

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


Member Typedef Documentation

typedef UINT16 OpenGUI::UTFString::code_point
 

a single UTF-16 code point

typedef _const_fwd_iterator OpenGUI::UTFString::const_iterator
 

const iterator

typedef _const_rev_iterator OpenGUI::UTFString::const_reverse_iterator
 

const reverse iterator

typedef _fwd_iterator OpenGUI::UTFString::iterator
 

iterator

typedef _rev_iterator OpenGUI::UTFString::reverse_iterator
 

reverse iterator

typedef size_t OpenGUI::UTFString::size_type
 

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

typedef INT32 OpenGUI::UTFString::unicode_char
 

a single 32-bit Unicode character

typedef std::basic_string<unicode_char> OpenGUI::UTFString::utf32string
 

string type used for returning UTF-32 formatted data

typedef code_point OpenGUI::UTFString::value_type
 

value type typedef for use in iterators


Constructor & Destructor Documentation

OpenGUI::UTFString::UTFString  )  [inline]
 

default constructor, creates an empty string

OpenGUI::UTFString::UTFString const UTFString copy  )  [inline]
 

copy constructor

OpenGUI::UTFString::UTFString size_type  length,
const code_point ch
[inline]
 

length copies of ch

OpenGUI::UTFString::UTFString const code_point str  )  [inline]
 

duplicate of nul-terminated sequence str

OpenGUI::UTFString::UTFString const code_point str,
size_type  length
[inline]
 

duplicate of str, length code points long

OpenGUI::UTFString::UTFString const UTFString str,
size_type  index,
size_type  length
[inline]
 

substring of str starting at index and length code points long

OpenGUI::UTFString::UTFString const wchar_t *  w_str  )  [inline]
 

duplicate of nul-terminated wchar_t array

OpenGUI::UTFString::UTFString const wchar_t *  w_str,
size_type  length
[inline]
 

duplicate of w_str, length characters long

OpenGUI::UTFString::UTFString const std::wstring &  wstr  )  [inline]
 

duplicate of wstr

OpenGUI::UTFString::UTFString const char *  c_str  )  [inline]
 

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

OpenGUI::UTFString::UTFString const char *  c_str,
size_type  length
[inline]
 

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

OpenGUI::UTFString::UTFString const std::string &  str  )  [inline]
 

duplicate of str (UTF-8 encoding)

OpenGUI::UTFString::UTFString size_type  length,
const unicode_char ch
[inline]
 

length copies of ch

OpenGUI::UTFString::~UTFString  )  [inline]
 

destructor


Member Function Documentation

static size_t OpenGUI::UTFString::_utf16_char_length unicode_char  uc  )  [inline, static]
 

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

static size_t OpenGUI::UTFString::_utf16_char_length code_point  cp  )  [inline, static]
 

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

static bool OpenGUI::UTFString::_utf16_independent_char code_point  cp  )  [inline, 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

static bool OpenGUI::UTFString::_utf16_surrogate_follow code_point  cp  )  [inline, static]
 

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

static bool OpenGUI::UTFString::_utf16_surrogate_lead code_point  cp  )  [inline, static]
 

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

static size_t OpenGUI::UTFString::_utf16_to_utf32 const code_point  in_cp[2],
unicode_char out_uc
[inline, 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.

static size_t OpenGUI::UTFString::_utf32_to_utf16 const unicode_char in_uc,
code_point  out_cp[2]
[inline, 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.

static size_t OpenGUI::UTFString::_utf32_to_utf8 const unicode_char in_uc,
unsigned char  out_cp[6]
[inline, 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

static size_t OpenGUI::UTFString::_utf8_char_length unicode_char  uc  )  [inline, static]
 

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

static size_t OpenGUI::UTFString::_utf8_char_length unsigned char  cp  )  [inline, static]
 

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

static bool OpenGUI::UTFString::_utf8_start_char unsigned char  cp  )  [inline, static]
 

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

static size_t OpenGUI::UTFString::_utf8_to_utf32 const unsigned char  in_cp[6],
unicode_char out_uc
[inline, 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)

static size_type OpenGUI::UTFString::_verifyUTF8 const std::string &  str  )  [inline, static]
 

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

static size_type OpenGUI::UTFString::_verifyUTF8 const unsigned char *  c_str  )  [inline, static]
 

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

UTFString& OpenGUI::UTFString::append size_type  num,
unicode_char  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::append size_type  num,
char  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::append const char *  c_str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::append size_type  num,
wchar_t  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::append const wchar_t *  w_str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::append iterator  start,
iterator  end
[inline]
 

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

UTFString& OpenGUI::UTFString::append size_type  num,
code_point  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::append const code_point str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::append const UTFString str,
size_type  index,
size_type  len
[inline]
 

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

UTFString& OpenGUI::UTFString::append const code_point str  )  [inline]
 

appends str on to the end of the current string

UTFString& OpenGUI::UTFString::append const UTFString str  )  [inline]
 

appends str on to the end of the current string

UTFString& OpenGUI::UTFString::assign size_type  num,
const unicode_char ch
[inline]
 

assign num copies of ch to the current string

UTFString& OpenGUI::UTFString::assign const char *  c_str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::assign const char *  c_str  )  [inline]
 

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

UTFString& OpenGUI::UTFString::assign const std::string &  str  )  [inline]
 

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

UTFString& OpenGUI::UTFString::assign const wchar_t *  w_str,
size_type  num
[inline]
 

assign the first num characters of w_str to the current string

UTFString& OpenGUI::UTFString::assign const wchar_t *  w_str  )  [inline]
 

assign w_str to the current string

UTFString& OpenGUI::UTFString::assign const std::wstring &  wstr  )  [inline]
 

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

UTFString& OpenGUI::UTFString::assign size_type  num,
const code_point ch
[inline]
 

assign num copies of ch to the current string

UTFString& OpenGUI::UTFString::assign const UTFString str,
size_type  index,
size_type  len
[inline]
 

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

UTFString& OpenGUI::UTFString::assign const code_point str,
size_type  num
[inline]
 

assign the first num characters of str to the current string

UTFString& OpenGUI::UTFString::assign const code_point str  )  [inline]
 

assign the nul-terminated str to the current string

UTFString& OpenGUI::UTFString::assign const UTFString str  )  [inline]
 

assign str to the current string

UTFString& OpenGUI::UTFString::assign iterator  start,
iterator  end
[inline]
 

gives the current string the values from start to end

const utf32string& OpenGUI::UTFString::asUTF32  )  const [inline]
 

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

const unicode_char* OpenGUI::UTFString::asUTF32_c_str  )  const [inline]
 

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

const std::string& OpenGUI::UTFString::asUTF8  )  const [inline]
 

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

const char* OpenGUI::UTFString::asUTF8_c_str  )  const [inline]
 

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

const std::wstring& OpenGUI::UTFString::asWStr  )  const [inline]
 

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

const wchar_t* OpenGUI::UTFString::asWStr_c_str  )  const [inline]
 

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

const code_point& OpenGUI::UTFString::at size_type  loc  )  const [inline]
 

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

code_point& OpenGUI::UTFString::at size_type  loc  )  [inline]
 

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

const_iterator OpenGUI::UTFString::begin  )  const [inline]
 

returns an iterator to the first element of the string

iterator OpenGUI::UTFString::begin  )  [inline]
 

returns an iterator to the first element of the string

const code_point* OpenGUI::UTFString::c_str  )  const [inline]
 

returns a pointer to the first character in the current string

size_type OpenGUI::UTFString::capacity  )  const [inline]
 

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

void OpenGUI::UTFString::clear  )  [inline]
 

deletes all of the elements in the string

int OpenGUI::UTFString::compare size_type  index,
size_type  length,
const char *  c_str,
size_type  length2
const [inline]
 

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

int OpenGUI::UTFString::compare size_type  index,
size_type  length,
const wchar_t *  w_str,
size_type  length2
const [inline]
 

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 OpenGUI::UTFString::compare size_type  index,
size_type  length,
const code_point str,
size_type  length2
const [inline]
 

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 OpenGUI::UTFString::compare size_type  index,
size_type  length,
const UTFString str,
size_type  index2,
size_type  length2
const [inline]
 

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 OpenGUI::UTFString::compare size_type  index,
size_type  length,
const UTFString str
const [inline]
 

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

int OpenGUI::UTFString::compare const code_point str  )  const [inline]
 

compare str to the current string

int OpenGUI::UTFString::compare const UTFString str  )  const [inline]
 

compare str to the current string

const code_point* OpenGUI::UTFString::data  )  const [inline]
 

returns a pointer to the first character in the current string

bool OpenGUI::UTFString::empty  )  const [inline]
 

returns true if the string has no elements, false otherwise

const_iterator OpenGUI::UTFString::end  )  const [inline]
 

returns an iterator just past the end of the string

iterator OpenGUI::UTFString::end  )  [inline]
 

returns an iterator just past the end of the string

UTFString& OpenGUI::UTFString::erase size_type  index = 0,
size_type  num = npos
[inline]
 

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

iterator OpenGUI::UTFString::erase iterator  start,
iterator  end
[inline]
 

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

iterator OpenGUI::UTFString::erase iterator  loc  )  [inline]
 

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

size_type OpenGUI::UTFString::find unicode_char  ch,
size_type  index = 0
const [inline]
 

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

ch can fully represent any Unicode character

size_type OpenGUI::UTFString::find wchar_t  ch,
size_type  index = 0
const [inline]
 

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

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

size_type OpenGUI::UTFString::find code_point  ch,
size_type  index = 0
const [inline]
 

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

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

size_type OpenGUI::UTFString::find char  ch,
size_type  index = 0
const [inline]
 

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

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

size_type OpenGUI::UTFString::find const wchar_t *  w_str,
size_type  index,
size_type  length
const [inline]
 

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

cp_str is a UTF-16 encoded string

size_type OpenGUI::UTFString::find const char *  c_str,
size_type  index,
size_type  length
const [inline]
 

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

cp_str is a UTF-8 encoded string

size_type OpenGUI::UTFString::find const code_point cp_str,
size_type  index,
size_type  length
const [inline]
 

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

cp_str is a UTF-16 encoded string

size_type OpenGUI::UTFString::find const UTFString str,
size_type  index = 0
const [inline]
 

returns the index of the first occurrence of str within the current string, starting at index; returns UTFString::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)

size_type OpenGUI::UTFString::find_first_not_of unicode_char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_not_of wchar_t  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_not_of char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_not_of code_point  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_not_of const UTFString str,
size_type  index = 0,
size_type  num = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_first_of unicode_char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_of wchar_t  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_of char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_of code_point  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::find_first_of const UTFString str,
size_type  index = 0,
size_type  num = npos
const [inline]
 

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 UTFString::npos if nothing is found.

size_type OpenGUI::UTFString::find_last_not_of unicode_char  ch,
size_type  index = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_not_of wchar_t  ch,
size_type  index = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_not_of char  ch,
size_type  index = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_not_of code_point  ch,
size_type  index = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_not_of const UTFString str,
size_type  index = npos,
size_type  num = npos
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_of unicode_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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_of wchar_t  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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_of code_point  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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::find_last_of const UTFString str,
size_type  index = npos,
size_type  num = npos
const [inline]
 

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 UTFString::npos if nothing is found

unicode_char OpenGUI::UTFString::getChar size_type  loc  )  const [inline]
 

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).

void OpenGUI::UTFString::insert iterator  i,
size_type  num,
const unicode_char ch
[inline]
 

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

void OpenGUI::UTFString::insert iterator  i,
size_type  num,
const char &  ch
[inline]
 

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

void OpenGUI::UTFString::insert iterator  i,
size_type  num,
const wchar_t &  ch
[inline]
 

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

void OpenGUI::UTFString::insert iterator  i,
size_type  num,
const code_point ch
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
size_type  num,
unicode_char  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
size_type  num,
char  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
size_type  num,
wchar_t  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
size_type  num,
code_point  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
const char *  c_str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
const wchar_t *  w_str,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
const code_point str,
size_type  num
[inline]
 

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

void OpenGUI::UTFString::insert iterator  i,
iterator  start,
iterator  end
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index1,
const UTFString str,
size_type  index2,
size_type  num
[inline]
 

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

UTFString& OpenGUI::UTFString::insert size_type  index,
const code_point str
[inline]
 

inserts str into the current string, at location index

UTFString& OpenGUI::UTFString::insert size_type  index,
const UTFString str
[inline]
 

inserts str into the current string, at location index

iterator OpenGUI::UTFString::insert iterator  i,
const code_point ch
[inline]
 

inserts ch before the code point denoted by i

bool OpenGUI::UTFString::inString unicode_char  ch  )  const [inline]
 

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

size_type OpenGUI::UTFString::length  )  const [inline]
 

Returns the number of code points in the current string.

size_type OpenGUI::UTFString::length_Characters  )  const [inline]
 

Returns the number of Unicode characters in the string.

Executes in linear time.

size_type OpenGUI::UTFString::max_size  )  const [inline]
 

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

OpenGUI::UTFString::operator std::string  )  const [inline]
 

implicit cast to std::string

OpenGUI::UTFString::operator std::wstring  )  const [inline]
 

implicit cast to std::wstring

bool OpenGUI::UTFString::operator!= const UTFString right  )  const [inline]
 

inequality operator

bool OpenGUI::UTFString::operator< const UTFString right  )  const [inline]
 

less than operator

bool OpenGUI::UTFString::operator<= const UTFString right  )  const [inline]
 

less than or equal operator

UTFString& OpenGUI::UTFString::operator= unicode_char  ch  )  [inline]
 

assignment operator

UTFString& OpenGUI::UTFString::operator= wchar_t  ch  )  [inline]
 

assignment operator

UTFString& OpenGUI::UTFString::operator= char  ch  )  [inline]
 

assignment operator

UTFString& OpenGUI::UTFString::operator= code_point  ch  )  [inline]
 

assignment operator

UTFString& OpenGUI::UTFString::operator= const UTFString s  )  [inline]
 

assignment operator, implicitly casts all compatible types

bool OpenGUI::UTFString::operator== const UTFString right  )  const [inline]
 

equality operator

bool OpenGUI::UTFString::operator> const UTFString right  )  const [inline]
 

greater than operator

bool OpenGUI::UTFString::operator>= const UTFString right  )  const [inline]
 

greater than or equal operator

const code_point& OpenGUI::UTFString::operator[] size_type  index  )  const [inline]
 

code point dereference operator

code_point& OpenGUI::UTFString::operator[] size_type  index  )  [inline]
 

code point dereference operator

void OpenGUI::UTFString::push_back char  val  )  [inline]
 

appends val to the end of the string

Limited to characters under the 127 value barrier.

void OpenGUI::UTFString::push_back code_point  val  )  [inline]
 

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.

void OpenGUI::UTFString::push_back wchar_t  val  )  [inline]
 

appends val to the end of the string

void OpenGUI::UTFString::push_back unicode_char  val  )  [inline]
 

appends val to the end of the string

const_reverse_iterator OpenGUI::UTFString::rbegin  )  const [inline]
 

returns a reverse iterator to the last element of the string

reverse_iterator OpenGUI::UTFString::rbegin  )  [inline]
 

returns a reverse iterator to the last element of the string

const_reverse_iterator OpenGUI::UTFString::rend  )  const [inline]
 

returns a reverse iterator just past the beginning of the string

reverse_iterator OpenGUI::UTFString::rend  )  [inline]
 

returns a reverse iterator just past the beginning of the string

UTFString& OpenGUI::UTFString::replace iterator  start,
iterator  end,
size_type  num,
code_point  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::replace size_type  index,
size_type  num1,
size_type  num2,
code_point  ch
[inline]
 

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

UTFString& OpenGUI::UTFString::replace iterator  start,
iterator  end,
const UTFString str,
size_type  num = npos
[inline]
 

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

UTFString& OpenGUI::UTFString::replace size_type  index1,
size_type  num1,
const UTFString str,
size_type  index2,
size_type  num2
[inline]
 

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

UTFString& OpenGUI::UTFString::replace size_type  index1,
size_type  num1,
const UTFString str,
size_type  num2
[inline]
 

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

UTFString& OpenGUI::UTFString::replace size_type  index1,
size_type  num1,
const UTFString str
[inline]
 

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

void OpenGUI::UTFString::reserve size_type  size  )  [inline]
 

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

void OpenGUI::UTFString::resize size_type  num,
const code_point val = 0
[inline]
 

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

size_type OpenGUI::UTFString::rfind unicode_char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::rfind wchar_t  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::rfind code_point  ch,
size_type  index
const [inline]
 

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

size_type OpenGUI::UTFString::rfind char  ch,
size_type  index = 0
const [inline]
 

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

size_type OpenGUI::UTFString::rfind const wchar_t *  w_str,
size_type  index,
size_type  num
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::rfind const char *  c_str,
size_type  index,
size_type  num
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::rfind const code_point cp_str,
size_type  index,
size_type  num
const [inline]
 

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 UTFString::npos if nothing is found

size_type OpenGUI::UTFString::rfind const UTFString str,
size_type  index = 0
const [inline]
 

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

int OpenGUI::UTFString::setChar size_type  loc,
unicode_char  ch
[inline]
 

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.

size_type OpenGUI::UTFString::size  )  const [inline]
 

Returns the number of code points in the current string.

UTFString OpenGUI::UTFString::substr size_type  index,
size_type  num = npos
const [inline]
 

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

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

void OpenGUI::UTFString::swap UTFString from  )  [inline]
 

exchanges the elements of the current string with those of from


Friends And Related Function Documentation

UTFString operator+ wchar_t  c,
const UTFString s2
[related]
 

string addition operator

UTFString operator+ char  c,
const UTFString s2
[related]
 

string addition operator

UTFString operator+ UTFString::unicode_char  c,
const UTFString s2
[related]
 

string addition operator

UTFString operator+ UTFString::code_point  c,
const UTFString s2
[related]
 

string addition operator

UTFString operator+ const UTFString s1,
wchar_t  c
[related]
 

string addition operator

UTFString operator+ const UTFString s1,
char  c
[related]
 

string addition operator

UTFString operator+ const UTFString s1,
UTFString::unicode_char  c
[related]
 

string addition operator

UTFString operator+ const UTFString s1,
UTFString::code_point  c
[related]
 

string addition operator

UTFString operator+ const UTFString s1,
const UTFString s2
[related]
 

string addition operator

std::wostream & operator<< std::wostream &  os,
const UTFString s
[related]
 

std::wostream write operator

std::ostream & operator<< std::ostream &  os,
const UTFString s
[related]
 

std::ostream write operator


Member Data Documentation

const size_type OpenGUI::UTFString::npos = ~0 [static]
 

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


The documentation for this class was generated from the following files:
Copyright © 2006 OpenGUI | OpenGUI.SF.net
Generated: Sun Sep 9 02:00:22 2007