VTK
9.1.0
|
String class that stores Unicode text. More...
#include <vtkUnicodeString.h>
Classes | |
class | const_iterator |
Public Types | |
typedef vtkUnicodeStringValueType | value_type |
typedef std::string::size_type | size_type |
Public Member Functions | |
vtkUnicodeString () | |
Constructs an empty string. | |
vtkUnicodeString (const vtkUnicodeString &) | |
Makes a deep-copy of another sequence. | |
vtkUnicodeString (size_type count, value_type character) | |
Constructs a sequence of repeated characters. | |
vtkUnicodeString (const_iterator begin, const_iterator end) | |
Constructs a string from a sequence of Unicode characters. | |
vtkUnicodeString & | operator= (const vtkUnicodeString &) |
Replaces the current sequence with a deep copy of another. | |
const_iterator | begin () const |
Returns a forward iterator that points at the first element of the sequence (or just beyond the end of an empty sequence). | |
const_iterator | end () const |
Returns a forward iterator that points just beyond the end of the sequence. | |
value_type | at (size_type offset) const |
Returns the Unicode character at the given character offset within the sequence, or throws std::out_of_range if the offset is invalid. | |
value_type | operator[] (size_type offset) const |
Returns the Unicode character at the given character offset within the sequence. | |
const char * | utf8_str () const |
Returns the sequence as a null-terminated sequence of UTF-8 encoded characters. | |
void | utf8_str (std::string &result) const |
Inserts the sequence into the supplied storage as a collection of UTF-8 encoded characters. | |
std::vector< vtkTypeUInt16 > | utf16_str () const |
Returns the sequence as a collection of UTF-16 encoded characters. | |
void | utf16_str (std::vector< vtkTypeUInt16 > &result) const |
Inserts the sequence into the supplied storage as a collection of UTF-16 encoded characters. | |
size_type | byte_count () const |
Returns the number of bytes (not characters) in the sequence. | |
size_type | character_count () const |
Returns the number of characters (not bytes) in the sequence. | |
bool | empty () const |
Returns true if the string contains an empty sequence. | |
vtkUnicodeString & | operator+= (value_type) |
Append a Unicode character to the end of the sequence. | |
vtkUnicodeString & | operator+= (const vtkUnicodeString &rhs) |
Append a Unicode sequence to the end of the current sequence. | |
void | push_back (value_type) |
Append a Unicode character to the end of the sequence. | |
void | clear () |
Resets the string to an empty sequence. | |
vtkUnicodeString | fold_case () const |
Returns a copy of the current sequence, modified so that differences in case are eliminated. | |
int | compare (const vtkUnicodeString &) const |
Returns a negative value if the sequence compares less-than the operand sequence, zero if the two sequences compare equal, or a positive value otherwise. | |
vtkUnicodeString | substr (size_type offset=0, size_type count=npos) const |
Returns a subset of the current sequence that up-to 'count' characters in length, starting at character 'offset'. | |
void | swap (vtkUnicodeString &) |
Swap the sequences stored by two strings. | |
void | append (const vtkUnicodeString &value) |
Append Unicode to the current sequence. | |
void | append (size_type count, value_type character) |
Append Unicode to the current sequence. | |
void | append (const_iterator begin, const_iterator end) |
Append Unicode to the current sequence. | |
void | assign (const vtkUnicodeString &value) |
Replace the current sequence with another. | |
void | assign (size_type count, value_type character) |
Replace the current sequence with another. | |
void | assign (const_iterator begin, const_iterator end) |
Replace the current sequence with another. | |
Static Public Member Functions | |
static vtkUnicodeString | from_utf16 (const vtkTypeUInt16 *) |
Constructs a string from a null-terminated sequence of UTF-16 encoded characters. | |
static bool | is_utf8 (const char *) |
Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence. | |
static bool | is_utf8 (const std::string &) |
Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence. | |
static vtkUnicodeString | from_utf8 (const char *) |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters. | |
static vtkUnicodeString | from_utf8 (const char *begin, const char *end) |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters. | |
static vtkUnicodeString | from_utf8 (const std::string &) |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters. | |
Static Public Attributes | |
static const size_type | npos |
The largest representable value of size_type, used as a special-code. | |
String class that stores Unicode text.
vtkUnicodeString provides storage for Unicode text. Conceptually, it acts as a container for a sequence of Unicode characters, providing a public interface similar to basic_string<>. For character-oriented operations, this means reading / writing 32-bit UTF-32 / UCS-4 characters. Internally, characters may be stored using variable-length encodings for efficiency. Explicit conversions to-and-from other encodings are provided, and implicit conversions are deliberately avoided, to avoid confusion.
Note that, because vtkUnicodeString uses variable-length encodings for storage, character-oriented operations will generally provide O(N) access instead of O(1).
The current implementation stores the sequence with UTF-8 encoding, but this choice is subject to change and might become a compile-time or run-time option.
Definition at line 79 of file vtkUnicodeString.h.
Definition at line 82 of file vtkUnicodeString.h.
typedef std::string::size_type vtkUnicodeString::size_type |
Definition at line 83 of file vtkUnicodeString.h.
vtkUnicodeString::vtkUnicodeString | ( | ) |
Constructs an empty string.
vtkUnicodeString::vtkUnicodeString | ( | const vtkUnicodeString & | ) |
Makes a deep-copy of another sequence.
vtkUnicodeString::vtkUnicodeString | ( | size_type | count, |
value_type | character | ||
) |
Constructs a sequence of repeated characters.
Note: throws an exception if the character isn't a valid Unicode code point.
vtkUnicodeString::vtkUnicodeString | ( | const_iterator | begin, |
const_iterator | end | ||
) |
Constructs a string from a sequence of Unicode characters.
|
static |
Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence.
|
static |
Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence.
|
static |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters.
|
static |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters.
|
static |
Constructs a string from a null-terminated sequence of UTF-8 encoded characters.
|
static |
Constructs a string from a null-terminated sequence of UTF-16 encoded characters.
vtkUnicodeString & vtkUnicodeString::operator= | ( | const vtkUnicodeString & | ) |
Replaces the current sequence with a deep copy of another.
const_iterator vtkUnicodeString::begin | ( | ) | const |
Returns a forward iterator that points at the first element of the sequence (or just beyond the end of an empty sequence).
const_iterator vtkUnicodeString::end | ( | ) | const |
Returns a forward iterator that points just beyond the end of the sequence.
value_type vtkUnicodeString::at | ( | size_type | offset | ) | const |
Returns the Unicode character at the given character offset within the sequence, or throws std::out_of_range if the offset is invalid.
value_type vtkUnicodeString::operator[] | ( | size_type | offset | ) | const |
Returns the Unicode character at the given character offset within the sequence.
Behavior is undefined if the position is invalid.
const char * vtkUnicodeString::utf8_str | ( | ) | const |
Returns the sequence as a null-terminated sequence of UTF-8 encoded characters.
void vtkUnicodeString::utf8_str | ( | std::string & | result | ) | const |
Inserts the sequence into the supplied storage as a collection of UTF-8 encoded characters.
std::vector< vtkTypeUInt16 > vtkUnicodeString::utf16_str | ( | ) | const |
Returns the sequence as a collection of UTF-16 encoded characters.
void vtkUnicodeString::utf16_str | ( | std::vector< vtkTypeUInt16 > & | result | ) | const |
Inserts the sequence into the supplied storage as a collection of UTF-16 encoded characters.
size_type vtkUnicodeString::byte_count | ( | ) | const |
Returns the number of bytes (not characters) in the sequence.
size_type vtkUnicodeString::character_count | ( | ) | const |
Returns the number of characters (not bytes) in the sequence.
bool vtkUnicodeString::empty | ( | ) | const |
Returns true if the string contains an empty sequence.
vtkUnicodeString & vtkUnicodeString::operator+= | ( | value_type | ) |
Append a Unicode character to the end of the sequence.
vtkUnicodeString & vtkUnicodeString::operator+= | ( | const vtkUnicodeString & | rhs | ) |
Append a Unicode sequence to the end of the current sequence.
void vtkUnicodeString::push_back | ( | value_type | ) |
Append a Unicode character to the end of the sequence.
void vtkUnicodeString::append | ( | const vtkUnicodeString & | value | ) |
Append Unicode to the current sequence.
void vtkUnicodeString::append | ( | size_type | count, |
value_type | character | ||
) |
Append Unicode to the current sequence.
void vtkUnicodeString::append | ( | const_iterator | begin, |
const_iterator | end | ||
) |
Append Unicode to the current sequence.
void vtkUnicodeString::assign | ( | const vtkUnicodeString & | value | ) |
Replace the current sequence with another.
void vtkUnicodeString::assign | ( | size_type | count, |
value_type | character | ||
) |
Replace the current sequence with another.
void vtkUnicodeString::assign | ( | const_iterator | begin, |
const_iterator | end | ||
) |
Replace the current sequence with another.
void vtkUnicodeString::clear | ( | ) |
Resets the string to an empty sequence.
vtkUnicodeString vtkUnicodeString::fold_case | ( | ) | const |
Returns a copy of the current sequence, modified so that differences in case are eliminated.
Thus, you can run fold_case() on two strings and then comparse them to obtain a case-insensitive comparison. Note that the string returned by fold_case() may be larger than the original source sequence,
See http://www.unicode.org/Public/UNIDATA/CaseFolding.txt for details.
int vtkUnicodeString::compare | ( | const vtkUnicodeString & | ) | const |
Returns a negative value if the sequence compares less-than the operand sequence, zero if the two sequences compare equal, or a positive value otherwise.
Note that the definition of "less-than" is undefined, so you should use some other method if you wish to establish a specific ordering (such as alphabetical).
vtkUnicodeString vtkUnicodeString::substr | ( | size_type | offset = 0 , |
size_type | count = npos |
||
) | const |
Returns a subset of the current sequence that up-to 'count' characters in length, starting at character 'offset'.
void vtkUnicodeString::swap | ( | vtkUnicodeString & | ) |
Swap the sequences stored by two strings.
|
static |
The largest representable value of size_type, used as a special-code.
Definition at line 222 of file vtkUnicodeString.h.