From 89360a8c873add3f68e05191d9311cc10a49442d Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Mon, 9 Apr 2007 08:18:33 +0000 Subject: [PATCH] string iterator's operator- should return difference_type, not size_t or unsigned git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/string.h | 8 ++++---- include/wx/stringimpl.h | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/wx/string.h b/include/wx/string.h index a39ea5636b..3cb68a0df4 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -638,7 +638,7 @@ public: iterator_name& operator-=(size_t n) \ { m_cur = wxString::AddToIter(m_cur, -(int)n); return *this; } \ \ - unsigned operator-(const iterator_name& i) const \ + difference_type operator-(const iterator_name& i) const \ { return wxString::DiffIters(m_cur, i.m_cur); } \ \ bool operator==(const iterator_name& i) const \ @@ -664,14 +664,14 @@ public: friend class WXDLLIMPEXP_BASE wxCStrData; \ \ private: \ - underlying_iterator m_cur; + underlying_iterator m_cur class const_iterator; class iterator { WX_STR_ITERATOR_IMPL(iterator, wxChar*, wxUniCharRef, - wxUniCharRef::CreateForString(m_cur)) + wxUniCharRef::CreateForString(m_cur)); friend class const_iterator; }; @@ -681,7 +681,7 @@ public: // NB: reference_type is intentionally value, not reference, the character // may be encoded differently in wxString data: WX_STR_ITERATOR_IMPL(const_iterator, const wxChar*, wxUniChar, - wxUniChar(*m_cur)) + wxUniChar(*m_cur)); public: const_iterator(const iterator& i) : m_cur(i.m_cur) {} diff --git a/include/wx/stringimpl.h b/include/wx/stringimpl.h index 04ff3e43a1..b680b52cf1 100644 --- a/include/wx/stringimpl.h +++ b/include/wx/stringimpl.h @@ -184,6 +184,7 @@ public: typedef wxStringCharType value_type; \ typedef ref_type reference; \ typedef ptr_type pointer; \ + typedef int difference_type; \ \ iterator_name(pointer ptr) : m_ptr(ptr) { } \ \ @@ -222,7 +223,7 @@ public: iterator_name& operator-=(size_t n) \ { m_ptr -= n; return *this; } \ \ - size_t operator-(const iterator_name& i) const \ + difference_type operator-(const iterator_name& i) const \ { return m_ptr - i.m_ptr; } \ \ bool operator==(const iterator_name& i) const \ @@ -271,6 +272,8 @@ public: const wxStringCharType*); }; + #undef WX_DEFINE_STRINGIMPL_ITERATOR + // constructors and destructor // ctor for an empty string -- 2.45.2