diff --git a/include/boost/container/stable_vector.hpp b/include/boost/container/stable_vector.hpp index 691cf58..c952421 100644 --- a/include/boost/container/stable_vector.hpp +++ b/include/boost/container/stable_vector.hpp @@ -131,7 +131,7 @@ struct node }; template -class iterator +class iterator_vs { typedef boost::intrusive::pointer_traits non_const_ptr_traits; public: @@ -168,14 +168,14 @@ class iterator public: - explicit iterator(node_ptr p) BOOST_CONTAINER_NOEXCEPT + explicit iterator_vs(node_ptr p) BOOST_CONTAINER_NOEXCEPT : m_pn(p) {} - iterator() BOOST_CONTAINER_NOEXCEPT + iterator_vs() BOOST_CONTAINER_NOEXCEPT {} - iterator(iterator const& other) BOOST_CONTAINER_NOEXCEPT + iterator_vs(iterator_vs const& other) BOOST_CONTAINER_NOEXCEPT : m_pn(other.node_pointer()) {} @@ -197,7 +197,7 @@ class iterator } //Increment / Decrement - iterator& operator++() BOOST_CONTAINER_NOEXCEPT + iterator_vs& operator++() BOOST_CONTAINER_NOEXCEPT { if(node_base_ptr_ptr p = this->m_pn->up){ ++p; @@ -206,10 +206,10 @@ class iterator return *this; } - iterator operator++(int) BOOST_CONTAINER_NOEXCEPT - { iterator tmp(*this); ++*this; return iterator(tmp); } + iterator_vs operator++(int) BOOST_CONTAINER_NOEXCEPT + { iterator_vs tmp(*this); ++*this; return iterator_vs(tmp); } - iterator& operator--() BOOST_CONTAINER_NOEXCEPT + iterator_vs& operator--() BOOST_CONTAINER_NOEXCEPT { if(node_base_ptr_ptr p = this->m_pn->up){ --p; @@ -218,17 +218,17 @@ class iterator return *this; } - iterator operator--(int) BOOST_CONTAINER_NOEXCEPT - { iterator tmp(*this); --*this; return iterator(tmp); } + iterator_vs operator--(int) BOOST_CONTAINER_NOEXCEPT + { iterator_vs tmp(*this); --*this; return iterator_vs(tmp); } reference operator[](difference_type off) const BOOST_CONTAINER_NOEXCEPT { - iterator tmp(*this); + iterator_vs tmp(*this); tmp += off; return *tmp; } - iterator& operator+=(difference_type off) BOOST_CONTAINER_NOEXCEPT + iterator_vs& operator+=(difference_type off) BOOST_CONTAINER_NOEXCEPT { if(node_base_ptr_ptr p = this->m_pn->up){ p += off; @@ -237,50 +237,50 @@ class iterator return *this; } - friend iterator operator+(const iterator &left, difference_type off) BOOST_CONTAINER_NOEXCEPT + friend iterator_vs operator+(const iterator_vs &left, difference_type off) BOOST_CONTAINER_NOEXCEPT { - iterator tmp(left); + iterator_vs tmp(left); tmp += off; return tmp; } - friend iterator operator+(difference_type off, const iterator& right) BOOST_CONTAINER_NOEXCEPT + friend iterator_vs operator+(difference_type off, const iterator_vs& right) BOOST_CONTAINER_NOEXCEPT { - iterator tmp(right); + iterator_vs tmp(right); tmp += off; return tmp; } - iterator& operator-=(difference_type off) BOOST_CONTAINER_NOEXCEPT + iterator_vs& operator-=(difference_type off) BOOST_CONTAINER_NOEXCEPT { *this += -off; return *this; } - friend iterator operator-(const iterator &left, difference_type off) BOOST_CONTAINER_NOEXCEPT + friend iterator_vs operator-(const iterator_vs &left, difference_type off) BOOST_CONTAINER_NOEXCEPT { - iterator tmp(left); + iterator_vs tmp(left); tmp -= off; return tmp; } - friend difference_type operator-(const iterator& left, const iterator& right) BOOST_CONTAINER_NOEXCEPT + friend difference_type operator-(const iterator_vs& left, const iterator_vs& right) BOOST_CONTAINER_NOEXCEPT { return left.m_pn->up - right.m_pn->up; } //Comparison operators - friend bool operator== (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator== (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn == r.m_pn; } - friend bool operator!= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator!= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn != r.m_pn; } - friend bool operator< (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator< (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn->up < r.m_pn->up; } - friend bool operator<= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator<= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn->up <= r.m_pn->up; } - friend bool operator> (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator> (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn->up > r.m_pn->up; } - friend bool operator>= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT + friend bool operator>= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT { return l.m_pn->up >= r.m_pn->up; } }; @@ -501,10 +501,10 @@ class stable_vector { allocator_version_traits_t::deallocate_individual(this->priv_node_alloc(), holder); } friend class stable_vector_detail::clear_on_destroy; - typedef stable_vector_detail::iterator + typedef stable_vector_detail::iterator_vs < typename allocator_traits::pointer , false> iterator_impl; - typedef stable_vector_detail::iterator + typedef stable_vector_detail::iterator_vs < typename allocator_traits::pointer , false> const_iterator_impl; #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED