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
64 typedef size_t size_type;
65 typedef ptrdiff_t difference_type;
67 typedef const T* const_pointer;
69 typedef const T& const_reference;
75 typedef TXAlloc<U> other;
79 pointer address(reference value)
const {
return &value; }
80 const_pointer address(const_reference value)
const {
return &value; }
84 TXAlloc(
const TXAlloc&)
throw() {}
85 template <
typename U> TXAlloc(
const TXAlloc<U>&)
throw() {}
89 size_type max_size()
const throw() {
return (size_type)(-1) /
sizeof(T); }
92 pointer allocate(size_type num,
const void* hint = 0)
94 return (pointer)malloc(num *
sizeof(T));
98 void deallocate(pointer p, size_type)
104 void construct(pointer p, const_reference value) {
new (p) T(value); }
107 void destroy(pointer p) { p->~T(); }
109 inline bool operator==(TXAlloc
const&)
throw() {
return true; }
110 inline bool operator!=(TXAlloc
const&)
throw() {
return false; }
114bool operator==(
const TXAlloc<T>& lhs,
const TXAlloc<T>& rhs)
throw() {
118typedef std::basic_string<TXChar, std::char_traits<TXChar>, TXAlloc<TXChar>>
StdUStr;
121typedef std::basic_string<TXChar>
StdUStr;
157 explicit TXString(
size_t nInitialSize);
158 explicit TXString(
int nInitialSize);
170 TXString(
const wchar_t* src,
size_t len);
173 explicit TXString(
char ch,
size_t count = 1);
174 explicit TXString(
unsigned char ch,
size_t count = 1);
176 explicit TXString(
wchar_t ch,
size_t count = 1);
343 operator const char*()
const;
344 operator const unsigned char*()
const;
345 operator const UCChar*()
const;
346 operator const wchar_t*()
const;
349 const char*
GetCharPtr()
const {
return (
operator const char*()); }
350 const unsigned char*
GetUCharPtr()
const {
return (
operator const unsigned char*()); }
352 const wchar_t*
GetWCharPtr()
const {
return (
operator const wchar_t*()); }
359 CFStringRef GetCFStringRef()
const;
379 void CopyInto(
wchar_t* dst,
size_t bufElemSize)
const;
385 ptrdiff_t
Find(
const TXString &subStr,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
386 ptrdiff_t
Find(
int ch,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
387 ptrdiff_t
Find(
char ch,
size_t posFirst = 0,
bool bIgnoreCase =
false)
const;
389 ptrdiff_t
ReverseFind(
const TXString &subStr,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
390 ptrdiff_t
ReverseFind(
int ch,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
391 ptrdiff_t
ReverseFind(
char ch,
size_t posLast = -1,
bool bIgnoreCase =
false)
const;
402 TXString Mid(
size_t nFirst,
size_t len = -1)
const;
407 std::vector<TXString>
Split(
char ch)
const;
479 template<
typename T0>
481 template<
typename T0,
typename T1>
483 template<
typename T0,
typename T1,
typename T2>
485 template<
typename T0,
typename T1,
typename T2,
typename T3>
487 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4>
488 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4);
489 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
490 TXString&
Format(
const TXString& format,
const T0& val0,
const T1& val1,
const T2& val2,
const T3& val3,
const T4& val4,
const T5& val5);
491 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
492 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);
493 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
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,
const T7& val7);
495 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
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,
const T8& val8);
497 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9>
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,
const T9& val9);
499 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
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,
const T10& val10);
501 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>
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,
const T11& val11);
505 template<
typename T0>
507 template<
typename T0,
typename T1>
509 template<
typename T0,
typename T1,
typename T2>
511 template<
typename T0,
typename T1,
typename T2,
typename T3>
513 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4>
514 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); }
515 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
516 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); }
517 template<
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
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,
const T6& val6) {
return TXString().
Format(format, val0, val1, val2, val3, val4, val5, val6); }
524 size_t hash()
const {
return std::hash<std::u16string>{}(*(std::u16string*)(&stdUStr)); }
536 mutable char* charPtr;
537 mutable size_t charBufSize;
541 mutable std::wstring wStr;
int64_t Sint64
Definition GSTypes.h:37
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:132
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:518
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:349
const UCChar * GetUCCharPtr() const
Definition GSString.h:351
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:510
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:524
const wchar_t * GetWCharPtr() const
Definition GSString.h:352
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:350
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:516
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:506
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:508
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:512
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:514
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
char16_t TXChar
Definition GSString.h:53
void swap(TXString &lhs, TXString &rhs)
Definition GSString.cpp:2579
std::vector< TXString > TXStringArray
Definition GSString.h:545
std::basic_string< TXChar > StdUStr
Definition GSString.h:123
bool operator!=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2246
bool operator<(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2310
bool operator>=(const TXString &lhs, const TXString &rhs)
Definition GSString.cpp:2289
ETXEncoding
Definition GSString.h:39
@ eUnkown
Definition GSString.h:45
@ eUTF16
Definition GSString.h:44
@ eWinEncoded
Definition GSString.h:41
@ eMacEncoded
Definition GSString.h:40
@ eUTF8
Definition GSString.h:43
@ eSysEncoded
Definition GSString.h:42
Definition GSString.h:580
std::size_t operator()(const VectorworksMVR::TXString &s) const
Definition GSString.h:584