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
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]; }
//@}
//@}
+ /** @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 */
//@{
/**
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; }
//@}
# endif
#endif
-istream& WXDLLEXPORT operator>>(istream& is, wxString& str);
+WXDLLEXPORT istream& operator>>(istream& is, wxString& str);
#endif //std::string compatibility