X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fbc535ff084f61ec376f339c515d96d74065c18b..caaa4cfd6779b689d6723e06df23cc23d1799fd3:/include/wx/string.h diff --git a/include/wx/string.h b/include/wx/string.h index 94ef9cb88e..474f23d3b6 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -257,14 +257,23 @@ public: size_t Len() const { return GetStringData()->nDataLength; } /// string contains any characters? bool IsEmpty() const { return Len() == 0; } - /// reinitialize string (and free memory) + /// empty string contents void Empty() { if ( !IsEmpty() ) Reinit(); + // should be empty wxASSERT( GetStringData()->nDataLength == 0 ); - wxASSERT( GetStringData()->nAllocLength == 0 ); + } + /// empty the string and free memory + void Clear() + { + if ( !GetStringData()->IsEmpty() ) + Reinit(); + + wxASSERT( GetStringData()->nDataLength == 0 ); // should be empty + wxASSERT( GetStringData()->nAllocLength == 0 ); // and not own any memory } /// Is an ascii value @@ -294,9 +303,12 @@ public: char& Last() { wxASSERT( !IsEmpty() ); CopyBeforeWrite(); return m_pchData[Len()-1]; } + // on alpha-linux this gives overload problems: +#if ! defined(__ALPHA__) /// operator version of GetChar char operator[](size_t n) const { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } +#endif /// operator version of GetChar char operator[](int n) const { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } @@ -360,18 +372,28 @@ public: /** @name return resulting string */ //@{ /// - friend wxString operator+(const wxString& string1, const wxString& string2); + friend wxString WXDLLEXPORT operator+(const wxString& string1, const wxString& string2); /// - friend wxString operator+(const wxString& string, char ch); + friend wxString WXDLLEXPORT operator+(const wxString& string, char ch); /// - friend wxString operator+(char ch, const wxString& string); + friend wxString WXDLLEXPORT operator+(char ch, const wxString& string); /// - friend wxString operator+(const wxString& string, const char *psz); + friend wxString WXDLLEXPORT operator+(const wxString& string, const char *psz); /// - friend wxString operator+(const char *psz, const wxString& string); + friend wxString WXDLLEXPORT operator+(const char *psz, const wxString& string); //@} //@} + /** @name stream-like functions */ + //@{ + /// insert an int into string + wxString& operator<<(int i); + /// insert a float into string + wxString& operator<<(float f); + /// insert a double into string + wxString& operator<<(double d); + //@} + /** @name string comparison */ //@{ /** @@ -686,7 +708,7 @@ public: size_t find(char ch, size_t nStart = 0) const; // wxWin compatibility - inline bool Contains(const wxString& str) { return Find(str) != -1; } + inline bool Contains(const wxString& str) const { return Find(str) != -1; } //@} @@ -909,6 +931,11 @@ inline bool operator>=(const wxString& s1, const char * s2) { return s1.Cmp(s2) /// inline bool operator>=(const char * s1, const wxString& s2) { return s2.Cmp(s1) <= 0; } //@} +wxString WXDLLEXPORT operator+(const wxString& string1, const wxString& string2); +wxString WXDLLEXPORT operator+(const wxString& string, char ch); +wxString WXDLLEXPORT operator+(char ch, const wxString& string); +wxString WXDLLEXPORT operator+(const wxString& string, const char *psz); +wxString WXDLLEXPORT operator+(const char *psz, const wxString& string); // --------------------------------------------------------------------------- /** @name Global functions complementing standard C string library @@ -923,7 +950,8 @@ inline bool operator>=(const char * s1, const wxString& s2) { return s2.Cmp(s1) // replacing with includes (on advice of ungod@pasdex.com.au) // class WXDLLEXPORT istream; #if wxUSE_IOSTREAMH -#include +// N.B. BC++ doesn't have istream.h, ostream.h +#include #else #include # ifdef _MSC_VER @@ -931,7 +959,7 @@ inline bool operator>=(const char * s1, const wxString& s2) { return s2.Cmp(s1) # endif #endif -istream& WXDLLEXPORT operator>>(istream& is, wxString& str); +WXDLLEXPORT istream& operator>>(istream& is, wxString& str); #endif //std::string compatibility