mirror of
https://github.com/boostorg/container.git
synced 2025-08-02 05:54:28 +02:00
Add assertions to invalid operations.
This commit is contained in:
@@ -122,42 +122,42 @@ class vec_iterator
|
||||
|
||||
//Pointer like operators
|
||||
BOOST_CONTAINER_FORCEINLINE reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return *m_ptr; }
|
||||
{ BOOST_ASSERT(!!m_ptr); return *m_ptr; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return ::boost::intrusive::pointer_traits<pointer>::pointer_to(this->operator*()); }
|
||||
{ return m_ptr; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return m_ptr[off]; }
|
||||
{ BOOST_ASSERT(!!m_ptr); return m_ptr[off]; }
|
||||
|
||||
//Increment / Decrement
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ ++m_ptr; return *this; }
|
||||
{ BOOST_ASSERT(!!m_ptr); ++m_ptr; return *this; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return vec_iterator(m_ptr++); }
|
||||
{ BOOST_ASSERT(!!m_ptr); return vec_iterator(m_ptr++); }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ --m_ptr; return *this; }
|
||||
{ BOOST_ASSERT(!!m_ptr); --m_ptr; return *this; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return vec_iterator(m_ptr--); }
|
||||
{ BOOST_ASSERT(!!m_ptr); return vec_iterator(m_ptr--); }
|
||||
|
||||
//Arithmetic
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator+=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ m_ptr += off; return *this; }
|
||||
{ BOOST_ASSERT(!!m_ptr); m_ptr += off; return *this; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ m_ptr -= off; return *this; }
|
||||
{ BOOST_ASSERT(!!m_ptr); m_ptr -= off; return *this; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return vec_iterator(x.m_ptr+off); }
|
||||
{ BOOST_ASSERT(!!x.m_ptr); return vec_iterator(x.m_ptr+off); }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ right.m_ptr += off; return right; }
|
||||
{ BOOST_ASSERT(!!right.m_ptr); right.m_ptr += off; return right; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ left.m_ptr -= off; return left; }
|
||||
{ BOOST_ASSERT(!!left.m_ptr); left.m_ptr -= off; return left; }
|
||||
|
||||
BOOST_CONTAINER_FORCEINLINE friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
|
||||
{ return left.m_ptr - right.m_ptr; }
|
||||
|
Reference in New Issue
Block a user