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

#include <msemsevector.h>

Inheritance diagram for mse::msevector< _Ty, _A >::ss_const_iterator_type:
mse::msevector< _Ty, _A >::random_access_const_iterator_base

Public Types

typedef base_class::const_iterator::iterator_category iterator_category
 
typedef base_class::const_iterator::value_type value_type
 
typedef _Myt::difference_type difference_type
 
typedef difference_type distance_type
 
typedef base_class::const_iterator::pointer pointer
 
typedef base_class::const_pointer const_pointer
 
typedef base_class::const_iterator::reference reference
 
typedef base_class::const_reference const_reference
 

Public Member Functions

 ss_const_iterator_type ()
 
void assert_valid_index () const
 
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_const_iterator_typeoperator++ ()
 
ss_const_iterator_type operator++ (int)
 
ss_const_iterator_typeoperator-- ()
 
ss_const_iterator_type operator-- (int)
 
void advance (difference_type n)
 
void regress (difference_type n)
 
ss_const_iterator_typeoperator+= (difference_type n)
 
ss_const_iterator_typeoperator-= (difference_type n)
 
ss_const_iterator_type operator+ (difference_type n) const
 
ss_const_iterator_type operator- (difference_type n) const
 
difference_type operator- (const ss_const_iterator_type &rhs) const
 
const_reference operator* () const
 
const_reference item () const
 
const_reference previous_item () const
 
const_pointer operator-> () const
 
const_reference operator[] (difference_type _Off) const
 
ss_const_iterator_typeoperator= (const ss_const_iterator_type &_Right_cref)
 
bool operator== (const ss_const_iterator_type &_Right_cref) const
 
bool operator!= (const ss_const_iterator_type &_Right_cref) const
 
bool operator< (const ss_const_iterator_type &_Right) const
 
bool operator<= (const ss_const_iterator_type &_Right) const
 
bool operator> (const ss_const_iterator_type &_Right) const
 
bool operator>= (const ss_const_iterator_type &_Right) const
 
void set_to_const_item_pointer (const ss_const_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 typename base_class::const_iterator () const
 

Private Member Functions

void sync_const_iterator_to_index ()
 

Private Attributes

msev_size_t m_index = 0
 
msev_pointer< const _Mytm_owner_cptr = nullptr
 

Friends

class msevector< _Ty, _A >
 

Detailed Description

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

Definition at line 1824 of file msemsevector.h.

Member Typedef Documentation

◆ const_pointer

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::const_pointer mse::msevector< _Ty, _A >::ss_const_iterator_type::const_pointer

Definition at line 1832 of file msemsevector.h.

◆ const_reference

template<class _Ty , class _A = std::allocator<_Ty>>
typedef base_class::const_reference mse::msevector< _Ty, _A >::ss_const_iterator_type::const_reference

Definition at line 1834 of file msemsevector.h.

◆ difference_type

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

Definition at line 1829 of file msemsevector.h.

◆ distance_type

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

Definition at line 1830 of file msemsevector.h.

◆ iterator_category

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

Definition at line 1826 of file msemsevector.h.

◆ pointer

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

Definition at line 1831 of file msemsevector.h.

◆ reference

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

Definition at line 1833 of file msemsevector.h.

◆ value_type

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

Definition at line 1827 of file msemsevector.h.

Constructor & Destructor Documentation

◆ ss_const_iterator_type()

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

Definition at line 1836 of file msemsevector.h.

1836 {}

Member Function Documentation

◆ advance()

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

Definition at line 1900 of file msemsevector.h.

1900  {
1901  auto new_index = msev_int(m_index) + n;
1902  if ((0 > new_index) || (m_owner_cptr->size() < msev_size_t(new_index))) {
1903  MSE_THROW(msevector_range_error("index out of range - void advance(difference_type n) - ss_const_iterator_type - msevector"));
1904  }
1905  else {
1906  m_index = msev_size_t(new_index);
1907  }
1908  }
msev_pointer< const _Myt > m_owner_cptr
#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_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

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

◆ assert_valid_index()

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

Definition at line 1837 of file msemsevector.h.

1837  {
1838  if (m_owner_cptr->size() < m_index) { MSE_THROW(msevector_range_error("invalid index - void assert_valid_index() const - ss_const_iterator_type - msevector")); }
1839  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

Referenced by mse::msevector< _Ty, _A >::emplace(), and mse::msevector< _Ty, _A >::insert_before().

◆ has_next()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::msevector< _Ty, _A >::ss_const_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_const_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_const_iterator_type::has_previous ( ) const
inline

Definition at line 1863 of file msemsevector.h.

1863  {
1864  if (m_owner_cptr->size() < m_index) {
1865  MSE_THROW(msevector_range_error("attempt to use invalid ss_const_iterator_type - bool has_previous() const - ss_const_iterator_type - msevector"));
1866  }
1867  else if (1 <= m_index) {
1868  return true;
1869  }
1870  else {
1871  return false;
1872  }
1873  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

Referenced by mse::msevector< _Ty, _A >::erase_previous_item(), mse::mstd::vector< _Ty, _A >::const_iterator::has_previous(), and mse::msevector< _Ty, _A >::ss_const_iterator_type::set_to_previous().

◆ invalidate_inclusive_range()

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

Definition at line 1973 of file msemsevector.h.

1973  {
1974  if ((index_of_first <= (*this).m_index) && (index_of_last >= (*this).m_index)) {
1975  (*this).reset();
1976  }
1977  }

◆ item()

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

Definition at line 1928 of file msemsevector.h.

1928 { return operator*(); }

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

◆ operator typename base_class::const_iterator()

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

Definition at line 1993 of file msemsevector.h.

1993  {
1994  typename base_class::const_iterator retval = (*m_owner_cptr).cbegin();
1995  retval += msev_as_a_size_t(m_index);
1996  return retval;
1997  }
size_t msev_as_a_size_t
Definition: msemsevector.h:64

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

◆ operator!=()

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

Definition at line 1962 of file msemsevector.h.

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

◆ operator*()

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

Definition at line 1925 of file msemsevector.h.

1925  {
1926  return (*m_owner_cptr).at(msev_as_a_size_t((*this).m_index));
1927  }

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

◆ operator+()

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

Definition at line 1912 of file msemsevector.h.

1912  {
1913  ss_const_iterator_type retval; retval.m_owner_cptr = m_owner_cptr;
1914  retval = (*this);
1915  retval.advance(n);
1916  return retval;
1917  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::advance(), and mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr.

◆ operator++() [1/2]

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

Definition at line 1896 of file msemsevector.h.

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

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

◆ operator++() [2/2]

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

Definition at line 1897 of file msemsevector.h.

1897 { ss_const_iterator_type _Tmp = *this; (*this).set_to_next(); return (_Tmp); }

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

◆ operator+=()

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

Definition at line 1910 of file msemsevector.h.

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

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

◆ operator-() [1/2]

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

Definition at line 1919 of file msemsevector.h.

1919  {
1920  if (rhs.m_owner_cptr != (*this).m_owner_cptr) { MSE_THROW(msevector_range_error("invalid argument - difference_type operator-(const ss_const_iterator_type &rhs) const - msevector::ss_const_iterator_type")); }
1921  auto retval = difference_type((*this).m_index) - difference_type(rhs.m_index);
1922  assert(difference_type((*m_owner_cptr).size()) >= retval);
1923  return retval;
1924  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

◆ operator-() [2/2]

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

Definition at line 1918 of file msemsevector.h.

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

◆ operator--() [1/2]

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

Definition at line 1898 of file msemsevector.h.

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

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

◆ operator--() [2/2]

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

Definition at line 1899 of file msemsevector.h.

1899 { ss_const_iterator_type _Tmp = *this; (*this).set_to_previous(); return (_Tmp); }

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

◆ operator-=()

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

Definition at line 1911 of file msemsevector.h.

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

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

◆ operator->()

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

Definition at line 1932 of file msemsevector.h.

1932  {
1933  return &((*m_owner_cptr).at(msev_as_a_size_t((*this).m_index)));
1934  }

◆ operator<()

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

Definition at line 1963 of file msemsevector.h.

1963  {
1964  if (this->m_owner_cptr != _Right.m_owner_cptr) { MSE_THROW(msevector_range_error("invalid argument - ss_const_iterator_type& operator<(const ss_const_iterator_type& _Right) - ss_const_iterator_type - msevector")); }
1965  return (m_index < _Right.m_index);
1966  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

◆ operator<=()

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

Definition at line 1967 of file msemsevector.h.

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

◆ operator=()

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

Definition at line 1953 of file msemsevector.h.

1953  {
1954  ((*this).m_owner_cptr) = _Right_cref.m_owner_cptr;
1955  (*this).m_index = _Right_cref.m_index;
1956  return (*this);
1957  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, and mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr.

◆ operator==()

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

Definition at line 1958 of file msemsevector.h.

1958  {
1959  if (this->m_owner_cptr != _Right_cref.m_owner_cptr) { MSE_THROW(msevector_range_error("invalid argument - ss_const_iterator_type& operator==(const ss_const_iterator_type& _Right) - ss_const_iterator_type - msevector")); }
1960  return (_Right_cref.m_index == m_index);
1961  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

◆ operator>()

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

Definition at line 1968 of file msemsevector.h.

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

◆ operator>=()

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

Definition at line 1969 of file msemsevector.h.

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

◆ operator[]()

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

Definition at line 1935 of file msemsevector.h.

1935 { return (*m_owner_cptr).at(msev_as_a_size_t(difference_type(m_index) + _Off)); }

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

◆ points_to_an_item()

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

Definition at line 1841 of file msemsevector.h.

1841  {
1842  if (m_owner_cptr->size() > m_index) { return true; }
1843  else {
1844  if (m_index == m_owner_cptr->size()) { return false; }
1845  else { MSE_THROW(msevector_range_error("attempt to use invalid ss_const_iterator_type - bool points_to_an_item() const - ss_const_iterator_type - msevector")); }
1846  }
1847  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_index, mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

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

◆ points_to_beginning()

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

Definition at line 1855 of file msemsevector.h.

1855  {
1856  if (0 == m_index) { return true; }
1857  else { return false; }
1858  }

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

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

◆ points_to_end_marker()

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

◆ position()

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

◆ previous_item()

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

◆ regress()

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

◆ reset()

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

◆ set_to_beginning()

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

◆ set_to_const_item_pointer()

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

Definition at line 1970 of file msemsevector.h.

1970  {
1971  (*this) = _Right_cref;
1972  }

Referenced by mse::mstd::vector< _Ty, _A >::const_iterator::set_to_const_item_pointer().

◆ set_to_end_marker()

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

◆ set_to_next()

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

Definition at line 1880 of file msemsevector.h.

1880  {
1881  if (points_to_an_item()) {
1882  m_index += 1;
1883  }
1884  else {
1885  MSE_THROW(msevector_range_error("attempt to use invalid const_item_pointer - void set_to_next() - ss_const_iterator_type - msevector"));
1886  }
1887  }

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

Referenced by mse::msevector< _Ty, _A >::erase_inclusive(), mse::msevector< _Ty, _A >::ss_const_iterator_type::operator++(), and mse::mstd::vector< _Ty, _A >::const_iterator::set_to_next().

◆ set_to_previous()

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

Definition at line 1888 of file msemsevector.h.

1888  {
1889  if (has_previous()) {
1890  m_index -= 1;
1891  }
1892  else {
1893  MSE_THROW(msevector_range_error("attempt to use invalid const_item_pointer - void set_to_previous() - ss_const_iterator_type - msevector"));
1894  }
1895  }

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

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

◆ shift_inclusive_range()

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

Definition at line 1978 of file msemsevector.h.

1978  {
1979  if ((index_of_first <= (*this).m_index) && (index_of_last >= (*this).m_index)) {
1980  auto new_index = (*this).m_index + shift;
1981  if ((0 > new_index) || (m_owner_cptr->size() < new_index)) {
1982  MSE_THROW(msevector_range_error("void shift_inclusive_range() - ss_const_iterator_type - msevector"));
1983  }
1984  else {
1985  (*this).m_index = msev_size_t(new_index);
1986  (*this).sync_const_iterator_to_index();
1987  }
1988  }
1989  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr, and MSE_THROW.

◆ sync_const_iterator_to_index()

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

Definition at line 1999 of file msemsevector.h.

1999  {
2000  assert(m_owner_cptr->size() >= (*this).m_index);
2001  //base_class::const_iterator::operator=(m_owner_cptr->cbegin());
2002  //base_class::const_iterator::operator+=(msev_as_a_size_t(m_index));
2003  }

References mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr.

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 2005 of file msemsevector.h.

Field Documentation

◆ m_index

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

◆ m_owner_cptr

template<class _Ty , class _A = std::allocator<_Ty>>
msev_pointer<const _Myt> mse::msevector< _Ty, _A >::ss_const_iterator_type::m_owner_cptr = nullptr
private

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