20#define txu(string) L##string
21#define txuc(string) L##string
23#define txu(string) L##string
24#define txuc(string) L##string
26#include <CoreFoundation/CoreFoundation.h>
27#define txu(string) (const UCChar*)u##string
28#define txuc(ch) (const UCChar)u##ch
66 typedef size_t size_type;
67 typedef ptrdiff_t difference_type;
69 typedef const T* const_pointer;
71 typedef const T& const_reference;
77 typedef TXAlloc<U> other;
81 pointer address(reference value)
const {
return &value; }
82 const_pointer address(const_reference value)
const {
return &value; }
86 TXAlloc(
const TXAlloc&)
throw() {}
87 template <
typename U> TXAlloc(
const TXAlloc<U>&)
throw() {}
91 size_type max_size()
const throw() {
return (size_type)(-1) /
sizeof(T); }
94 pointer allocate(size_type num,
const void* hint = 0)
96 return (pointer)malloc(num *
sizeof(T));
100 void deallocate(pointer p, size_type)
106 void construct(pointer p, const_reference value) {
new (p) T(value); }
109 void destroy(pointer p) { p->~T(); }
111 inline bool operator==(TXAlloc
const&)
throw() {
return true; }
112 inline bool operator!=(TXAlloc
const&)
throw() {
return false; }
116bool operator==(
const TXAlloc<T>& lhs,
const TXAlloc<T>& rhs)
throw() {
120typedef std::basic_string<TXChar, std::char_traits<TXChar>, TXAlloc<TXChar>>
StdUStr;
123typedef std::basic_string<TXChar>
StdUStr;
159 explicit TXString(
size_t nInitialSize);
160 explicit TXString(
int nInitialSize);
172 TXString(
const wchar_t* src,
size_t len);
175 explicit TXString(
char ch,
size_t count = 1);
176 explicit TXString(
unsigned char ch,
size_t count = 1);
178 explicit TXString(
wchar_t ch,
size_t count = 1);
345 operator const char*()
const;
346 operator const unsigned char*()
const;
347 operator const UCChar*()
const;
348 operator const wchar_t*()
const;
351 const char*
GetCharPtr()
const {
return (
operator const char*()); }
352 const unsigned char*
GetUCharPtr()
const {
return (
operator const unsigned char*()); }
354 const wchar_t*
GetWCharPtr()
const {
return (
operator const wchar_t*()); }
361 CFStringRef GetCFStringRef()
const;
381 void CopyInto(
wchar_t* dst,
size_t bufElemSize)
const;
387 ptrdiff_t
Find(
const TXString &subStr,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
388 ptrdiff_t
Find(
int ch,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
389 ptrdiff_t
Find(
char ch,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
391 ptrdiff_t
ReverseFind(
const TXString &subStr,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
392 ptrdiff_t
ReverseFind(
int ch,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
393 ptrdiff_t
ReverseFind(
char ch,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
404 TXString Mid(
size_t nFirst,
size_t len = -1)
const;
409 std::vector<TXString>
Split(
char ch)
const;
481 template<
typename T0>
483 template<
typename T0,
typename T1>
485 template<
typename T0,
typename T1,
typename T2>
487 template<
typename T0,
typename T1,
typename T2,
typename T3>
489 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4>
490 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4);
491 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
492 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5);
493 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
494 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6);
495 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
496 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6,
const T7& val7);
497 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
498 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6,
const T7& val7,
const T8& val8);
499 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9>
500 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6,
const T7& val7,
const T8& val8,
const T9& val9);
501 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
502 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6,
const T7& val7,
const T8& val8,
const T9& val9,
const T10& val10);
503 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
typename T11>
504 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6,
const T7& val7,
const T8& val8,
const T9& val9,
const T10& val10,
const T11& val11);
507 template<
typename T0>
509 template<
typename T0,
typename T1>
511 template<
typename T0,
typename T1,
typename T2>
513 template<
typename T0,
typename T1,
typename T2,
typename T3>
515 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4>
516 static TXString Formatted(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4) {
return TXString().
Format(format, val0, val1, val2, val3, val4); }
517 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
518 static TXString Formatted(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5) {
return TXString().
Format(format, val0, val1, val2, val3, val4, val5); }
519 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
520 static TXString Formatted(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5,
const T6& val6) {
return TXString().
Format(format, val0, val1, val2, val3, val4, val5, val6); }
526 size_t hash()
const {
return std::hash<StdUStr>{}(this->stdUStr); }
538 mutable char* charPtr;
539 mutable size_t charBufSize;
543 mutable std::wstring
wStr;
int64_t Sint64
Definition GSTypes.h:37
Uint16 UniChar
Definition GSTypes.h:133
int32_t Sint32
Definition GSTypes.h:36
uint64_t Uint64
Definition GSTypes.h:28
double Real64
Definition GSTypes.h:66
uint32_t Uint32
Definition GSTypes.h:27
Uint16 UCChar
Definition GSTypes.h:121
Definition GSString.h:134
friend bool operator!=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2246
void CopyInto(char *dst, size_t bufSize, ETXEncoding e=ETXEncoding::eUTF8) const
Definition GSString.cpp:1569
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6)
Definition GSString.h:520
static bool IsPunctuation(TXChar aTXChar)
Definition GSString.cpp:2108
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3)
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4)
TXString & TrimRightInvalidCharacter()
Definition GSString.cpp:1308
TXString & SetLength(size_t len)
Definition GSString.cpp:593
static TXString ToStringInt(Sint64 value)
Definition GSString.cpp:2072
const char * GetCharPtr() const
Definition GSString.h:351
const UCChar * GetUCCharPtr() const
Definition GSString.h:353
TXChar & operator[](ptrdiff_t nIndex)
Definition GSString.cpp:655
TXString & operator+=(const TXString &src)
Definition GSString.cpp:771
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2)
Definition GSString.h:512
ptrdiff_t FindNotOneOf(const TXString &charSet, size_t posFirst=0) const
Definition GSString.cpp:1886
TXString & MakeLower()
Definition GSString.cpp:1415
ptrdiff_t ReverseFindNotOneOf(const TXString &charSet, size_t posLast=-1) const
Definition GSString.cpp:1901
size_t hash() const
Definition GSString.h:526
const wchar_t * GetWCharPtr() const
Definition GSString.h:354
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6, const T7 &val7, const T8 &val8, const T9 &val9, const T10 &val10, const T11 &val11)
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6, const T7 &val7, const T8 &val8, const T9 &val9)
friend bool operator==(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2203
Real64 atof() const
Definition GSString.cpp:2037
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6)
virtual ~TXString()
Definition GSString.cpp:355
TXString & operator+=(int n)
TXString & operator=(int codePoint)
bool EndsWith(const TXString &suffix) const
Definition GSString.cpp:2196
const unsigned char * GetUCharPtr() const
Definition GSString.h:352
ptrdiff_t ReverseFindOneOf(const TXString &charSet, size_t posLast=-1) const
Definition GSString.cpp:1872
ptrdiff_t FindOneOf(const TXString &charSet, size_t posFirst=0) const
Definition GSString.cpp:1857
Sint64 atoi64() const
Definition GSString.cpp:2028
std::string GetStdString(ETXEncoding e=ETXEncoding::eUTF8) const
Definition GSString.cpp:1529
size_t GetLength() const
Definition GSString.cpp:550
friend bool operator>=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2289
bool IsCompleteNumber()
Definition GSString.cpp:2063
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5)
TXString & Truncate(size_t len)
Definition GSString.cpp:627
TXString & Replace(const TXString &oldStr, const TXString &newStr, bool bIgnoreCase=false)
Definition GSString.cpp:1345
TXString Left(size_t len) const
Definition GSString.cpp:1935
bool EqualNoCase(const TXString &str) const
Definition GSString.cpp:2147
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5)
Definition GSString.h:518
TXString & SetAt(size_t nIndex, TXChar ch)
Definition GSString.cpp:753
TXString & operator=(const TXString &src)
Definition GSString.cpp:367
TXString & Insert(size_t pos, int ch)
TXString & TrimRight()
Definition GSString.cpp:1260
TXString & Clear()
Definition GSString.cpp:640
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6, const T7 &val7, const T8 &val8)
size_t GetEncodingLength(ETXEncoding e) const
Definition GSString.cpp:567
static TXString Formatted(const TXString &format, const T0 &val0)
Definition GSString.h:508
TXString & Format(const TXString &format, const T0 &val0)
const TXChar * GetTXCharPtr() const
Definition GSString.cpp:1473
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1)
Definition GSString.h:510
friend bool operator>(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2303
friend bool operator<=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2296
TXString & itoa(Sint64 value)
Definition GSString.cpp:2044
TXString & Trim()
Definition GSString.cpp:1279
TXString & Delete(size_t pos, size_t len=(size_t) -1)
Definition GSString.cpp:1217
static TXString ToString(T value)
void swap(TXString &rhs)
Definition GSString.cpp:2572
TXString & Format(const TXString &format)
Definition GSString.cpp:2355
TXString & TrimInvalidCharacters()
Definition GSString.cpp:1324
TXString & ftoa(Real64 value)
Definition GSString.cpp:2051
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6, const T7 &val7)
friend TXString operator+(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2317
std::vector< TXString > Split(char ch) const
Definition GSString.cpp:1960
bool Equal(const TXString &str) const
Definition GSString.cpp:2140
ptrdiff_t Find(const TXString &subStr, size_t posFirst=0, bool bIgnoreCase=false) const
Definition GSString.cpp:1710
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3)
Definition GSString.h:514
TXString & TrimLeft()
Definition GSString.cpp:1241
bool IsEmpty() const
Definition GSString.cpp:586
std::wstring GetStdWString() const
Definition GSString.cpp:1538
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1)
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4, const T5 &val5, const T6 &val6, const T7 &val7, const T8 &val8, const T9 &val9, const T10 &val10)
const TXChar * GetData() const
Definition GSString.cpp:1466
TXString & TrimLeftInvalidCharacter()
Definition GSString.cpp:1292
TXString & MakeReverse()
Definition GSString.cpp:1445
TXString()
Definition GSString.cpp:54
TXString & operator<<(const TXString &src)
Definition GSString.cpp:896
static bool IsWhitespace(TXChar aTXChar)
Definition GSString.cpp:2121
TXChar & GetAt(size_t nIndex)
Definition GSString.cpp:688
ptrdiff_t ReverseFind(const TXString &subStr, size_t posLast=-1, bool bIgnoreCase=false) const
Definition GSString.cpp:1784
TXString Mid(size_t nFirst, size_t len=-1) const
Definition GSString.cpp:1918
Sint32 Compare(const TXString &str) const
Definition GSString.cpp:2154
TXChar & GetLast()
Definition GSString.cpp:721
friend bool operator<(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2310
TXString Right(size_t len) const
Definition GSString.cpp:1943
size_t GetByteSize() const
Definition GSString.cpp:557
static TXString Formatted(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2, const T3 &val3, const T4 &val4)
Definition GSString.h:516
TXString & Format(const TXString &format, const T0 &val0, const T1 &val1, const T2 &val2)
static TXString ToStringReal(Real64 value)
Definition GSString.cpp:2088
static TXString ToStringHex(T value, bool upperCase=true, size_t symbolsCnt=size_t(-1))
TXString & MakeUpper()
Definition GSString.cpp:1385
Sint32 atoi() const
Definition GSString.cpp:2019
TXString & Insert(size_t pos, const TXString &src)
Definition GSString.cpp:1012
TXString & DeleteLast()
Definition GSString.cpp:1229
Sint32 CompareNoCase(const TXString &str) const
Definition GSString.cpp:2161
bool operator==(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2203
bool operator<=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2296
TXString operator+(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2317
bool operator>(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2303
void swap(TXString &lhs, TXString &rhs)
Definition GSString.cpp:2579
std::vector< TXString > TXStringArray
Definition GSString.h:547
std::basic_string< TXChar > StdUStr
Definition GSString.h:125
bool operator!=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2246
bool operator<(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2310
UniChar TXChar
Definition GSString.h:55
bool operator>=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2289
ETXEncoding
Definition GSString.h:39
Definition GSString.h:582