Difference between revisions of "CXString"
From cxwiki
(Created page with "<div class="mw-parser-output">The CXString class is considered the "default" string class in the cxsource framework. It offers a reasonable compromise of capabilities. Other s...") |
|||
Line 25: | Line 25: | ||
| | ||
− | </div> | + | </div> |
− | + | = Comparison = | |
+ | <syntaxhighlight lang="c++">// Equality operators test for byte-for-byte equality. | ||
+ | bool operator==(const CXString& other) const; | ||
+ | bool operator==(const char* __nullable other) const; | ||
+ | bool operator!=(const CXString& other) const; | ||
+ | bool operator!=(const char* __nullable other) const; | ||
− | + | // Byte-for-byte sort operators. | |
− | + | bool operator<(const CXString& other) const; | |
− | + | bool operator<=(const CXString& other) const; | |
− | + | bool operator>(const CXString& other) const; | |
− | + | bool operator>=(const CXString& other) const; | |
− | + | ||
− | + | // Optimise hash operator. | |
− | |||
struct std::hash<CXString>; | struct std::hash<CXString>; | ||
+ | // Optimised std::map comparison function, non-alphabetic ordering. | ||
struct CXStringPooledMapCompare;</syntaxhighlight> | struct CXStringPooledMapCompare;</syntaxhighlight> | ||
| | ||
− | + | <div class="mw-parser-output"> </div> <div class="mw-parser-output">Helpers</div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> <div class="mw-parser-output"> </div> |
Revision as of 07:19, 23 February 2018
The CXString class is considered the "default" string class in the cxsource framework. It offers a reasonable compromise of capabilities. Other string classes are available for more specific uses where the standard tradeoffs are not suitable.
A CXString object nominally stores UTF-8 encoded text with a zero termination byte. Strings are stored using copy-on-write references, and string pooling may optionally be enabled using a compile-time flag. CXString objects do not distinguish "null" and "empty" strings.
Construction
// Efficiently construct an empty string.
CXString(void);
// Construct from a cxsource string object.
CXString(const CXString &str);
CXString(CXString&& rhs);
CXString(const class CXStringEdit& str);
CXString(const CXStringArgument& cstr);
// Construct from a character range.
CXString(const CXStringArgument& begin, const CXStringArgument& end);
CXString(const char* __nullable ch, size_t len);
CXString(const char* __nonnull ch, const char* __nonnull end);
// Construct from Objective-C string or data objects.
CXString(NSString* __nullable str);
CXString(NSData* __nullable data);
// Construct from a printf-style format string.
static CXString Fromf(const char* __nonnull format, ...);
Equivalent assingment operators are also available.
Comparison
// Equality operators test for byte-for-byte equality.
bool operator==(const CXString& other) const;
bool operator==(const char* __nullable other) const;
bool operator!=(const CXString& other) const;
bool operator!=(const char* __nullable other) const;
// Byte-for-byte sort operators.
bool operator<(const CXString& other) const;
bool operator<=(const CXString& other) const;
bool operator>(const CXString& other) const;
bool operator>=(const CXString& other) const;
// Optimise hash operator.
struct std::hash<CXString>;
// Optimised std::map comparison function, non-alphabetic ordering.
struct CXStringPooledMapCompare;
Helpers