From: Christian P. <cp...@us...> - 2004-12-27 07:00:40
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Unicode In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9925/include/pclasses/Unicode Modified Files: String.h Log Message: Added String::utf8(), added String::ConstIterator, added std::string support. Index: String.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Unicode/String.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- String.h 23 Dec 2004 04:32:17 -0000 1.1 +++ String.h 27 Dec 2004 07:00:31 -0000 1.2 @@ -27,6 +27,8 @@ #include <pclasses/ScopedArrayPtr.h> #include <pclasses/Unicode/Char.h> +#include <string> + namespace P { namespace Unicode { @@ -41,6 +43,7 @@ String(const String& str) throw(OutOfMemory); String(const char* str, size_t count = npos) throw(OutOfMemory); String(const wchar_t* str, size_t count = npos) throw(OutOfMemory); + String(const std::string& str); ~String() throw(); void swap(String& b); @@ -82,8 +85,34 @@ Char* _current; }; + class ConstIterator { + public: + ConstIterator(const Char* current); + ConstIterator(const ConstIterator& iter); + ~ConstIterator(); + + const Char& operator*() const; + + ConstIterator& operator++(); + ConstIterator operator++(int); + + ConstIterator& operator--(); + ConstIterator operator--(int); + + ConstIterator& operator=(const ConstIterator& iter); + + bool operator==(const ConstIterator& iter) const; + bool operator!=(const ConstIterator& iter) const; + + private: + const Char* _current; + }; + Iterator begin(); + ConstIterator begin() const; + Iterator end(); + ConstIterator end() const; void insert(const Iterator& pos, const Char& ch); void insert(size_t pos, const Char& ch); @@ -100,9 +129,14 @@ void prepend(const Char& ch); void prepend(const String& str); + std::string utf8() const; + + String deepCopy() const; + String& operator=(const String& str); String& operator=(const char* str); String& operator=(const wchar_t* str); + String& operator=(const std::string& str); Char& operator[](ptrdiff_t pos) throw(OutOfMemory, OutOfBounds); @@ -131,8 +165,6 @@ String(const String& str, size_t offset, size_t length) throw(OutOfMemory); - //! Make string unique (not shared) - void makeUnique() const throw(OutOfMemory); Char* data() const throw(); void resize(size_t sz, size_t holeOffset, size_t holeLen) throw(OutOfMemory); |