#ifndef _WX_WXSTRINGH__
#define _WX_WXSTRINGH__
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "string.h"
#endif
#include <ctype.h>
#endif
-#ifdef __EMX__
- #include <std.h>
-#endif
-
#if defined(__VISAGECPP__) && __IBMCPP__ >= 400
// problem in VACPP V4 with including stdlib.h multiple times
// strconv includes it anyway
#include "wx/afterstd.h"
#if wxUSE_UNICODE
- #if HAVE_STD_WSTRING
+ #ifdef HAVE_STD_WSTRING
typedef std::wstring wxStringBase;
#else
typedef std::basic_string<wxChar> wxStringBase;
#if !wxUSE_STL
friend class WXDLLIMPEXP_BASE wxArrayString;
#endif
+public :
+ // an 'invalid' value for string index, moved to this place due to a CW bug
+ static const size_t npos;
protected:
// points to data preceded by wxStringData structure with ref count info
wxChar *m_pchData;
typedef value_type *iterator;
typedef const value_type *const_iterator;
- // an 'invalid' value for string index
- static const size_t npos;
-
// constructors and destructor
// ctor for an empty string
wxStringBase() { Init(); }
size_t find(const wxChar* sz, size_t nStart = 0, size_t n = npos) const;
#endif // VC++ 1.5
- // Gives a duplicate symbol (presumably a case-insensitivity problem)
-#if !defined(__BORLANDC__)
// find the first occurence of character ch after nStart
size_t find(wxChar ch, size_t nStart = 0) const;
-#endif
+
// rfind() family is exactly like find() but works right to left
// as find, but from the end
{ return find_first_of(str.c_str(), nStart); }
// same as above
size_t find_first_of(const wxChar* sz, size_t nStart = 0) const;
+ size_t find_first_of(const wxChar* sz, size_t nStart, size_t n) const;
// same as find(char, size_t)
size_t find_first_of(wxChar c, size_t nStart = 0) const
{ return find(c, nStart); }
{ return find_last_of(str.c_str(), nStart); }
// same as above
size_t find_last_of (const wxChar* sz, size_t nStart = npos) const;
+ size_t find_last_of(const wxChar* sz, size_t nStart, size_t n) const;
// same as above
size_t find_last_of(wxChar c, size_t nStart = npos) const
{ return rfind(c, nStart); }
{ return find_first_not_of(str.c_str(), nStart); }
// same as above
size_t find_first_not_of(const wxChar* sz, size_t nStart = 0) const;
+ size_t find_first_not_of(const wxChar* sz, size_t nStart, size_t n) const;
// same as above
size_t find_first_not_of(wxChar ch, size_t nStart = 0) const;
// as strcspn()
size_t find_last_not_of(const wxStringBase& str, size_t nStart = npos) const
- { return find_first_not_of(str.c_str(), nStart); }
+ { return find_last_not_of(str.c_str(), nStart); }
// same as above
size_t find_last_not_of(const wxChar* sz, size_t nStart = npos) const;
+ size_t find_last_not_of(const wxChar* sz, size_t nStart, size_t n) const;
// same as above
size_t find_last_not_of(wxChar ch, size_t nStart = npos) const;
#ifndef wxSIZE_T_IS_UINT
// operator version of GetChar
wxChar operator[](unsigned int n) const
- { return operator[](n); }
+ { return wxStringBase::operator[](n); }
// operator version of GetWriteableChar
wxChar& operator[](unsigned int n)
- { return operator[](n); }
+ { return wxStringBase::operator[](n); }
#endif // size_t != unsigned int
// implicit conversion to C string