// constants
// ----------------------------------------------------------------------------
+#if WXWIN_COMPATIBILITY_2_6
+
+// deprecated in favour of wxString::npos, don't use in new code
+//
// maximum possible length for a string means "take all string" everywhere
#define wxSTRING_MAXLEN wxStringBase::npos
+#endif // WXWIN_COMPATIBILITY_2_6
+
// ----------------------------------------------------------------------------
// global data
// ----------------------------------------------------------------------------
// deal with STL/non-STL/non-STL-but-wxUSE_STD_STRING
// ----------------------------------------------------------------------------
+#if wxUSE_STL || wxUSE_STD_STRING
+ // these compilers come without standard C++ library headers by default,
+ // remove the tests here if you do have them (e.g. from STLPort)
+ #if defined(__DMC__) || defined(__WATCOMC__)
+ #undef wxUSE_STL
+ #undef wxUSE_STD_STRING
+ #define wxUSE_STL 0
+ #define wxUSE_STD_STRING 0
+ #endif
+#endif // wxUSE_STL || wxUSE_STD_STRING
+
// in both cases we need to define wxStdString
#if wxUSE_STL || wxUSE_STD_STRING
iterator_type base() const { return m_cur; } \
\
reference operator*() const { return *(m_cur - 1); } \
- pointer operator->() const { return m_cur - 1; } \
\
name& operator++() { --m_cur; return *this; } \
name operator++(int) { name tmp = *this; --m_cur; return tmp; } \
// return the length of the string
size_type size() const { return length(); }
// return the maximum size of the string
- size_type max_size() const { return wxSTRING_MAXLEN; }
+ size_type max_size() const { return npos; }
// resize the string, filling the space with c if c != 0
void resize(size_t nSize, wxChar ch = wxT('\0'));
// delete the contents of the string
wxString operator()(size_t start, size_t len) const
{ return Mid(start, len); }
- // check that the string starts with prefix and return the rest of the
- // string in the provided pointer if it is not NULL, otherwise return
- // false
+ // check if the string starts with the given prefix and return the rest
+ // of the string in the provided pointer if it is not NULL; otherwise
+ // return false
bool StartsWith(const wxChar *prefix, wxString *rest = NULL) const;
+ // check if the string ends with the given suffix and return the
+ // beginning of the string before the suffix in the provided pointer if
+ // it is not NULL; otherwise return false
+ bool EndsWith(const wxChar *suffix, wxString *rest = NULL) const;
// get first nCount characters
wxString Left(size_t nCount) const;
bool ToLong(long *val, int base = 10) const;
// convert to an unsigned integer
bool ToULong(unsigned long *val, int base = 10) const;
+ // convert to wxLongLong
+#if defined(wxLongLong_t)
+ bool ToLongLong(wxLongLong_t *val, int base = 10) const;
+ // convert to wxULongLong
+ bool ToULongLong(wxULongLong_t *val, int base = 10) const;
+#endif // wxLongLong_t
// convert to a double
bool ToDouble(double *val) const;
+
+
// formatted input/output
// as sprintf(), returns the number of characters written or < 0 on error
// (take 'this' into account in attribute parameter count)
#include "wx/iosfwrap.h"
-WXDLLIMPEXP_BASE wxSTD istream& operator>>(wxSTD istream&, wxString&);
WXDLLIMPEXP_BASE wxSTD ostream& operator<<(wxSTD ostream&, const wxString&);
#endif // wxSTD_STRING_COMPATIBILITY