ManaPlus
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
mse::msevector< _Ty, _A >::ss_iterator_type Class Reference

#include <msemsevector.h>

Inheritance diagram for mse::msevector< _Ty, _A >::ss_iterator_type:
mse::msevector< _Ty, _A >::random_access_iterator_base

Public Types

typedef base_class::iterator::iterator_category iterator_category
 
typedef base_class::iterator::value_type value_type
 
typedef _Myt::difference_type difference_type
 
typedef difference_type distance_type
 
typedef base_class::iterator::pointer pointer
 
typedef base_class::iterator::reference reference
 

Public Member Functions

 ss_iterator_type ()
 
void reset ()
 
bool points_to_an_item () const
 
bool points_to_end_marker () const
 
bool points_to_beginning () const
 
bool has_next_item_or_end_marker () const
 
bool has_next () const
 
bool has_previous () const
 
void set_to_beginning ()
 
void set_to_end_marker ()
 
void set_to_next ()
 
void set_to_previous ()
 
ss_iterator_typeoperator++ ()
 
ss_iterator_type operator++ (int)
 
ss_iterator_typeoperator-- ()
 
ss_iterator_type operator-- (int)
 
void advance (difference_type n)
 
void regress (difference_type n)
 
ss_iterator_typeoperator+= (difference_type n)
 
ss_iterator_typeoperator-= (difference_type n)
 
ss_iterator_type operator+ (difference_type n) const
 
ss_iterator_type operator- (difference_type n) const
 
difference_type operator- (const ss_iterator_type &rhs) const
 
reference operator* () const
 
reference item () const
 
reference previous_item () const
 
pointer operator-> () const
 
reference operator[] (difference_type _Off) const
 
ss_iterator_typeoperator= (const ss_iterator_type &_Right_cref)
 
bool operator== (const ss_iterator_type &_Right_cref) const
 
bool operator!= (const ss_iterator_type &_Right_cref) const
 
bool operator< (const ss_iterator_type &_Right) const
 
bool operator<= (const ss_iterator_type &_Right) const
 
bool operator> (const ss_iterator_type &_Right) const
 
bool operator>= (const ss_iterator_type &_Right) const
 
void set_to_item_pointer (const ss_iterator_type &_Right_cref)
 
void invalidate_inclusive_range (msev_size_t index_of_first, msev_size_t index_of_last)
 
void shift_inclusive_range (msev_size_t index_of_first, msev_size_t index_of_last, msev_int shift)
 
msev_size_t position () const
 
 operator ss_const_iterator_type () const
 
 operator typename base_class::iterator () const
 

Private Member Functions

void sync_iterator_to_index ()
 

Private Attributes

msev_size_t m_index = 0
 
msev_pointer< _Mytm_owner_ptr = nullptr
 

Friends

class msevector< _Ty, _A >
 

Detailed Description

template<class _Ty, class _A = std::allocator<_Ty>>
class mse::msevector< _Ty, _A >::ss_iterator_type

Definition at line 2009 of file msemsevector.h.

Member Typedef Documentation

◆ difference_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _Myt::difference_type mse::msevector< _Ty, _A >::ss_iterator_type::difference_type

Definition at line 2014 of file msemsevector.h.

◆ distance_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef difference_type mse::msevector< _Ty, _A >::ss_iterator_type::distance_type

Definition at line 2015 of file msemsevector.h.

◆ iterator_category

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::iterator::iterator_category mse::msevector< _Ty, _A >::ss_iterator_type::iterator_category

Definition at line 2011 of file msemsevector.h.

◆ pointer

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::iterator::pointer mse::msevector< _Ty, _A >::ss_iterator_type::pointer

Definition at line 2016 of file msemsevector.h.

◆ reference

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::iterator::reference mse::msevector< _Ty, _A >::ss_iterator_type::reference

Definition at line 2017 of file msemsevector.h.

◆ value_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::iterator::value_type mse::msevector< _Ty, _A >::ss_iterator_type::value_type

Definition at line 2012 of file msemsevector.h.

Constructor & Destructor Documentation

◆ ss_iterator_type()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::msevector< _Ty, _A >::ss_iterator_type::ss_iterator_type ( )
inline

Definition at line 2019 of file msemsevector.h.

2019 {}

Member Function Documentation

◆ advance()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::advance ( difference_type  n)
inline

Definition at line 2079 of file msemsevector.h.

2079  {
2080  auto new_index = msev_int(m_index) + n;
2081  if ((0 > new_index) || (m_owner_ptr->size() < msev_size_t(new_index))) {
2082  MSE_THROW(msevector_range_error("index out of range - void advance(difference_type n) - ss_iterator_type - msevector"));
2083  }
2084  else {
2085  m_index = msev_size_t(new_index);
2086  }
2087  }
msev_pointer< _Myt > m_owner_ptr
#define MSE_THROW(x)
Definition: msemsevector.h:44
long int msev_int
Definition: msemsevector.h:62
size_t msev_size_t
Definition: msemsevector.h:61

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

Referenced by mse::mstd::vector< _Ty, _A >::iterator::advance(), mse::msevector< _Ty, _A >::emplace(), mse::msevector< _Ty, _A >::erase(), mse::msevector< _Ty, _A >::insert_before(), mse::msevector< _Ty, _A >::ss_iterator_type::operator+(), mse::msevector< _Ty, _A >::ss_iterator_type::operator+=(), and mse::msevector< _Ty, _A >::ss_iterator_type::regress().

◆ has_next()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::has_next ( ) const
inline

◆ has_next_item_or_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::has_next_item_or_end_marker ( ) const
inline

◆ has_previous()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::has_previous ( ) const
inline

Definition at line 2043 of file msemsevector.h.

2043  {
2044  if (m_owner_ptr->size() < m_index) {
2045  MSE_THROW(msevector_range_error("attempt to use invalid ss_iterator_type - bool has_previous() const - ss_iterator_type - msevector"));
2046  } else if (1 <= m_index) {
2047  return true;
2048  }
2049  else {
2050  return false;
2051  }
2052  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

Referenced by mse::mstd::vector< _Ty, _A >::iterator::has_previous(), and mse::msevector< _Ty, _A >::ss_iterator_type::set_to_previous().

◆ invalidate_inclusive_range()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::invalidate_inclusive_range ( msev_size_t  index_of_first,
msev_size_t  index_of_last 
)
inline

Definition at line 2152 of file msemsevector.h.

2152  {
2153  if ((index_of_first <= (*this).m_index) && (index_of_last >= (*this).m_index)) {
2154  (*this).reset();
2155  }
2156  }

◆ item()

template<class _Ty , class _A = std::allocator<_Ty>>
reference mse::msevector< _Ty, _A >::ss_iterator_type::item ( ) const
inline

Definition at line 2107 of file msemsevector.h.

2107 { return operator*(); }

References mse::msevector< _Ty, _A >::ss_iterator_type::operator*().

◆ operator ss_const_iterator_type()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::msevector< _Ty, _A >::ss_iterator_type::operator ss_const_iterator_type ( ) const
inline

Definition at line 2172 of file msemsevector.h.

2172  {
2173  ss_const_iterator_type retval;
2174  if (nullptr != m_owner_ptr) {
2175  retval = m_owner_ptr->ss_cbegin();
2176  retval.advance(msev_int(m_index));
2177  }
2178  return retval;
2179  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::advance(), mse::msevector< _Ty, _A >::ss_iterator_type::m_index, and mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr.

◆ operator typename base_class::iterator()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::msevector< _Ty, _A >::ss_iterator_type::operator typename base_class::iterator ( ) const
inline

Definition at line 2180 of file msemsevector.h.

2180  {
2181  typename base_class::iterator retval = (*m_owner_ptr).begin();
2182  retval += msev_as_a_size_t(m_index);
2183  return retval;
2184  }
size_t msev_as_a_size_t
Definition: msemsevector.h:64

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index.

◆ operator!=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator!= ( const ss_iterator_type _Right_cref) const
inline

Definition at line 2141 of file msemsevector.h.

2141 { return (!(_Right_cref == (*this))); }

◆ operator*()

template<class _Ty , class _A = std::allocator<_Ty>>
reference mse::msevector< _Ty, _A >::ss_iterator_type::operator* ( ) const
inline

Definition at line 2104 of file msemsevector.h.

2104  {
2105  return (*m_owner_ptr).at(msev_as_a_size_t((*this).m_index));
2106  }

Referenced by mse::msevector< _Ty, _A >::ss_iterator_type::item().

◆ operator+()

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type mse::msevector< _Ty, _A >::ss_iterator_type::operator+ ( difference_type  n) const
inline

Definition at line 2091 of file msemsevector.h.

2091  {
2092  ss_iterator_type retval; retval.m_owner_ptr = m_owner_ptr;
2093  retval = (*this);
2094  retval.advance(n);
2095  return retval;
2096  }

References mse::msevector< _Ty, _A >::ss_iterator_type::advance(), and mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr.

◆ operator++() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type& mse::msevector< _Ty, _A >::ss_iterator_type::operator++ ( )
inline

Definition at line 2075 of file msemsevector.h.

2075 { (*this).set_to_next(); return (*this); }

References mse::msevector< _Ty, _A >::ss_iterator_type::set_to_next().

◆ operator++() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type mse::msevector< _Ty, _A >::ss_iterator_type::operator++ ( int  )
inline

Definition at line 2076 of file msemsevector.h.

2076 { ss_iterator_type _Tmp = *this; (*this).set_to_next(); return (_Tmp); }

References mse::msevector< _Ty, _A >::ss_iterator_type::set_to_next().

◆ operator+=()

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type& mse::msevector< _Ty, _A >::ss_iterator_type::operator+= ( difference_type  n)
inline

Definition at line 2089 of file msemsevector.h.

2089 { (*this).advance(n); return (*this); }

References mse::msevector< _Ty, _A >::ss_iterator_type::advance().

◆ operator-() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
difference_type mse::msevector< _Ty, _A >::ss_iterator_type::operator- ( const ss_iterator_type rhs) const
inline

Definition at line 2098 of file msemsevector.h.

2098  {
2099  if (rhs.m_owner_ptr != (*this).m_owner_ptr) { MSE_THROW(msevector_range_error("invalid argument - difference_type operator-(const ss_iterator_type& rhs) const - msevector::ss_iterator_type")); }
2100  auto retval = difference_type((*this).m_index) - difference_type(rhs.m_index);
2101  assert(int((*m_owner_ptr).size()) >= retval);
2102  return retval;
2103  }
_Myt::difference_type difference_type

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

◆ operator-() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type mse::msevector< _Ty, _A >::ss_iterator_type::operator- ( difference_type  n) const
inline

Definition at line 2097 of file msemsevector.h.

2097 { return ((*this) + (-n)); }

◆ operator--() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type& mse::msevector< _Ty, _A >::ss_iterator_type::operator-- ( )
inline

Definition at line 2077 of file msemsevector.h.

2077 { (*this).set_to_previous(); return (*this); }

References mse::msevector< _Ty, _A >::ss_iterator_type::set_to_previous().

◆ operator--() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type mse::msevector< _Ty, _A >::ss_iterator_type::operator-- ( int  )
inline

Definition at line 2078 of file msemsevector.h.

2078 { ss_iterator_type _Tmp = *this; (*this).set_to_previous(); return (_Tmp); }

References mse::msevector< _Ty, _A >::ss_iterator_type::set_to_previous().

◆ operator-=()

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type& mse::msevector< _Ty, _A >::ss_iterator_type::operator-= ( difference_type  n)
inline

Definition at line 2090 of file msemsevector.h.

2090 { (*this).regress(n); return (*this); }

References mse::msevector< _Ty, _A >::ss_iterator_type::regress().

◆ operator->()

template<class _Ty , class _A = std::allocator<_Ty>>
pointer mse::msevector< _Ty, _A >::ss_iterator_type::operator-> ( ) const
inline

Definition at line 2111 of file msemsevector.h.

2111  {
2112  return &((*m_owner_ptr).at(msev_as_a_size_t((*this).m_index)));
2113  }

◆ operator<()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator< ( const ss_iterator_type _Right) const
inline

Definition at line 2142 of file msemsevector.h.

2142  {
2143  if (this->m_owner_ptr != _Right.m_owner_ptr) { MSE_THROW(msevector_range_error("invalid argument - ss_iterator_type& operator<(const ss_iterator_type& _Right) - ss_iterator_type - msevector")); }
2144  return (m_index < _Right.m_index);
2145  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

◆ operator<=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator<= ( const ss_iterator_type _Right) const
inline

Definition at line 2146 of file msemsevector.h.

2146 { return (((*this) < _Right) || (_Right == (*this))); }

◆ operator=()

template<class _Ty , class _A = std::allocator<_Ty>>
ss_iterator_type& mse::msevector< _Ty, _A >::ss_iterator_type::operator= ( const ss_iterator_type _Right_cref)
inline

Definition at line 2132 of file msemsevector.h.

2132  {
2133  ((*this).m_owner_ptr) = _Right_cref.m_owner_ptr;
2134  (*this).m_index = _Right_cref.m_index;
2135  return (*this);
2136  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, and mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr.

◆ operator==()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator== ( const ss_iterator_type _Right_cref) const
inline

Definition at line 2137 of file msemsevector.h.

2137  {
2138  if (this->m_owner_ptr != _Right_cref.m_owner_ptr) { MSE_THROW(msevector_range_error("invalid argument - ss_iterator_type& operator==(const ss_iterator_type& _Right) - ss_iterator_type - msevector")); }
2139  return (_Right_cref.m_index == m_index);
2140  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

◆ operator>()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator> ( const ss_iterator_type _Right) const
inline

Definition at line 2147 of file msemsevector.h.

2147 { return (!((*this) <= _Right)); }

◆ operator>=()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::operator>= ( const ss_iterator_type _Right) const
inline

Definition at line 2148 of file msemsevector.h.

2148 { return (!((*this) < _Right)); }

◆ operator[]()

template<class _Ty , class _A = std::allocator<_Ty>>
reference mse::msevector< _Ty, _A >::ss_iterator_type::operator[] ( difference_type  _Off) const
inline

Definition at line 2114 of file msemsevector.h.

2114 { return (*m_owner_ptr).at(msev_as_a_size_t(difference_type(m_index) + _Off)); }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index.

◆ points_to_an_item()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::points_to_an_item ( ) const
inline

Definition at line 2021 of file msemsevector.h.

2021  {
2022  if (m_owner_ptr->size() > m_index) { return true; }
2023  else {
2024  if (m_index == m_owner_ptr->size()) { return false; }
2025  else { MSE_THROW(msevector_range_error("attempt to use invalid ss_iterator_type - bool points_to_an_item() const - ss_iterator_type - msevector")); }
2026  }
2027  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

Referenced by mse::msevector< _Ty, _A >::ss_iterator_type::has_next_item_or_end_marker(), mse::mstd::vector< _Ty, _A >::iterator::points_to_an_item(), mse::msevector< _Ty, _A >::ss_iterator_type::points_to_end_marker(), and mse::msevector< _Ty, _A >::ss_iterator_type::set_to_next().

◆ points_to_beginning()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::points_to_beginning ( ) const
inline

Definition at line 2035 of file msemsevector.h.

2035  {
2036  if (0 == m_index) { return true; }
2037  else { return false; }
2038  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index.

Referenced by mse::mstd::vector< _Ty, _A >::iterator::points_to_beginning().

◆ points_to_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_iterator_type::points_to_end_marker ( ) const
inline

Definition at line 2028 of file msemsevector.h.

2028  {
2029  if (false == points_to_an_item()) {
2030  assert(m_index == m_owner_ptr->size());
2031  return true;
2032  }
2033  else { return false; }
2034  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and mse::msevector< _Ty, _A >::ss_iterator_type::points_to_an_item().

Referenced by mse::mstd::vector< _Ty, _A >::iterator::points_to_end_marker().

◆ position()

template<class _Ty , class _A = std::allocator<_Ty>>
msev_size_t mse::msevector< _Ty, _A >::ss_iterator_type::position ( ) const
inline

Definition at line 2169 of file msemsevector.h.

2169  {
2170  return m_index;
2171  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index.

Referenced by mse::mstd::vector< _Ty, _A >::iterator::position().

◆ previous_item()

template<class _Ty , class _A = std::allocator<_Ty>>
reference mse::msevector< _Ty, _A >::ss_iterator_type::previous_item ( ) const
inline

◆ regress()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::regress ( difference_type  n)
inline

◆ reset()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::reset ( )
inline

◆ set_to_beginning()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::set_to_beginning ( )
inline

◆ set_to_end_marker()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::set_to_end_marker ( )
inline

◆ set_to_item_pointer()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::set_to_item_pointer ( const ss_iterator_type _Right_cref)
inline

Definition at line 2149 of file msemsevector.h.

2149  {
2150  (*this) = _Right_cref;
2151  }

Referenced by mse::mstd::vector< _Ty, _A >::iterator::set_to_item_pointer().

◆ set_to_next()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::set_to_next ( )
inline

Definition at line 2059 of file msemsevector.h.

2059  {
2060  if (points_to_an_item()) {
2061  m_index += 1;
2062  }
2063  else {
2064  MSE_THROW(msevector_range_error("attempt to use invalid item_pointer - void set_to_next() - ss_const_iterator_type - msevector"));
2065  }
2066  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_index, MSE_THROW, and mse::msevector< _Ty, _A >::ss_iterator_type::points_to_an_item().

Referenced by mse::msevector< _Ty, _A >::ss_iterator_type::operator++(), and mse::mstd::vector< _Ty, _A >::iterator::set_to_next().

◆ set_to_previous()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::set_to_previous ( )
inline

Definition at line 2067 of file msemsevector.h.

2067  {
2068  if (has_previous()) {
2069  m_index -= 1;
2070  }
2071  else {
2072  MSE_THROW(msevector_range_error("attempt to use invalid item_pointer - void set_to_previous() - ss_iterator_type - msevector"));
2073  }
2074  }

References mse::msevector< _Ty, _A >::ss_iterator_type::has_previous(), mse::msevector< _Ty, _A >::ss_iterator_type::m_index, and MSE_THROW.

Referenced by mse::msevector< _Ty, _A >::ss_iterator_type::operator--(), and mse::mstd::vector< _Ty, _A >::iterator::set_to_previous().

◆ shift_inclusive_range()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::shift_inclusive_range ( msev_size_t  index_of_first,
msev_size_t  index_of_last,
msev_int  shift 
)
inline

Definition at line 2157 of file msemsevector.h.

2157  {
2158  if ((index_of_first <= (*this).m_index) && (index_of_last >= (*this).m_index)) {
2159  auto new_index = (*this).m_index + shift;
2160  if ((0 > new_index) || (m_owner_ptr->size() < new_index)) {
2161  MSE_THROW(msevector_range_error("void shift_inclusive_range() - ss_iterator_type - msevector"));
2162  }
2163  else {
2164  (*this).m_index = msev_size_t(new_index);
2165  (*this).sync_iterator_to_index();
2166  }
2167  }
2168  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr, and MSE_THROW.

◆ sync_iterator_to_index()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::msevector< _Ty, _A >::ss_iterator_type::sync_iterator_to_index ( )
inlineprivate

Definition at line 2187 of file msemsevector.h.

2187  {
2188  assert(m_owner_ptr->size() >= (*this).m_index);
2189  //base_class::iterator::operator=(m_owner_ptr->begin());
2190  //base_class::iterator::operator+=(msev_as_a_size_t(m_index));
2191  }

References mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr.

Friends And Related Function Documentation

◆ msevector< _Ty, _A >

template<class _Ty , class _A = std::allocator<_Ty>>
friend class msevector< _Ty, _A >
friend

Definition at line 2193 of file msemsevector.h.

Field Documentation

◆ m_index

template<class _Ty , class _A = std::allocator<_Ty>>
msev_size_t mse::msevector< _Ty, _A >::ss_iterator_type::m_index = 0
private

◆ m_owner_ptr

template<class _Ty , class _A = std::allocator<_Ty>>
msev_pointer<_Myt> mse::msevector< _Ty, _A >::ss_iterator_type::m_owner_ptr = nullptr
private

The documentation for this class was generated from the following file: