diff --git a/include/wx/vector.h b/include/wx/vector.h index e05920f985..771b25bc0a 100644 --- a/include/wx/vector.h +++ b/include/wx/vector.h @@ -198,7 +198,7 @@ public: reference operator*() const { return *m_ptr; } pointer operator->() const { return m_ptr; } - iterator base() const { return m_ptr; } + iterator base() const { return m_ptr + 1; } reverse_iterator& operator++() { --m_ptr; return *this; } @@ -261,7 +261,7 @@ public: const_reference operator*() const { return *m_ptr; } const_pointer operator->() const { return m_ptr; } - const_iterator base() const { return m_ptr; } + const_iterator base() const { return m_ptr + 1; } const_reverse_iterator& operator++() { --m_ptr; return *this; } diff --git a/tests/vectors/vectors.cpp b/tests/vectors/vectors.cpp index 5c393afbb8..056b9303e6 100644 --- a/tests/vectors/vectors.cpp +++ b/tests/vectors/vectors.cpp @@ -334,6 +334,10 @@ TEST_CASE("wxVector::reverse_iterator", "[vector][reverse_iterator]") CHECK( ri < re ); CHECK( ri <= re ); + CHECK( rb.base() == v.end() ); + CHECK( re.base() == v.begin() ); + CHECK( *ri.base() == 9 ); + #if wxUSE_STD_CONTAINERS_COMPATIBLY std::vector stdvec(rb, re); REQUIRE( stdvec.size() == 10 );