X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d545bdede67c1f4335e6b4822dfcad3775f631fc..72ac4e888aff9b766216f96cc090b051a7f52188:/include/wx/stringimpl.h?ds=inline diff --git a/include/wx/stringimpl.h b/include/wx/stringimpl.h index 7ac70a6c5e..f3cd17cec2 100644 --- a/include/wx/stringimpl.h +++ b/include/wx/stringimpl.h @@ -53,7 +53,18 @@ extern WXDLLIMPEXP_DATA_BASE(const wxStringCharType*) wxEmptyStringImpl; // deal with STL/non-STL/non-STL-but-wxUSE_STD_STRING // ---------------------------------------------------------------------------- -#define wxUSE_STL_BASED_WXSTRING wxUSE_STL +// using STL implies using std::string +#if wxUSE_STL + #undef wxUSE_STD_STRING + #define wxUSE_STD_STRING 1 +#endif + +// we use STL-based string internally if we use std::string at all now, there +// should be no reason to prefer our internal implement but if you really need +// it you can predefine wxUSE_STL_BASED_WXSTRING as 0 when building the library +#ifndef wxUSE_STL_BASED_WXSTRING + #define wxUSE_STL_BASED_WXSTRING wxUSE_STD_STRING +#endif // in both cases we need to define wxStdString #if wxUSE_STL_BASED_WXSTRING || wxUSE_STD_STRING @@ -219,21 +230,13 @@ public: return tmp; \ } \ \ - iterator_name operator+(int n) const \ + iterator_name operator+(ptrdiff_t n) const \ { return iterator_name(m_ptr + n); } \ - iterator_name operator+(size_t n) const \ - { return iterator_name(m_ptr + n); } \ - iterator_name operator-(int n) const \ - { return iterator_name(m_ptr - n); } \ - iterator_name operator-(size_t n) const \ + iterator_name operator-(ptrdiff_t n) const \ { return iterator_name(m_ptr - n); } \ - iterator_name& operator+=(int n) \ + iterator_name& operator+=(ptrdiff_t n) \ { m_ptr += n; return *this; } \ - iterator_name& operator+=(size_t n) \ - { m_ptr += n; return *this; } \ - iterator_name& operator-=(int n) \ - { m_ptr -= n; return *this; } \ - iterator_name& operator-=(size_t n) \ + iterator_name& operator-=(ptrdiff_t n) \ { m_ptr -= n; return *this; } \ \ difference_type operator-(const iterator_name& i) const \ @@ -255,7 +258,7 @@ public: \ private: \ /* for wxStringImpl use only */ \ - operator pointer() const { return m_ptr; } \ + pointer GetPtr() const { return m_ptr; } \ \ friend class wxStringImpl; \ \ @@ -409,7 +412,7 @@ public: wxStringImpl& append(size_t n, wxStringCharType ch); // append from first to last wxStringImpl& append(const_iterator first, const_iterator last) - { ConcatSelf(last - first, first); return *this; } + { ConcatSelf(last - first, first.GetPtr()); return *this; } // same as `this_string = str' wxStringImpl& assign(const wxStringImpl& str) @@ -459,7 +462,7 @@ public: iterator insert(iterator it, wxStringCharType ch) { size_t idx = it - begin(); insert(idx, 1, ch); return begin() + idx; } void insert(iterator it, const_iterator first, const_iterator last) - { insert(it - begin(), first, last - first); } + { insert(it - begin(), first.GetPtr(), last - first); } void insert(iterator it, size_type n, wxStringCharType ch) { insert(it - begin(), n, ch); } @@ -506,7 +509,7 @@ public: { return replace(first - begin(), last - first, n, c); } wxStringImpl& replace(iterator first, iterator last, const_iterator first1, const_iterator last1) - { return replace(first - begin(), last - first, first1, last1 - first1); } + { return replace(first - begin(), last - first, first1.GetPtr(), last1 - first1); } // swap two strings void swap(wxStringImpl& str);