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
This commit is contained in:
Václav Slavík
2007-04-09 08:18:33 +00:00
parent 1bb592b878
commit 89360a8c87
2 changed files with 8 additions and 5 deletions

View File

@@ -638,7 +638,7 @@ public:
iterator_name& operator-=(size_t n) \ iterator_name& operator-=(size_t n) \
{ m_cur = wxString::AddToIter(m_cur, -(int)n); return *this; } \ { 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); } \ { return wxString::DiffIters(m_cur, i.m_cur); } \
\ \
bool operator==(const iterator_name& i) const \ bool operator==(const iterator_name& i) const \
@@ -664,14 +664,14 @@ public:
friend class WXDLLIMPEXP_BASE wxCStrData; \ friend class WXDLLIMPEXP_BASE wxCStrData; \
\ \
private: \ private: \
underlying_iterator m_cur; underlying_iterator m_cur
class const_iterator; class const_iterator;
class iterator class iterator
{ {
WX_STR_ITERATOR_IMPL(iterator, wxChar*, wxUniCharRef, WX_STR_ITERATOR_IMPL(iterator, wxChar*, wxUniCharRef,
wxUniCharRef::CreateForString(m_cur)) wxUniCharRef::CreateForString(m_cur));
friend class const_iterator; friend class const_iterator;
}; };
@@ -681,7 +681,7 @@ public:
// NB: reference_type is intentionally value, not reference, the character // NB: reference_type is intentionally value, not reference, the character
// may be encoded differently in wxString data: // may be encoded differently in wxString data:
WX_STR_ITERATOR_IMPL(const_iterator, const wxChar*, wxUniChar, WX_STR_ITERATOR_IMPL(const_iterator, const wxChar*, wxUniChar,
wxUniChar(*m_cur)) wxUniChar(*m_cur));
public: public:
const_iterator(const iterator& i) : m_cur(i.m_cur) {} const_iterator(const iterator& i) : m_cur(i.m_cur) {}

View File

@@ -184,6 +184,7 @@ public:
typedef wxStringCharType value_type; \ typedef wxStringCharType value_type; \
typedef ref_type reference; \ typedef ref_type reference; \
typedef ptr_type pointer; \ typedef ptr_type pointer; \
typedef int difference_type; \
\ \
iterator_name(pointer ptr) : m_ptr(ptr) { } \ iterator_name(pointer ptr) : m_ptr(ptr) { } \
\ \
@@ -222,7 +223,7 @@ public:
iterator_name& operator-=(size_t n) \ iterator_name& operator-=(size_t n) \
{ m_ptr -= n; return *this; } \ { 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; } \ { return m_ptr - i.m_ptr; } \
\ \
bool operator==(const iterator_name& i) const \ bool operator==(const iterator_name& i) const \
@@ -271,6 +272,8 @@ public:
const wxStringCharType*); const wxStringCharType*);
}; };
#undef WX_DEFINE_STRINGIMPL_ITERATOR
// constructors and destructor // constructors and destructor
// ctor for an empty string // ctor for an empty string