rendered paste body#pragma oncenamespace dg{ class String { public: /************************************************************************/ /* Constructors */ /************************************************************************/ String(); String(char ansiChar, const std::locale& locale = std::locale()); String(const char* ansiString, const std::locale& locale = std::locale()); String(const std::string& ansiString, const std::locale& locale = std::locale()); String(wchar_t wideChar); String(const wchar_t* wideString); String(const std::wstring& wideString); String(uint32_t utf32Char); String(const uint32_t* utf32String); String(const std::basic_string<uint32_t>& utf32String); /************************************************************************/ /* Conversions */ /************************************************************************/ std::string ToAnsiString(const std::locale& locale = std::locale()) const; operator std::string() const; std::wstring ToWideString() const; operator std::wstring() const; /************************************************************************/ /* Operator overloads */ /************************************************************************/ String& operator =(const String& right); String& operator +=(const String& right); uint32_t operator [](std::size_t index) const; uint32_t& operator [](std::size_t index); /************************************************************************/ /* Member functions */ /************************************************************************/ void Clear(); std::size_t GetSize() const; bool IsEmpty() const; void Erase(std::size_t position, std::size_t count = 1); void Insert(std::size_t position, const String& str); std::size_t Find(const String& str, std::size_t start = 0) const; const uint32_t* GetData() const; /************************************************************************/ /* Iteration */ /************************************************************************/ typedef std::basic_string<uint32_t>::iterator Iterator; Iterator Begin(); Iterator End(); typedef std::basic_string<uint32_t>::const_iterator ConstIterator; ConstIterator Begin() const; ConstIterator End() const; /************************************************************************/ /* Constants */ /************************************************************************/ static const std::size_t InvalidPos; private: std::basic_string<uint32_t> _data; }; /************************************************************************/ /* Comparison operators */ /************************************************************************/ bool operator ==(const String& left, const String& right); bool operator !=(const String& left, const String& right); bool operator <(const String& left, const String& right); bool operator >(const String& left, const String& right); bool operator <=(const String& left, const String& right); bool operator >=(const String& left, const String& right); String operator +(const String& left, const String& right);}