rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWUString Class Reference
[Unicode String Processing]

Stores and manipulates Unicode character sequences encoded as UTF-16 code units. More...

#include <rw/i18n/RWUString.h>

Inheritance diagram for RWUString:
RWBasicUString

List of all members.

Classes

class  Pad
 Iostream manipulator that supports the insertion of the contents of an RWUString into an output stream, with padding to fill the full field width of the stream. More...

Public Types

enum  StripType {
  Leading, leading, Trailing, trailing,
  Both, both
}
enum  Utf8 { UTF8 }
enum  NormalizationForm { FormNFD, FormNFKD, FormNFC, FormNFKC }

Public Member Functions

 RWUString ()
 RWUString (const RWUString &source)
 RWUString (const RWBasicUString &source)
 RWUString (const RWUSubString &source)
 RWUString (const RWUConstSubString &source)
 RWUString (const RWUChar16 *source, Duration duration=Transient)
 RWUString (const RWUChar16 *source, size_t length, Duration duration=Transient)
 RWUString (const RWUChar16 *source, size_t length, size_t initialCapacity)
 RWUString (RWUChar16 *clientBuffer, Deallocator *deallocator)
 RWUString (RWUChar16 *clientBuffer, size_t contentLength, Deallocator *deallocator)
 RWUString (RWUChar16 *clientBuffer, size_t contentLength, size_t bufferCapacity, Deallocator *deallocator)
 RWUString (const RWUChar32 *source)
 RWUString (const RWUChar32 *source, size_t length)
 RWUString (const RWSize_T &initialCapacity)
 RWUString (RWUChar16 codeUnit, size_t repeat=1)
 RWUString (RWUChar32 codePoint, size_t repeat=1)
 RWUString (const char *source, Utf8)
 RWUString (const char *source, size_t length, Utf8)
 RWUString (const RWCString &source, Utf8)
 RWUString (const char *source, RWUToUnicodeConverter &converter=RWUToUnicodeConversionContext::getContext().getConverter())
 RWUString (const RWCString &source, RWUToUnicodeConverter &converter=RWUToUnicodeConversionContext::getContext().getConverter())
 RWUString (const RWCSubString &source, RWUToUnicodeConverter &converter=RWUToUnicodeConversionContext::getContext().getConverter())
 RWUString (const RWCConstSubString &source, RWUToUnicodeConverter &converter=RWUToUnicodeConversionContext::getContext().getConverter())
 RWUString (const std::string &source, RWUToUnicodeConverter &converter=RWUToUnicodeConversionContext::getContext().getConverter())
RWUStringappend (const RWBasicUString &source)
RWUStringappend (const RWBasicUString &source, size_t sourceOffset, size_t sourceLength)
RWUStringappend (const RWUSubString &source)
RWUStringappend (const RWUConstSubString &source)
RWUStringappend (const RWUChar16 *source)
RWUStringappend (const RWUChar16 *source, size_t sourceLength)
RWUStringappend (const RWUChar32 *source)
RWUStringappend (const RWUChar32 *source, size_t sourceLength)
RWUStringappend (RWUChar16 codeUnit, size_t repeat=1)
RWUStringappend (RWUChar32 codePoint, size_t repeat=1)
RWUStringIterator beginCodePointIterator ()
int compareCodePoints (const RWUSubString &rhs) const
int compareCodePoints (const RWUConstSubString &rhs) const
int compareCodeUnits (const RWUSubString &rhs) const
int compareCodeUnits (const RWUConstSubString &rhs) const
int compareTo (const RWUSubString &rhs) const
int compareTo (const RWUConstSubString &rhs) const
bool contains (const RWUSubString &pattern) const
bool contains (const RWUConstSubString &pattern) const
bool contains (size_t offset, const RWUSubString &pattern) const
bool contains (size_t offset, const RWUConstSubString &pattern) const
bool contains (size_t offset, size_t length, const RWUSubString &pattern) const
bool contains (size_t offset, size_t length, const RWUConstSubString &pattern) const
RWUConstStringIterator endCodePointIterator () const
RWUStringIterator endCodePointIterator ()
size_t first (const RWUSubString &codeUnitSet) const
size_t first (const RWUConstSubString &codeUnitSet) const
size_t first (size_t offset, const RWUSubString &codeUnitSet) const
size_t first (size_t offset, const RWUConstSubString &codeUnitSet) const
size_t first (size_t offset, size_t length, const RWUSubString &codeUnitSet) const
size_t first (size_t offset, size_t length, const RWUConstSubString &codeUnitSet) const
RWUStringfoldCase (bool excludeSpecial=false)
size_t index (const RWUSubString &pattern) const
size_t index (const RWUConstSubString &pattern) const
size_t index (size_t offset, const RWUSubString &pattern) const
size_t index (size_t offset, const RWUConstSubString &pattern) const
size_t index (size_t offset, size_t length, const RWUSubString &pattern) const
size_t index (size_t offset, size_t length, const RWUConstSubString &pattern) const
RWUStringinsert (size_t offset, const RWBasicUString &source)
RWUStringinsert (size_t offset, const RWBasicUString &source, size_t sourceOffset, size_t sourceLength)
RWUStringinsert (size_t offset, const RWUSubString &source)
RWUStringinsert (size_t offset, const RWUConstSubString &source)
RWUStringinsert (size_t offset, const RWUChar16 *source)
RWUStringinsert (size_t offset, const RWUChar16 *source, size_t sourceLength)
RWUStringinsert (size_t offset, const RWUChar32 *source)
RWUStringinsert (size_t offset, const RWUChar32 *source, size_t sourceLength)
RWUStringinsert (size_t offset, RWUChar16 codeUnit, size_t repeat=1)
RWUStringinsert (size_t offset, RWUChar32 codePoint, size_t repeat=1)
size_t last (const RWUSubString &codeUnitSet) const
size_t last (const RWUConstSubString &codeUnitSet) const
size_t last (size_t offset, const RWUSubString &codeUnitSet) const
size_t last (size_t offset, const RWUConstSubString &codeUnitSet) const
size_t last (size_t offset, size_t length, const RWUSubString &codeUnitSet) const
size_t last (size_t offset, size_t length, const RWUConstSubString &codeUnitSet) const
RWUStringnormalize (NormalizationForm form=FormNFC)
RWUStringoperator= (const RWBasicUString &source)
RWUStringoperator= (const char *source)
RWUStringoperator= (const RWUSubString &source)
RWUStringoperator= (const RWUConstSubString &source)
RWUStringoperator= (const RWUChar16 *source)
RWUStringoperator= (const RWUChar32 *source)
RWUStringoperator= (RWUChar16 codeUnit)
RWUStringoperator= (RWUChar32 codePoint)
RWUStringoperator+= (const RWBasicUString &source)
RWUStringoperator+= (const RWUSubString &source)
RWUStringoperator+= (const RWUConstSubString &source)
RWUStringoperator+= (const RWUChar16 *source)
RWUStringoperator+= (const RWUChar32 *source)
RWUStringoperator+= (RWUChar16 codeUnit)
RWUStringoperator+= (RWUChar32 codePoint)
RWUChar16operator() (size_t offset)
RWUChar16 operator() (size_t offset) const
RWUSubString operator() (size_t offset, size_t length)
RWUConstSubString operator() (size_t offset, size_t length) const
RWUStringprepend (const RWBasicUString &source)
RWUStringprepend (const RWBasicUString &source, size_t sourceOffset, size_t sourceLength)
RWUStringprepend (const RWUSubString &source)
RWUStringprepend (const RWUConstSubString &source)
RWUStringprepend (const RWUChar16 *source)
RWUStringprepend (const RWUChar16 *source, size_t sourceLength)
RWUStringprepend (const RWUChar32 *source)
RWUStringprepend (const RWUChar32 *source, size_t sourceLength)
RWUStringprepend (RWUChar16 codeUnit, size_t repeat=1)
RWUStringprepend (RWUChar32 codePoint, size_t repeat=1)
RWUStringremove (size_t offset=0)
RWUStringremove (size_t offset, size_t length)
RWUStringreplace (size_t offset, size_t length, const RWBasicUString &source)
RWUStringreplace (size_t offset, size_t length, const RWBasicUString &source, size_t sourceOffset, size_t sourceLength)
RWUStringreplace (size_t offset, size_t length, const RWUSubString &source)
RWUStringreplace (size_t offset, size_t length, const RWUConstSubString &source)
RWUStringreplace (size_t offset, size_t length, const RWUChar16 *source)
RWUStringreplace (size_t offset, size_t length, const RWUChar16 *source, size_t sourceLength)
RWUStringreplace (size_t offset, size_t length, const RWUChar32 *source)
RWUStringreplace (size_t offset, size_t length, const RWUChar32 *source, size_t sourceLength)
RWUStringreplace (size_t offset, size_t length, RWUChar16 codeUnit, size_t repeat=1)
RWUStringreplace (size_t offset, size_t length, RWUChar32 codePoint, size_t repeat=1)
size_t rindex (const RWUSubString &pattern) const
size_t rindex (const RWUConstSubString &pattern) const
size_t rindex (size_t offset, const RWUSubString &pattern) const
size_t rindex (size_t offset, const RWUConstSubString &pattern) const
size_t rindex (size_t offset, size_t length, const RWUSubString &pattern) const
size_t rindex (size_t offset, size_t length, const RWUConstSubString &pattern) const
RWCString toBytes (RWUFromUnicodeConverter &converter=RWUFromUnicodeConversionContext::getContext().getConverter()) const
RWUStringtoLower ()
RWUStringtoLower (const RWULocale &locale)
RWUStringtoUpper ()
RWUStringtoUpper (const RWULocale &locale)
RWUStringtoTitle ()
RWUStringtoTitle (const RWULocale &locale)
RWUStringunescape ()
RWUSubString subString (const RWUString &pattern, size_t offset=0)
RWUConstSubString subString (const RWUString &pattern, size_t offset=0) const
RWUConstStringIterator beginCodePointIterator () const
RWUConstSubString strip (StripType stripType=Trailing, RWUChar32 codePoint=static_cast< RWUChar32 >(0x0020)) const
RWUSubString strip (StripType stripType=Trailing, RWUChar32 codePoint=static_cast< RWUChar32 >(0x0020))

Static Public Member Functions

static RWUString foldCase (const RWUString &source, bool excludeSpecial=false)
static RWCString toBytes (const RWUChar16 *source, size_t length, RWUFromUnicodeConverter &converter=RWUFromUnicodeConversionContext::getContext().getConverter())
static RWUString toLower (const RWUString &source, const RWULocale &locale)
static RWUString toUpper (const RWUString &source, const RWULocale &locale)
static RWUString toTitle (const RWUString &source, const RWULocale &locale)
static RWUString unescape (const RWUString &source)

Related Functions

(Note that these are not member functions.)



bool operator< (const RWUString &lhs, const RWUString &rhs)
bool operator< (const RWUChar16 *lhs, const RWUString &rhs)
bool operator< (const RWUString &lhs, const RWUChar16 *rhs)
bool operator< (const RWUChar32 *lhs, const RWUString &rhs)
bool operator< (const RWUString &lhs, const RWUChar32 *rhs)
bool operator< (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator< (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator< (const RWUSubString &lhs, const RWUString &rhs)
bool operator< (const RWUString &lhs, const RWUSubString &rhs)
bool operator< (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator< (const RWUSubString &lhs, const RWUConstSubString &rhs)
bool operator<= (const RWUString &lhs, const RWUString &rhs)
bool operator<= (const RWUChar16 *lhs, const RWUString &rhs)
bool operator<= (const RWUString &lhs, const RWUChar16 *rhs)
bool operator<= (const RWUChar32 *lhs, const RWUString &rhs)
bool operator<= (const RWUString &lhs, const RWUChar32 *rhs)
bool operator<= (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator<= (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator<= (const RWUSubString &lhs, const RWUString &rhs)
bool operator<= (const RWUString &lhs, const RWUSubString &rhs)
bool operator<= (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator<= (const RWUSubString &lhs, const RWUConstSubString &rhs)
bool operator== (const RWUString &lhs, const RWUString &rhs)
bool operator== (const RWUChar16 *lhs, const RWUString &rhs)
bool operator== (const RWUString &lhs, const RWUChar16 *rhs)
bool operator== (const RWUChar32 *lhs, const RWUString &rhs)
bool operator== (const RWUString &lhs, const RWUChar32 *rhs)
bool operator== (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator== (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator== (const RWUSubString &lhs, const RWUString &rhs)
bool operator== (const RWUString &lhs, const RWUSubString &rhs)
bool operator== (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator== (const RWUSubString &lhs, const RWUConstSubString &rhs)
bool operator!= (const RWUString &lhs, const RWUString &rhs)
bool operator!= (const RWUChar16 *lhs, const RWUString &rhs)
bool operator!= (const RWUString &lhs, const RWUChar16 *rhs)
bool operator!= (const RWUChar32 *lhs, const RWUString &rhs)
bool operator!= (const RWUString &lhs, const RWUChar32 *rhs)
bool operator!= (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator!= (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator!= (const RWUSubString &lhs, const RWUString &rhs)
bool operator!= (const RWUString &lhs, const RWUSubString &rhs)
bool operator!= (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator!= (const RWUSubString &lhs, const RWUConstSubString &rhs)
bool operator>= (const RWUString &lhs, const RWUString &rhs)
bool operator>= (const RWUChar16 *lhs, const RWUString &rhs)
bool operator>= (const RWUString &lhs, const RWUChar16 *rhs)
bool operator>= (const RWUChar32 *lhs, const RWUString &rhs)
bool operator>= (const RWUString &lhs, const RWUChar32 *rhs)
bool operator>= (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator>= (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator>= (const RWUSubString &lhs, const RWUString &rhs)
bool operator>= (const RWUString &lhs, const RWUSubString &rhs)
bool operator>= (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator>= (const RWUSubString &lhs, const RWUConstSubString &rhs)
bool operator> (const RWUString &lhs, const RWUString &rhs)
bool operator> (const RWUChar16 *lhs, const RWUString &rhs)
bool operator> (const RWUString &lhs, const RWUChar16 *rhs)
bool operator> (const RWUChar32 *lhs, const RWUString &rhs)
bool operator> (const RWUString &lhs, const RWUChar32 *rhs)
bool operator> (const RWUConstSubString &lhs, const RWUString &rhs)
bool operator> (const RWUString &lhs, const RWUConstSubString &rhs)
bool operator> (const RWUSubString &lhs, const RWUString &rhs)
bool operator> (const RWUString &lhs, const RWUSubString &rhs)
bool operator> (const RWUConstSubString &lhs, const RWUSubString &rhs)
bool operator> (const RWUSubString &lhs, const RWUConstSubString &rhs)
RWUString operator+ (const RWUString &lhs, const RWUString &rhs)
RWUString operator+ (const RWUChar16 *lhs, const RWUString &rhs)
RWUString operator+ (const RWUString &lhs, const RWUChar16 *rhs)
RWUString operator+ (const RWUString &lhs, const RWUSubString &rhs)
RWUString operator+ (const RWUSubString &lhs, const RWUString &rhs)
RWUString operator+ (const RWUString &lhs, const RWUConstSubString &rhs)
RWUString operator+ (const RWUConstSubString &lhs, const RWUString &rhs)
std::istream & operator>> (std::istream &is, RWUString &ustr)
std::ostream & operator<< (std::ostream &os, const RWUString::Pad &pad)
std::ostream & operator<< (std::ostream &os, const RWUString &ustr)

Detailed Description

RWUString stores and manipulates Unicode character sequences encoded as UTF-16 code units. This class extends RWBasicUString in the Essential Tools Module.

Unicode is a coded character set. It assigns numeric code point values from 0 to 0x10FFFF to abstract characters. UTF-16 is a character encoding form for Unicode in which a single 21-bit Unicode code point is represented using one or two 16-bit integer code units. UTF-16 strikes a balance between ease of use and efficient use of memory. Most characters can be represented with a single 16-bit code unit. Only characters in the range 0x10000 to 0x10FFFF must be represented with a surrogate pair of two UTF-16 code units.

Null Termination

One or more code units in a Unicode character string can be zero. Hence, a Unicode character string may not be null-terminated. In practice, it is a rare Unicode string that uses embedded nulls, but you should program defensively. RWUString handles embedded nulls properly.

Narrow Characters and Other Non-Unicode Strings

RWUString does not deal directly with non-Unicode characters or character strings such as char, char*, wchar_t, wchar_t*, RWCString, RWWString, std::string, std::wstring, and so on. If a non-Unicode character or string must be used with an RWUString, the non-Unicode character or string must be converted into Unicode first. The conversion can be done explicitly through the use of an RWUToUnicodeConverter, or implicitly through the use of an RWUToUnicodeConversionContext.

Code Units, Code Points, and Characters

The characteristics of UTF-16 imply that the number of 16-bit code units in a string may differ from the number of code points. Furthermore, the nature of Unicode implies that the number of code points may differ from the number of characters, as interpreted by the end user, since Unicode characters can be decomposed into multiple code points that correspond to the various accents or glyphs that comprise each character. The following methods and classes help you work with these concepts:

Note that numCodePoints() may be slower than the length() method because numCodePoints() must traverse the string to find code points that arise from surrogate code unit pairs. Since the majority of code points in the current Unicode Standard do not require a surrogate representation, many applications can rely on length() to determine the number of code points.

Lexical vs. Logical Comparison

RWUString performs comparisons on a lexical basis. Methods such as compareTo(), contains(), first(), last(), index(), rindex(), strip(), and the global comparison operators compare the bit values of individual code units, not the logical values of code points or characters. In contrast, RWUCollator performs comparisons on a logical basis, following the conventions specified in a given locale. The logical comparisons made by RWUCollator are more likely to match an end user's expectations regarding string equality and ordering. The lexical comparisons made by RWUString, however, are likely to be faster. If two strings contain characters from the same script, and are in the same normalization form, lexical comparisons may be adequate for many purposes.

Parameters of Type RWUChar*

Do not pass a NULL pointer value for parameters of type const RWUChar16*. Doing so will produce erroneous behavior and will trigger an assertion failure in debug builds of the library.

Note:
Do not pass a NULL pointer value for parameters of type const RWUChar16*.

Examples

 #include <rw/i18n/RWUString.h>
 #include <rw/i18n/RWUConversionContext.h>
 #include <iostream>
 
 using std::cout;
 using std::endl;
 
 int
 main()
 {
   // Indicate that source and target strings are
   // encoded as ISO8859-1.
   RWUConversionContext context("ISO8859-1");
 
   // Initialize a Unicode string.
   RWUString str("source pro internationalization module");
 
   // Insert into the string.
   str.insert(str.index("int"), "core ");
 
   // Titlecase the string.
   str.toTitle();
 
   // Remove a character.
   RWUChar16 space = static_cast<RWUChar16>(0x20);
   str.remove(str.first(space), 1);
 
   // Print the result.
   cout << str << endl;
 
   return 0;
 } // main

Program Output:

 SourcePro Core Internationalization Module

Related Classes

RWBasicUString, RWUSubString, RWUConstSubString, RWUStringIterator, RWUConstStringIterator


Member Enumeration Documentation

A NormalizationForm value indicates a particular normalization form, as defined by the Unicode Standard Annex #15, "Unicode Normalization Forms," http://www.unicode.org/reports/tr15/. Same as RWUNormalizer::NormalizationForm.

In converting a string to any of these forms, RWUString::normalize() leaves US-ASCII characters unaffected, and replaces deprecated characters. RWUString::normalize() never introduces compatibility characters.

Enumerator:
FormNFD 

Normalization Form Decomposed.

FormNFKD 

Normalization Form Compatibility Decomposed.

FormNFC 

Normalization Form Composed.

FormNFKC 

Normalization Form Compatibility Composed.

An enumeration whose values are used to control the behavior of the strip() methods.

Enumerator:
Leading 

Removes characters from the beginning of the string.

leading 

Removes characters from the beginning of the string.

Trailing 

Remove characters from the end of the string.

trailing 

Remove characters from the end of the string.

Both 

Remove characters from both ends of the string.

both 

Remove characters from both ends of the string.

This enumeration is used to select the constructors that accept UTF-8 encoded char strings.

Enumerator:
UTF8 

 


Constructor & Destructor Documentation

RWUString::RWUString (  )  [inline]

Default constructor. Constructs an empty, null string.

RWUString::RWUString ( const RWUString source  )  [inline]

Copy constructor. Constructs an RWUString from source.

RWUString::RWUString ( const RWBasicUString source  )  [inline]

Conversion constructor. Constructs an RWUString from source.

RWUString::RWUString ( const RWUSubString source  )  [inline]

Constructs an RWUString containing a copy of the contents of the specified RWUSubString object source.

RWUString::RWUString ( const RWUConstSubString source  )  [inline]

Constructs an RWUString containing a copy of the contents of the specified RWUConstSubString object source.

RWUString::RWUString ( const RWUChar16 source,
Duration  duration = Transient 
) [inline]

Constructs an RWUString instance that copies or references the contents of source, a null-terminated sequence of RWUChar16 values. The new RWUString instance assumes no responsibility for deallocating the storage associated with source.

If duration is Transient, this method copies the contents of source into an internally allocated and managed array.

If duration is Persistent, the client retains responsibility for the storage used for source. This mode may be used when source resides in static or otherwise durable storage. The storage associated with source must not be deallocated while the RWUString instance still references it. The original source array cannot be modified by any of the non-const methods provided by this class. RWUString creates a copy of source if any of these methods are called.

RWUString::RWUString ( const RWUChar16 source,
size_t  length,
Duration  duration = Transient 
) [inline]

Constructs an RWUString instance that copies or references the contents of source, an array of RWUChar16 values that contains length elements and may contain embedded nulls. The new RWUString instance assumes no responsibility for deallocating the storage associated with source.

If duration is Transient, this method copies the contents of source into an internally allocated and managed array.

If duration is Persistent, the client retains responsibility for the storage used for source. This mode may be used when source resides in static or otherwise durable storage. The storage associated with source must not be deallocated while the RWUString instance still references it. The original source array cannot be modified by any of the non-const methods provided by this class. RWUString creates a copy of source if any of these methods are called.

RWUString::RWUString ( const RWUChar16 source,
size_t  length,
size_t  initialCapacity 
) [inline]

Constructs an RWUString instance that copies the array source into an internally-managed buffer with a minimum capacity of initialCapacity.

If the original allocation does not possess the capacity required by an append, insert, or replace operation, a new buffer allocation will be made to accommodate the change in length.

RWUString::RWUString ( RWUChar16 clientBuffer,
Deallocator deallocator 
) [inline]

Constructs an RWUString instance that assumes ownership of clientBuffer, a dynamically-allocated, null-terminated sequence of RWUChar16 values. The terminating null may appear at any position within the storage allocated for clientBuffer.

The deallocator parameter supplies the RWUString instance with an object that can be used to deallocate the storage referenced by clientBuffer.

The storage associated with clientBuffer must not be deallocated while the RWUString instance still references it.

If the original clientBuffer array does not possess the capacity equired by an append, insert, or replace operation, the buffer will be copied into an internally allocated buffer. In this case, you won't be able to access clientBuffer via the original pointer. Capacity is determined by counting code units until the null character is found.

Copy-construction or assignment will produce an RWUString that refers to the same client-supplied buffer.

RWUString does not synchronize access to the client-supplied buffer; external synchronization will be required if multiple threads have access to the buffer through one or more RWUString instances.

RWUString::RWUString ( RWUChar16 clientBuffer,
size_t  contentLength,
Deallocator deallocator 
) [inline]

Constructs an RWUString instance that assumes ownership of clientBuffer, a dynamically-allocated array of RWUChar16 values that contains contentLength elements and may contain embedded nulls. The storage required to hold contentLength elements may be less than the storage that was allocated for clientBuffer.

The deallocator parameter supplies the RWUString instance with an object that can be used to deallocate the storage referenced by clientBuffer.

The storage associated with clientBuffer must not be deallocated while the RWUString instance still references it.

If the original clientBuffer array does not possess the capacity required by an append, insert, or replace operation, the buffer will be copied into an internally allocated buffer. In this case, you won't be able to access clientBuffer via the original pointer. Capacity is assumed to be equal to contentLength.

Copy-construction or assignment will produce an RWUString that refers to the same client-supplied buffer.

RWUString does not synchronize access to the client-supplied buffer; external synchronization will be required if multiple threads have access to the buffer through one or more RWUString instances.

RWUString::RWUString ( RWUChar16 clientBuffer,
size_t  contentLength,
size_t  bufferCapacity,
Deallocator deallocator 
) [inline]

Constructs an RWUString instance that manipulates clientBuffer, a writeable, client-supplied array that initially contains contentLength elements and whose total usable size is given by bufferCapacity.

The deallocator parameter supplies the RWUString instance with an object that can be used to deallocate the storage referenced by clientBuffer.

The storage associated with clientBuffer must not be deallocated while the RWUString instance still references it.

If the original clientBuffer array does not possess the capacity required by an append, insert, or replace operation, the buffer will be copied into an internally allocated buffer. In this case, you won't be able to access clientBuffer via the original pointer. Capacity is given by bufferCapacity.

Copy-construction or assignment will produce an RWUString that refers to the same client-supplied buffer.

RWUString does not synchronize access to the client-supplied buffer; external synchronization will be required if multiple threads have access to the buffer through one or more RWUString instances.

RWUString::RWUString ( const RWUChar32 source  )  [inline]

Constructs an RWUString from the code units produced by converting the UTF-32 encoded source into its equivalent UTF-16 representation. The string contained in source must be null-terminated.

RWUString::RWUString ( const RWUChar32 source,
size_t  length 
) [inline]

Constructs an RWUString from the code units produced by converting the UCS-4 or UTF-32 encoded source into its equivalent UTF-16 representation. The number of elements in source is specified using length. The source array may contain embedded nulls.

RWUString::RWUString ( const RWSize_T initialCapacity  )  [inline]

Constructs RWUString containing a zero-length string and a capacity of initialCapacity. An RWSize_T instance must be constructed to eliminate potential ambiguity with the RWUString(RWUChar32,size_t) constructor:

 RWUString array(RWSize_T(10));
RWUString::RWUString ( RWUChar16  codeUnit,
size_t  repeat = 1 
) [inline]

Constructs an RWUString that contains repeat copies of the codeUnit.

RWUString::RWUString ( RWUChar32  codePoint,
size_t  repeat = 1 
) [inline]

Constructs an RWUString that contains repeat copies of the code unit or surrogate pair of code units produced by converting the UTF-32 codePoint into its equivalent UTF-16 representation.

RWUString::RWUString ( const char *  source,
Utf8   
) [inline]

Constructs an RWUString instance that contains the code units produced by converting the UTF-8 encoded text stored in source into a UTF-16 representation. The string contained in source must be null-terminated.

Use this method when a char text string is known to contain Unicode text encoded in UTF-8.

 const char* utf8String = "..."; // UTF-8 encoded text
 RWUString utf16String(utf8String,UTF8);
RWUString::RWUString ( const char *  source,
size_t  length,
Utf8   
) [inline]

Constructs an RWUString instance that contains the code units produced by converting the UTF-8 encoded text stored in utf8Source into a UTF-16 representation. The length of string contained in source is specified using length. The source may contain embedded nulls.

Use this method when a char text string is known to contain Unicode text encoded in UTF-8.

 const char* utf8String[20] = { ... }; // UTF-8 encoded text
 RWUString utf16String(utf8String,20,UTF8);
RWUString::RWUString ( const RWCString source,
Utf8   
) [inline]

Constructs an RWUString instance that contains the code units produced by converting the UTF-8 encoded text stored in source into a UTF-16 representation.

Use this method when an RWCString text string is known to contain Unicode text encoded in UTF-8:

 RWCString utf8String("..."); // UTF-8 encoded text
 RWUString utf16String(utf8String,UTF8);
RWUString::RWUString ( const char *  source,
RWUToUnicodeConverter converter = RWUToUnicodeConversionContext::getContext().getConverter() 
)

Constructs an RWUString from the UTF-16 code unit sequence produced by converting the contents of the null-terminated character string source using the conversion specified by converter.

RWUString::RWUString ( const RWCString source,
RWUToUnicodeConverter converter = RWUToUnicodeConversionContext::getContext().getConverter() 
)

Constructs an RWUString from the UTF-16 code unit sequence produced by converting the contents of the null-terminated character string source using the conversion specified by converter.

RWUString::RWUString ( const RWCSubString source,
RWUToUnicodeConverter converter = RWUToUnicodeConversionContext::getContext().getConverter() 
)

Constructs an RWUString from the UTF-16 code unit sequence produced by converting the contents of the null-terminated character string source using the conversion specified by converter.

RWUString::RWUString ( const RWCConstSubString source,
RWUToUnicodeConverter converter = RWUToUnicodeConversionContext::getContext().getConverter() 
)

Constructs an RWUString from the UTF-16 code unit sequence produced by converting the contents of the null-terminated character string source using the conversion specified by converter.

RWUString::RWUString ( const std::string &  source,
RWUToUnicodeConverter converter = RWUToUnicodeConversionContext::getContext().getConverter() 
)

Constructs an RWUString from the UTF-16 code unit sequence produced by converting the contents of the null-terminated character string source using the conversion specified by converter.


Member Function Documentation

RWUString & RWUString::append ( RWUChar32  codePoint,
size_t  repeat = 1 
) [inline]

Converts the UTF-32 codePoint into its equivalent UTF-16 representation and appends repeat copies of the resultant code unit or surrogate pair of code units to the contents of self. Returns a reference to self. The code point may be zero (null).

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( RWUChar16  codeUnit,
size_t  repeat = 1 
) [inline]

Appends repeat copies of codeUnit to the contents of self. Returns a reference to self. The code unit is repeated repeat times. The code unit may be zero (null).

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWUChar32 source,
size_t  sourceLength 
) [inline]

Converts the code points in the array source into UTF-16 code units and appends those code units to contents of self. Returns a reference to self. The source string may contain embedded nulls. The size of the source array is specified using sourceLength.

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWUChar32 source  )  [inline]

Converts the code points in the null-terminated array source into UTF-16 code units and appends those code units to the contents of self. Returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWUChar16 source,
size_t  sourceLength 
) [inline]

Appends the contents of the array source to the contents of self, and returns a reference to self. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWUChar16 source  )  [inline]

Appends the contents of the null-terminated array source to the contents of self, and returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWUConstSubString source  )  [inline]

Appends the contents of source to the contents of self, and returns a reference to self.

RWUString & RWUString::append ( const RWUSubString source  )  [inline]

Appends the contents of source to the contents of self, and returns a reference to self.

RWUString & RWUString::append ( const RWBasicUString source,
size_t  sourceOffset,
size_t  sourceLength 
) [inline]

Appends the contents of the specified range in source to the contents of self, and returns a reference to self.

Exceptions:
RWBoundsErr Thrown if the sum of sourceOffset and sourceLength is greater than source.length().

Reimplemented from RWBasicUString.

RWUString & RWUString::append ( const RWBasicUString source  )  [inline]

Appends the contents of source to the contents of self, and returns a reference to self.

Reimplemented from RWBasicUString.

RWUConstStringIterator RWUString::beginCodePointIterator (  )  const [inline]

Returns an iterator that points to the first code point of self.

RWUStringIterator RWUString::beginCodePointIterator (  )  [inline]

Returns an iterator that points to the first code point of self.

int RWUString::compareCodePoints ( const RWUConstSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. The return value should be interpreted as follows:

  • Self appears before rhs if the return value is less than zero.
  • Self is identical to rhs if the return value is zero.
  • Self appears after rhs if the return value is greater than zero.

int RWUString::compareCodePoints ( const RWUSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. The return value should be interpreted as follows:

  • Self appears before rhs if the return value is less than zero.
  • Self is identical to rhs if the return value is zero.
  • Self appears after rhs if the return value is greater than zero.
int RWUString::compareCodeUnits ( const RWUConstSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. The return value should be interpreted as follows:

  • Self appears before rhs if the return value is less than zero.
  • Self is identical to rhs if the return value is zero.
  • Self appears after rhs if the return value is greater than zero.
This method compares code unit values, not code point values. This may not produce the desired result if either string contains surrogate pairs or code unit values above the surrogate region. Use compareCodePoints() if code point ordering is required.

int RWUString::compareCodeUnits ( const RWUSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. The return value should be interpreted as follows:

  • Self appears before rhs if the return value is less than zero.
  • Self is identical to rhs if the return value is zero.
  • Self appears after rhs if the return value is greater than zero.

This method compares code unit values, not code point values. This may not produce the desired result if either string contains surrogate pairs or code unit values above the surrogate region. Use compareCodePoints() if code point ordering is required.

int RWUString::compareTo ( const RWUConstSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. Equivalent to compareCodeUnits().

int RWUString::compareTo ( const RWUSubString rhs  )  const [inline]

Returns a value that describes the lexical ordering between self and rhs. Equivalent to compareCodeUnits().

bool RWUString::contains ( size_t  offset,
size_t  length,
const RWUConstSubString pattern 
) const [inline]

Returns true if the specified range in self contains pattern; otherwise, false. The search begins at index offset within self, and extends for length code units. A zero-length pattern returns true.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

bool RWUString::contains ( size_t  offset,
size_t  length,
const RWUSubString pattern 
) const [inline]

Returns true if the specified range in self contains pattern; otherwise, false. The search begins at index offset within self, and extends for length code units. A zero-length pattern returns true.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
bool RWUString::contains ( size_t  offset,
const RWUConstSubString pattern 
) const [inline]

Returns true if the specified range in self contains pattern; otherwise, false. The search begins at index offset within self. A zero-length pattern returns true.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

bool RWUString::contains ( size_t  offset,
const RWUSubString pattern 
) const [inline]

Returns true if the specified range in self contains pattern; otherwise, false. The search begins at index offset within self. A zero-length pattern returns true.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().
bool RWUString::contains ( const RWUConstSubString pattern  )  const [inline]

Returns true if self contains pattern; otherwise, false. A zero-length pattern returns true.

bool RWUString::contains ( const RWUSubString pattern  )  const [inline]

Returns true if self contains pattern; otherwise, false. A zero-length pattern returns true.

RWUStringIterator RWUString::endCodePointIterator (  )  [inline]

Returns an iterator that points to the position after last code point of self.

RWUConstStringIterator RWUString::endCodePointIterator (  )  const [inline]

Returns an iterator that points to the position after last code point of self.

size_t RWUString::first ( size_t  offset,
size_t  length,
const RWUConstSubString codeUnitSet 
) const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found. The search range starts at index offset within self, and extends for length code units within self.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

size_t RWUString::first ( size_t  offset,
size_t  length,
const RWUSubString codeUnitSet 
) const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found. The search range starts at index offset within self, and extends for length code units within self.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
size_t RWUString::first ( size_t  offset,
const RWUConstSubString codeUnitSet 
) const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found. The search range starts at index offset within self, and extends through the length of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

size_t RWUString::first ( size_t  offset,
const RWUSubString codeUnitSet 
) const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found. The search range starts at index offset within self, and extends through the length of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().
size_t RWUString::first ( const RWUConstSubString codeUnitSet  )  const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found.

size_t RWUString::first ( const RWUSubString codeUnitSet  )  const [inline]

Returns the index of the first occurrence of any code unit in codeUnitSet, or RW_NPOS if none of the code units in the set are found.

static RWUString RWUString::foldCase ( const RWUString source,
bool  excludeSpecial = false 
) [static]

Returns a folded-case representation of source in which each character in source is converted into a locale-independent, case-neutral representation suitable for use in caseless, lexical comparisons. If excludeSpecial is true, the special mappings that map the dotted I and dotless i to capital I are excluded. The length of the result may be different than that of the original contents.

Note:
This function supports simple caseless comparisons; use RWUCollator when more robust behavior is required.
RWUString & RWUString::foldCase ( bool  excludeSpecial = false  )  [inline]

Changes all letters in self into a locale-independent, case-neutral representation suitable for use in case-less, lexical comparisons. Returns a reference to self.

Turkic (tr and az) scripts include I-dot and i-dotless variations of the Latin letter I. The mapping used for these characters is controlled by excludeSpecial. If excludeSpecial is false, all I forms are folded to the Latin small letter i.

If excludeSpecial is true, the special Turkic I-dot and i-dotless forms are not mapped and are left unchanged.

The length of the result may differ from that of the original. This function supports simple caseless comparisons; use RWUCollator when more robust behavior is required.

Note:
  • This method produces a "full" case mapping where some characters are decomposed into multiple code points. This differs from the single code point mapping provided by RWUCharTraits, which provides only a simple one-to-one mapping.
  • Case folding does not preserve the normalization form of the source string; the result may require renormalization.
  • For more information on full versus simple case mapping, see UTR-21 Case Mappings, at http://www.unicode.org/reports/tr21/tr21-5.html
size_t RWUString::index ( size_t  offset,
size_t  length,
const RWUConstSubString pattern 
) const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. The search begins at index position offset within self, and extends for length code units. An index value of zero is returned if the pattern length is zero.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

size_t RWUString::index ( size_t  offset,
size_t  length,
const RWUSubString pattern 
) const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. The search begins at index position offset within self, and extends for length code units. An index value of zero is returned if the pattern length is zero.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
size_t RWUString::index ( size_t  offset,
const RWUConstSubString pattern 
) const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. The search begins at index position offset within self, and extends through the length of self. An index value of zero is returned if the pattern length is zero.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

size_t RWUString::index ( size_t  offset,
const RWUSubString pattern 
) const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. The search begins at index position offset within self, and extends through the length of self. An index value of zero is returned if the pattern length is zero.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().
size_t RWUString::index ( const RWUConstSubString pattern  )  const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. An index value of zero is returned if the pattern length is zero.

size_t RWUString::index ( const RWUSubString pattern  )  const [inline]

Returns the index of the first occurrence of pattern, or RW_NPOS if the pattern was not found. An index value of zero is returned if the pattern length is zero.

RWUString & RWUString::insert ( size_t  offset,
RWUChar32  codePoint,
size_t  repeat = 1 
) [inline]

Converts the UTF-32 codePoint into its equivalent UTF-16 representation and inserts repeat copies of the resultant code unit or surrogate pair of code units before the code unit at index offset within the contents of self. The code point may be zero (null).

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
RWUChar16  codeUnit,
size_t  repeat = 1 
) [inline]

Inserts repeat copies of codeUnit before the code unit at index offset within the contents of self. The code unit may be zero (null).

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWUChar32 source,
size_t  sourceLength 
) [inline]

Converts the code points in the array source into UTF-16 code units and inserts those code units before the code unit at index offset within the contents of self. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWUChar32 source 
) [inline]

Converts the code points in the null-terminated array source into UTF-16 code units and inserts those code units before the code unit at index offset within the contents of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWUChar16 source,
size_t  sourceLength 
) [inline]

Inserts the contents of the array source before the code unit at index offset within the contents of self. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWUChar16 source 
) [inline]

Inserts the contents of the null-terminated array source before the code unit at index offset within the contents of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWUConstSubString source 
) [inline]

Inserts the contents of source before the code unit at index offset within the contents of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

RWUString & RWUString::insert ( size_t  offset,
const RWUSubString source 
) [inline]

Inserts the contents of source before the code unit at index offset within the contents of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().
RWUString & RWUString::insert ( size_t  offset,
const RWBasicUString source,
size_t  sourceOffset,
size_t  sourceLength 
) [inline]

Inserts the contents of the specified range in source before the code unit at index offset within the contents of self. The range in source begins at sourceOffset, and extends for sourceLength code units.

Exceptions:
RWBoundsErr Thrown if offset is greater than length(), or if the sum of sourceOffset and sourceLength is greater than source.length().

Reimplemented from RWBasicUString.

RWUString & RWUString::insert ( size_t  offset,
const RWBasicUString source 
) [inline]

Inserts the contents of source before the code unit at index offset within the contents of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

Reimplemented from RWBasicUString.

size_t RWUString::last ( size_t  offset,
size_t  length,
const RWUConstSubString codeUnitSet 
) const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet within the specified range in self, or RW_NPOS if none of the code units in the set were found. The search begins at location offset + length within self and continues backward to location offset, at the front of the range.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

size_t RWUString::last ( size_t  offset,
size_t  length,
const RWUSubString codeUnitSet 
) const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet within the specified range in self, or RW_NPOS if none of the code units in the set were found. The search begins at location offset + length within self and continues backward to location offset, at the front of the range.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
size_t RWUString::last ( size_t  offset,
const RWUConstSubString codeUnitSet 
) const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet from offset to the end of self, or returns RW_NPOS if none of the code units in the set were found. The search begins at the end of self and continues backward to location offset, at the front of the range.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().

size_t RWUString::last ( size_t  offset,
const RWUSubString codeUnitSet 
) const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet from offset to the end of self, or returns RW_NPOS if none of the code units in the set were found. The search begins at the end of self and continues backward to location offset, at the front of the range.

Exceptions:
RWBoundsErr Thrown if offset is greater than length().
size_t RWUString::last ( const RWUConstSubString codeUnitSet  )  const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet in self, or RW_NPOS is none of the code units in the set are found.

size_t RWUString::last ( const RWUSubString codeUnitSet  )  const [inline]

Returns the index of the last occurrence of any code unit in codeUnitSet in self, or RW_NPOS is none of the code units in the set are found.

RWUString& RWUString::normalize ( NormalizationForm  form = FormNFC  ) 

Transforms the contents of self to the specified normalization form.

Many characters have a variety of forms, including diacritics or contextual variants. A "decorated" character (such as å or \xd9 , for example) may be represented in Unicode either by a single code point, or a sequence of code points consisting of the base character and one or more combining characters that modify it. It is possible that within a given string or text file, the same abstract character may be represented in a variety of ways. This variability must be handled if comparisons are to be meaningful.

Normalization is used to transform a string into a predictable sequence of code points. There are four basic normalization forms for strings, represented by the following enum values in RWUString::NormalizationForm:

  • formNFC (Normalization Form Composed)
  • formNFD (Normalization Form Decomposed)
  • formNFKD (Normalization Form Compatibility Decomposed)
  • formNFKC (Normalization Form Compatibility Composed)

This method transforms self into a specific normalization form. See RWUNormalizer for complete information about normalization and normalization forms, and see Section 5.3, "Normalization Forms," in the Internationalization Module User's Guide.

RWUConstSubString RWUString::operator() ( size_t  offset,
size_t  length 
) const

Returns a substring within self that starts at offset and has an extent of length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
RWUSubString RWUString::operator() ( size_t  offset,
size_t  length 
)

Returns a substring within self that starts at offset and has an extent of length code units. The result can be used as an lvalue.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
RWUChar16 RWUString::operator() ( size_t  offset  )  const [inline]

Returns the code unit value at the position specified by offset. Note that an individual code unit may not represent a complete code point.

Exceptions:
RWBoundsErr Thrown if the value of offset is greater than or equal to length()

Reimplemented from RWBasicUString.

RWUChar16 & RWUString::operator() ( size_t  offset  )  [inline]

Returns a reference to the code unit at the position specified by offset. This non-const variant can be used as an l-value in an assignment expression. Note that an individual code unit may not represent a complete code point.

Exceptions:
RWBoundsErr Thrown if the value of offset is greater than or equal to length()

Reimplemented from RWBasicUString.

RWUString & RWUString::operator+= ( RWUChar32  codePoint  )  [inline]

Appends codePoint to the contents of self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator+= ( RWUChar16  codeUnit  )  [inline]

Appends codeUnit to the contents of self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator+= ( const RWUChar32 source  )  [inline]

Appends the contents of the null-terminated array source to the contents of self, after converting the contents of source to UTF-16 using the current to-Unicode conversion context.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator+= ( const RWUChar16 source  )  [inline]

Appends the contents of the null-terminated array source to the contents of self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator+= ( const RWUConstSubString source  )  [inline]

Appends the contents of source to the contents of self.

RWUString & RWUString::operator+= ( const RWUSubString source  )  [inline]

Appends the contents of source to the contents of self.

RWUString & RWUString::operator+= ( const RWBasicUString source  )  [inline]

Appends the contents of source to the contents of self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator= ( RWUChar32  codePoint  )  [inline]

Replaces the contents of self with the code unit sequence required to represent codePoint in the UTF-16 encoding form and returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator= ( RWUChar16  codeUnit  )  [inline]

Replaces the contents of self with the single code unit codeUnit.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator= ( const RWUChar32 source  )  [inline]

Replaces the contents of self with the code unit sequence required to represent the null-terminated, UTF-32 encoded, contents of source in the UTF-16 encoding form and returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator= ( const RWUChar16 source  )  [inline]

Replaces the contents of self with a copy of the null-terminated contents of source and returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::operator= ( const RWUConstSubString source  )  [inline]

Replaces the contents of self with a copy of the contents of source, and returns a reference to self.

RWUString & RWUString::operator= ( const RWUSubString source  )  [inline]

Replaces the contents of self with a copy of the contents of source, and returns a reference to self.

RWUString & RWUString::operator= ( const char *  source  )  [inline]

Replaces the contents of self with a copy of the contents of source, and returns a reference to self. Converts the contents of source to UTF-16 using the current to-Unicode conversion context.

RWUString & RWUString::operator= ( const RWBasicUString source  )  [inline]

Replaces the contents of self with a copy of the contents of source, and returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( RWUChar32  codePoint,
size_t  repeat = 1 
) [inline]

Converts the UTF-32 codePoint into its equivalent UTF-16 representation and prepends repeat copies of the resultant code unit or surrogate pair of code units to the contents of self. Returns a reference to self. The code point may be zero (null).

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( RWUChar16  codeUnit,
size_t  repeat = 1 
) [inline]

Prepends repeat copies of codeUnit to the contents of self. Returns a reference to self. The code unit may be zero (null).

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWUChar32 source,
size_t  sourceLength 
) [inline]

Converts the code points in the array source into UTF-16 code units and prepends those code units to contents of self. Returns a reference to self. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWUChar32 source  )  [inline]

Converts the code points in the null-terminated array source into UTF-16 code units and prepends those code units to contents of self. Returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWUChar16 source,
size_t  sourceLength 
) [inline]

Prepends the contents of the array source to the contents of self. Returns a reference to self. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWUChar16 source  )  [inline]

Prepends the contents of the null-terminated array source to the contents of self. Returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWUConstSubString source  )  [inline]

Prepends the contents of source to the contents of self. Returns a reference to self.

RWUString & RWUString::prepend ( const RWUSubString source  )  [inline]

Prepends the contents of source to the contents of self. Returns a reference to self.

RWUString & RWUString::prepend ( const RWBasicUString source,
size_t  sourceOffset,
size_t  sourceLength 
) [inline]

Prepends the contents of the specified range in source to the contents of self. Returns a reference to self. The range begins at index sourceOffset within source and extends for sourceLength code units.

Exceptions:
RWBoundsErr Thrown if the sum of sourceOffset and sourceLength is greater than source.length().

Reimplemented from RWBasicUString.

RWUString & RWUString::prepend ( const RWBasicUString source  )  [inline]

Prepends the contents of source to the contents of self. Returns a reference to self.

Reimplemented from RWBasicUString.

RWUString & RWUString::remove ( size_t  offset,
size_t  length 
) [inline]

Removes the specified range of code units from the contents of self, and collapses the contents as necessary to produce a contiguous result. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::remove ( size_t  offset = 0  )  [inline]

Removes the range of code units that start at offset and extend through the end of self. Returns a reference to self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
RWUChar32  codePoint,
size_t  repeat = 1 
) [inline]

Converts the UTF-32 codePoint into its equivalent UTF-16 representation and replaces the specified range of code units in self with repeat copies of the resultant code unit or surrogate pair of code units. Returns a reference to self. The range begins at index offset within self and extends for length code units. The code point may be zero (null).

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
RWUChar16  codeUnit,
size_t  repeat = 1 
) [inline]

Replaces the specified range of code units in self with repeat copies of codeUnit. Returns a reference to self. The range begins at index offset within self and extends for length code units. The code unit may be zero (null).

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUChar32 source,
size_t  sourceLength 
) [inline]

Converts the code points in the array source into UTF-16 code units and replaces the specified range of code units in self with those code units. Returns a reference to self. The range begins at index offset within self and extends for length code units. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUChar32 source 
) [inline]

Converts the code points in the null-terminated array source into UTF-16 code units and replaces the specified range of code units in self with those code units. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUChar16 source,
size_t  sourceLength 
) [inline]

Replaces the specified range of code units in self with the contents of the array source. Returns a reference to self. The range begins at index offset within self and extends for length code units. The size of the source array is specified using sourceLength. The source array may contain embedded nulls.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUChar16 source 
) [inline]

Replaces the specified range of code units in self with the contents of the null-terminated array source. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUConstSubString source 
) [inline]

Replaces the specified range of code units in self with the contents of source. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWUSubString source 
) [inline]

Replaces the specified range of code units in self with the contents of source. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().
RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWBasicUString source,
size_t  sourceOffset,
size_t  sourceLength 
) [inline]

Replaces the specified range of code units in self with the specified range of code units in source. Returns a reference to self. The range in self begins at index offset and extends for length code units. The range in source begins at index sourceOffset and extends for sourceLength code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length(), or the sum of sourceOffset and sourceLength is greater than source.length().

Reimplemented from RWBasicUString.

RWUString & RWUString::replace ( size_t  offset,
size_t  length,
const RWBasicUString source 
) [inline]

Replaces the specified range of code units in self with the contents of source. Returns a reference to self. The range begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than length().

Reimplemented from RWBasicUString.

size_t RWUString::rindex ( size_t  offset,
size_t  length,
const RWUConstSubString pattern 
) const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero. The search begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than or equal to length().

size_t RWUString::rindex ( size_t  offset,
size_t  length,
const RWUSubString pattern 
) const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero. The search begins at index offset within self and extends for length code units.

Exceptions:
RWBoundsErr Thrown if the sum of offset and length is greater than or equal to length().
size_t RWUString::rindex ( size_t  offset,
const RWUConstSubString pattern 
) const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero. The search begins at index offset within self and extends through the length of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().

size_t RWUString::rindex ( size_t  offset,
const RWUSubString pattern 
) const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero. The search begins at index offset within self and extends through the length of self.

Exceptions:
RWBoundsErr Thrown if offset is greater than or equal to length().
size_t RWUString::rindex ( const RWUConstSubString pattern  )  const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero.

size_t RWUString::rindex ( const RWUSubString pattern  )  const [inline]

Returns the index of the last occurrence of pattern, or RW_NPOS if the pattern was not found. An index value equal to length() is returned if the pattern length is zero.

RWUSubString RWUString::strip ( StripType  stripType = Trailing,
RWUChar32  codePoint = static_cast< RWUChar32 >(0x0020) 
)

Returns a substring of self in which the character codePoint has been stripped off the beginning of the string, the end of the string, or both, as specified by stripType. The strip code point defaults to U+0020, the US-ASCII space character.

RWUConstSubString RWUString::strip ( StripType  stripType = Trailing,
RWUChar32  codePoint = static_cast< RWUChar32 >(0x0020) 
) const

Returns a substring of self in which the character codePoint has been stripped off the beginning of the string, the end of the string, or both, as specified by stripType. The strip code point defaults to U+0020, the US-ASCII space character.

RWUConstSubString RWUString::subString ( const RWUString pattern,
size_t  offset = 0 
) const

Returns a substring representing the first occurrence of the string pointed to by pattern following position offset. The result has a start position of RW_NPOS and a length of zero if no occurrences of the pattern could be found.

RWUSubString RWUString::subString ( const RWUString pattern,
size_t  offset = 0 
)

Returns a substring representing the first occurrence of the string pointed to by pattern following position offset. The result may be used as an lvalue. The result has a start position of RW_NPOS and a length of zero if no occurrences of the pattern could be found.

static RWCString RWUString::toBytes ( const RWUChar16 source,
size_t  length,
RWUFromUnicodeConverter converter = RWUFromUnicodeConversionContext::getContext().getConverter() 
) [static]

Returns an RWCString instance that contains the sequence of bytes that are produced when the contents of the array source are converted into another character encoding scheme using converter.

See also:
RWUFromUnicodeConversionContext and RWUFromUnicodeConverter.
RWCString RWUString::toBytes ( RWUFromUnicodeConverter converter = RWUFromUnicodeConversionContext::getContext().getConverter()  )  const [inline]

Returns an RWCString instance that contains the sequence of bytes that are produced when the contents of self are converted into another character encoding scheme using converter. See also RWUFromUnicodeConversionContext and RWUFromUnicodeConverter.

static RWUString RWUString::toLower ( const RWUString source,
const RWULocale locale 
) [static]

Returns a lowercase representation of source created using the case-mapping rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString & RWUString::toLower ( const RWULocale locale  )  [inline]

Changes all letters in self to lowercase using the case-mapping rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString& RWUString::toLower (  ) 

Changes all letters in self to lowercase using the case-mapping rules of the current default locale. The length of the result may be different than that of the original. Returns a reference to self.

static RWUString RWUString::toTitle ( const RWUString source,
const RWULocale locale 
) [static]

Returns a titlecase representation of source created using the case-mapping and word-break rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString & RWUString::toTitle ( const RWULocale locale  )  [inline]

Changes all words in self to titlecase using the case-mapping and word-break rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString& RWUString::toTitle (  ) 

Changes all words in self to titlecase using the case-mapping and word-break rules of the default locale. The length of the result may be different than that of the original. Returns a reference to self.

static RWUString RWUString::toUpper ( const RWUString source,
const RWULocale locale 
) [static]

Returns an uppercase representation of source created using the case-mapping rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString & RWUString::toUpper ( const RWULocale locale  )  [inline]

Changes all letters in self to uppercase using the case-mapping rules of the specified locale. The length of the result may be different than that of the original. Returns a reference to self.

RWUString& RWUString::toUpper (  ) 

Changes all letters in self to uppercase using the case-mapping rules of the default locale. The length of the result may be different than that of the original. Returns a reference to self.

static RWUString RWUString::unescape ( const RWUString source  )  [static]

Parses the contents of source and replaces recognized escape sequences with the equivalent Unicode code unit representation. The following escape sequences are recognized:

  • \uhhhh = 4 hex digits in the range [0-9A-Fa-f]
  • \Uhhhhhhhh = 8 hex digits
  • \xhh = 1 or 2 hex digits
  • \ooo = 1, 2 or 3 octal digits in the range [0-7]
  • \a = U+0007; alert (BEL)
  • \b = U+0008; backspace (BS)
  • \t = U+0009; horizontal tab (HT)
  • \n = U+000A; newline/line feed (LF)
  • \v = U+000B; vertical tab (VT)
  • \f = U+000C; form feed (FF)
  • \r = U+000D; carriage return (CR)
  • \" = U+0022; double quote
  • \' = U+0027; single quote
  • \? = U+003F; question mark
  • \\ = U+005C; backslash

The value of any other escape sequence is the value of the character that follows the backslash.

If an escape sequence is ill-formed, this method will throw an RWConversionErr exception with an ILLEGALSEQ message. A non-static version of this method is also provided.

RWUString & RWUString::unescape (  )  [inline]

Parses the contents of self and replaces recognized escape sequences with the equivalent Unicode code unit representation. The following escape sequences are recognized:

  • \uhhhh = 4 hex digits in the range [0-9A-Fa-f]
  • \Uhhhhhhhh = 8 hex digits
  • \xhh = 1 or 2 hex digits
  • \ooo = 1, 2 or 3 octal digits in the range [0-7]
  • \a = U+0007; alert (BEL)
  • \b = U+0008; backspace (BS)
  • \t = U+0009; horizontal tab (HT)
  • \n = U+000A; newline/line feed (LF)
  • \v = U+000B; vertical tab (VT)
  • \f = U+000C; form feed (FF)
  • \r = U+000D; carriage return (CR)
  • \" = U+0022; double quote
  • \' = U+0027; single quote
  • \? = U+003F; question mark
  • \\ = U+005C; backslash

The value of any other escape sequence is the value of the character that follows the backslash. If an escape sequence is ill-formed, this method throws RWConversionErr with an ILLEGALSEQ message. A static version of this method is also provided.


Friends And Related Function Documentation

bool operator!= ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

bool operator!= ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically not equal to rhs; otherwise, false.

RWUString operator+ ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

RWUString operator+ ( const RWUString lhs,
const RWUString rhs 
) [related]

Concatenates lhs with rhs and returns the result.

bool operator< ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

bool operator< ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than rhs; otherwise, false.

std::ostream & operator<< ( std::ostream &  os,
const RWUString ustr 
) [related]

Writes the sequence of bytes that are produced when contents of ustr are converted into the character encoding scheme specified by the currently active target RWUFromUnicodeConversionContext.

If os.width() is greater than the number of code points contained in the source string, the output is padded using a single space fill character (U+0020). If os.width() is less than the number of code points contained the source string, the entire contents of the string are inserted into the output stream. Any padding is inserted after the string if the std::ios_base::left format flag is set, or before if std::ios_base::right is set or if neither flag is set.

Exceptions:
RWUException Thrown to report conversion errors.
std::ios_base::failure Thrown to report any errors detected while performing stream operations.
std::ostream & operator<< ( std::ostream &  os,
const RWUString::Pad pad 
) [related]

Writes the sequence of bytes that are produced when the contents of the RWUString used to construct pad are converted into the character encoding scheme specified by the currently active target RWUFromUnicodeConversionContext.

If os.width() is greater than the number of code points contained in the source string, the output is padded using a single space fill character (U+0020). If os.width() is less than the number of code points contained the source string, the entire contents of the string are inserted into the output stream. Any padding is inserted after the string if the std::ios_base::left format flag is set, or before if std::ios_base::right is set or if neither flag is set.

Exceptions:
RWUException Thrown to report conversion errors.
std::ios_base::failure Thrown to report any errors detected while performing stream operations.
bool operator<= ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator<= ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically less than or equal to rhs; otherwise, false.

bool operator== ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator== ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically equal to rhs; otherwise, false.

bool operator> ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator> ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than rhs; otherwise, false.

bool operator>= ( const RWUSubString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUConstSubString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUString lhs,
const RWUSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUString lhs,
const RWUConstSubString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUConstSubString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUString lhs,
const RWUChar32 rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUChar32 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUString lhs,
const RWUChar16 rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUChar16 lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

bool operator>= ( const RWUString lhs,
const RWUString rhs 
) [related]

Returns true if lhs is lexicographically greater than or equal to rhs; otherwise, false.

std::istream & operator>> ( std::istream &  is,
RWUString ustr 
) [related]

Reads an encoded byte stream from istream. The byte sequence is converted into UTF-16 using the currently active RWUToUnicodeConversionContext. Leading whitespace is always skipped before storing any code points, regardless of the std::ios::skipws format flag setting. Code points are then extracted until:

  • os.width() code points are read, if os.width() is greater than zero
  • a whitespace code point is read
  • the end of the input sequence is reached

The following Unicode characters are treated as whitespace delimiters:

  • U+0009 HORIZONTAL TABULATION
  • U+000A LINE FEED
  • U+000B VERTICAL TABULATION
  • U+000C FORM FEED
  • U+000D CARRIAGE RETURN
  • U+001C FILE SEPARATOR
  • U+001D GROUP SEPARATOR
  • U+001E RECORD SEPARATOR
  • U+001F UNIT SEPARATOR
  • U+0020 SPACE
  • U+0085 NEXT LINE
  • U+1680 OGHAM SPACE MARK
  • U+2000 EN QUAD
  • U+2001 EM QUAD
  • U+2002 EN SPACE
  • U+2003 EM SPACE
  • U+2004 THREE-PER-EM SPACE
  • U+2005 FOUR-PER-EM SPACE
  • U+2006 SIX-PER-EM SPACE
  • U+2007 FIGURE SPACE
  • U+2008 PUNCTUATION SPACE
  • U+2009 THIN SPACE
  • U+200A HAIR SPACE
  • U+200B ZERO WIDTH SPACE
  • U+2028 LINE SEPARATOR
  • U+2029 PARAGRAPH SEPARATOR
  • U+3000 IDEOGRAPHIC SPACE

Unlike standard extractors, this extractor must consume and discard the trailing whitespace delimiter. This behavior is due to the nature of the UTF-8 encoding scheme, which requires multiple bytes to encode some whitespace characters. For the same reason, this extractor cannot support the noskipws condition where the std::ios_base::skipws format flag has been cleared; each extraction will consume one whitespace character. Nor is a whitespace manipulator is not provide, since such a manipulator would consume the first non-whitespace character following a sequence of whitespace characters.

Exceptions:
RWUException Thrown to report conversion errors.
std::ios_base::failure Thrown to report any errors detected while performing stream operations.
 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.