ManaPlus
Data Structures | Public Types | Public Member Functions | Private Attributes
mse::mstd::vector< _Ty, _A > Class Template Reference

#include <msemstdvector.h>

Data Structures

class  const_iterator
 
class  iterator
 

Public Types

typedef mse::mstd::vector< _Ty, _A > _Myt
 
typedef mse::msevector< _Ty, _A > _MV
 
typedef _MV::allocator_type allocator_type
 
typedef _MV::value_type value_type
 
typedef _MV::size_type size_type
 
typedef _MV::difference_type difference_type
 
typedef _MV::pointer pointer
 
typedef _MV::const_pointer const_pointer
 
typedef _MV::reference reference
 
typedef _MV::const_reference const_reference
 
typedef _MV::const_iterator _It
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

const _MVmsevector () const
 
_MVmsevector ()
 
 operator const _MV () const
 
 operator _MV ()
 
 vector (const _A &_Al=_A())
 
 vector (size_type _N)
 
 vector (size_type _N, const _Ty &_V, const _A &_Al=_A())
 
 vector (_Myt &&_X)
 
 vector (const _Myt &_X)
 
 vector (_MV &&_X)
 
 vector (const _MV &_X)
 
 vector (std::vector< _Ty > &&_X)
 
 vector (const std::vector< _Ty > &_X)
 
 vector (_It _F, _It _L, const _A &_Al=_A())
 
 vector (const _Ty *_F, const _Ty *_L, const _A &_Al=_A())
 
template<class _Iter , class = typename std::enable_if<_mse_Is_iterator<_Iter>::value, void>::type>
 vector (_Iter _First, _Iter _Last)
 
template<class _Iter , class = typename std::enable_if<_mse_Is_iterator<_Iter>::value, void>::type>
 vector (_Iter _First, _Iter _Last, const _A &_Al)
 
_Mytoperator= (_MV &&_X)
 
_Mytoperator= (const _MV &_X)
 
_Mytoperator= (_Myt &&_X)
 
_Mytoperator= (const _Myt &_X)
 
void reserve (size_type _Count)
 
void resize (size_type _N, const _Ty &_X=_Ty())
 
_MV::const_reference operator[] (size_type _P) const
 
_MV::reference operator[] (size_type _P)
 
void push_back (_Ty &&_X)
 
void push_back (const _Ty &_X)
 
void pop_back ()
 
void assign (_It _F, _It _L)
 
void assign (size_type _N, const _Ty &_X=_Ty())
 
template<class ... _Valty>
void emplace_back (_Valty &&..._Val)
 
void clear ()
 
void swap (_MV &_X)
 
void swap (_Myt &_X)
 
 vector (::std::initializer_list< typename _MV::value_type > _Ilist, const _A &_Al=_A())
 
_Mytoperator= (::std::initializer_list< typename _MV::value_type > _Ilist)
 
void assign (::std::initializer_list< typename _MV::value_type > _Ilist)
 
size_type capacity () const
 
void shrink_to_fit ()
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
_A get_allocator () const
 
_MV::const_reference at (size_type _Pos) const
 
_MV::reference at (size_type _Pos)
 
_MV::reference front ()
 
_MV::const_reference front () const
 
_MV::reference back ()
 
_MV::const_reference back () const
 
value_typedata ()
 
const value_typedata () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crbegin () const
 
const_reverse_iterator crend () const
 
 vector (const const_iterator &start, const const_iterator &end, const _A &_Al=_A())
 
void assign (const const_iterator &start, const const_iterator &end)
 
void assign_inclusive (const const_iterator &first, const const_iterator &last)
 
iterator insert_before (const const_iterator &pos, size_type _M, const _Ty &_X)
 
iterator insert_before (const const_iterator &pos, _Ty &&_X)
 
iterator insert_before (const const_iterator &pos, const _Ty &_X=_Ty())
 
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator insert_before (const const_iterator &pos, const _Iter &start, const _Iter &end)
 
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator insert_before_inclusive (const const_iterator &pos, const _Iter &first, const _Iter &last)
 
iterator insert_before (const const_iterator &pos, ::std::initializer_list< typename _MV::value_type > _Ilist)
 
void insert_before (msev_size_t pos, const _Ty &_X=_Ty())
 
void insert_before (msev_size_t pos, size_type _M, const _Ty &_X)
 
void insert_before (msev_size_t pos, ::std::initializer_list< typename _MV::value_type > _Ilist)
 
iterator insert (const const_iterator &pos, size_type _M, const _Ty &_X)
 
iterator insert (const const_iterator &pos, _Ty &&_X)
 
iterator insert (const const_iterator &pos, const _Ty &_X=_Ty())
 
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator insert (const const_iterator &pos, const _Iter &start, const _Iter &end)
 
iterator insert (const const_iterator &pos, const _Ty *start, const _Ty *end)
 
iterator insert (const const_iterator &pos, ::std::initializer_list< typename _MV::value_type > _Ilist)
 
template<class ... _Valty>
iterator emplace (const const_iterator &pos, _Valty &&..._Val)
 
iterator erase (const const_iterator &pos)
 
iterator erase (const const_iterator &start, const const_iterator &end)
 
iterator erase_inclusive (const const_iterator &first, const const_iterator &last)
 
bool operator== (const _Myt &_Right) const
 
bool operator< (const _Myt &_Right) const
 

Private Attributes

std::shared_ptr< _MVm_shptr
 

Detailed Description

template<class _Ty, class _A = std::allocator<_Ty>>
class mse::mstd::vector< _Ty, _A >

Definition at line 30 of file msemstdvector.h.

Member Typedef Documentation

◆ _It

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::const_iterator mse::mstd::vector< _Ty, _A >::_It

Definition at line 58 of file msemstdvector.h.

◆ _MV

template<class _Ty , class _A = std::allocator<_Ty>>
typedef mse::msevector<_Ty, _A> mse::mstd::vector< _Ty, _A >::_MV

Definition at line 33 of file msemstdvector.h.

◆ _Myt

template<class _Ty , class _A = std::allocator<_Ty>>
typedef mse::mstd::vector<_Ty, _A> mse::mstd::vector< _Ty, _A >::_Myt

Definition at line 32 of file msemstdvector.h.

◆ allocator_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::allocator_type mse::mstd::vector< _Ty, _A >::allocator_type

Definition at line 35 of file msemstdvector.h.

◆ const_pointer

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::const_pointer mse::mstd::vector< _Ty, _A >::const_pointer

Definition at line 40 of file msemstdvector.h.

◆ const_reference

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::const_reference mse::mstd::vector< _Ty, _A >::const_reference

Definition at line 42 of file msemstdvector.h.

◆ const_reverse_iterator

template<class _Ty , class _A = std::allocator<_Ty>>
typedef std::reverse_iterator<const_iterator> mse::mstd::vector< _Ty, _A >::const_reverse_iterator

Definition at line 280 of file msemstdvector.h.

◆ difference_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::difference_type mse::mstd::vector< _Ty, _A >::difference_type

Definition at line 38 of file msemstdvector.h.

◆ pointer

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::pointer mse::mstd::vector< _Ty, _A >::pointer

Definition at line 39 of file msemstdvector.h.

◆ reference

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::reference mse::mstd::vector< _Ty, _A >::reference

Definition at line 41 of file msemstdvector.h.

◆ reverse_iterator

template<class _Ty , class _A = std::allocator<_Ty>>
typedef std::reverse_iterator<iterator> mse::mstd::vector< _Ty, _A >::reverse_iterator

Definition at line 279 of file msemstdvector.h.

◆ size_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::size_type mse::mstd::vector< _Ty, _A >::size_type

Definition at line 37 of file msemstdvector.h.

◆ value_type

template<class _Ty , class _A = std::allocator<_Ty>>
typedef _MV::value_type mse::mstd::vector< _Ty, _A >::value_type

Definition at line 36 of file msemstdvector.h.

Constructor & Destructor Documentation

◆ vector() [1/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const _A &  _Al = _A())
inlineexplicit

Definition at line 49 of file msemstdvector.h.

49 : m_shptr(std::make_shared<_MV>(_Al)) {}
std::shared_ptr< _MV > m_shptr

◆ vector() [2/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( size_type  _N)
inlineexplicit

Definition at line 50 of file msemstdvector.h.

50 : m_shptr(std::make_shared<_MV>(_N)) {}

◆ vector() [3/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( size_type  _N,
const _Ty &  _V,
const _A &  _Al = _A() 
)
inlineexplicit

Definition at line 51 of file msemstdvector.h.

51 : m_shptr(std::make_shared<_MV>(_N, _V, _Al)) {}

◆ vector() [4/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( _Myt &&  _X)
inline

Definition at line 52 of file msemstdvector.h.

52 : m_shptr(std::make_shared<_MV>(std::move(_X.msevector()))) {}
bool move(InputEvent &event)
Definition: commands.cpp:44

◆ vector() [5/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const _Myt _X)
inline

Definition at line 53 of file msemstdvector.h.

53 : m_shptr(std::make_shared<_MV>(_X.msevector())) {}

◆ vector() [6/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( _MV &&  _X)
inline

Definition at line 54 of file msemstdvector.h.

54 : m_shptr(std::make_shared<_MV>(std::move(_X))) {}

◆ vector() [7/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const _MV _X)
inline

Definition at line 55 of file msemstdvector.h.

55 : m_shptr(std::make_shared<_MV>(_X)) {}

◆ vector() [8/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( std::vector< _Ty > &&  _X)
inline

Definition at line 56 of file msemstdvector.h.

56 : m_shptr(std::make_shared<_MV>(std::move(_X))) {}

◆ vector() [9/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const std::vector< _Ty > &  _X)
inline

Definition at line 57 of file msemstdvector.h.

57 : m_shptr(std::make_shared<_MV>(_X)) {}

◆ vector() [10/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( _It  _F,
_It  _L,
const _A &  _Al = _A() 
)
inline

Definition at line 59 of file msemstdvector.h.

59 : m_shptr(std::make_shared<_MV>(_F, _L, _Al)) {}

◆ vector() [11/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const _Ty *  _F,
const _Ty *  _L,
const _A &  _Al = _A() 
)
inline

Definition at line 60 of file msemstdvector.h.

60 : m_shptr(std::make_shared<_MV>(_F, _L, _Al)) {}

◆ vector() [12/15]

template<class _Ty , class _A = std::allocator<_Ty>>
template<class _Iter , class = typename std::enable_if<_mse_Is_iterator<_Iter>::value, void>::type>
mse::mstd::vector< _Ty, _A >::vector ( _Iter  _First,
_Iter  _Last 
)
inline

Definition at line 62 of file msemstdvector.h.

62 : m_shptr(std::make_shared<_MV>(_First, _Last)) {}

◆ vector() [13/15]

template<class _Ty , class _A = std::allocator<_Ty>>
template<class _Iter , class = typename std::enable_if<_mse_Is_iterator<_Iter>::value, void>::type>
mse::mstd::vector< _Ty, _A >::vector ( _Iter  _First,
_Iter  _Last,
const _A &  _Al 
)
inline

Definition at line 64 of file msemstdvector.h.

64 : m_shptr(std::make_shared<_MV>(_First, _Last, _Al)) {}

◆ vector() [14/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( ::std::initializer_list< typename _MV::value_type _Ilist,
const _A &  _Al = _A() 
)
inline

Definition at line 85 of file msemstdvector.h.

85 : m_shptr(std::make_shared<_MV>(_Ilist, _Al)) {}

◆ vector() [15/15]

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::vector ( const const_iterator start,
const const_iterator end,
const _A &  _Al = _A() 
)
inline

Definition at line 302 of file msemstdvector.h.

303  : m_shptr(std::make_shared<_MV>(start.msevector_ss_const_iterator_type(), end.msevector_ss_const_iterator_type(), _Al)) {}

Member Function Documentation

◆ assign() [1/4]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::assign ( ::std::initializer_list< typename _MV::value_type _Ilist)
inline

Definition at line 87 of file msemstdvector.h.

87 { m_shptr->assign(_Ilist); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ assign() [2/4]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::assign ( _It  _F,
_It  _L 
)
inline

Definition at line 77 of file msemstdvector.h.

77 { m_shptr->assign(_F, _L); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ assign() [3/4]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::assign ( const const_iterator start,
const const_iterator end 
)
inline

Definition at line 304 of file msemstdvector.h.

304  {
305  m_shptr->assign(start.msevector_ss_const_iterator_type(), end.msevector_ss_const_iterator_type());
306  }

References mse::mstd::vector< _Ty, _A >::end(), mse::mstd::vector< _Ty, _A >::m_shptr, and anonymous_namespace{stringutils.cpp}::start.

◆ assign() [4/4]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::assign ( size_type  _N,
const _Ty &  _X = _Ty() 
)
inline

Definition at line 78 of file msemstdvector.h.

78 { m_shptr->assign(_N, _X); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ assign_inclusive()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::assign_inclusive ( const const_iterator first,
const const_iterator last 
)
inline

Definition at line 307 of file msemstdvector.h.

307  {
308  m_shptr->assign_inclusive(first.msevector_ss_const_iterator_type(), last.msevector_ss_const_iterator_type());
309  }

References mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type().

◆ at() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::at ( size_type  _Pos)
inline

Definition at line 96 of file msemstdvector.h.

96 { return m_shptr->at(_Pos); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ at() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::const_reference mse::mstd::vector< _Ty, _A >::at ( size_type  _Pos) const
inline

Definition at line 95 of file msemstdvector.h.

95 { return m_shptr->at(_Pos); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ back() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::back ( )
inline

Definition at line 99 of file msemstdvector.h.

99 { return m_shptr->back(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ back() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::const_reference mse::mstd::vector< _Ty, _A >::back ( ) const
inline

Definition at line 100 of file msemstdvector.h.

100 { return m_shptr->back(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ begin() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::begin ( )
inline

Definition at line 248 of file msemstdvector.h.

248  { // return iterator for beginning of mutable sequence
249  iterator retval; retval.m_msevector_shptr = this->m_shptr;
250  (retval.m_ss_iterator) = m_shptr->ss_begin();
251  return retval;
252  }

References mse::mstd::vector< _Ty, _A >::iterator::m_msevector_shptr, mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::iterator::m_ss_iterator.

Referenced by mse::mstd::vector< _Ty, _A >::emplace(), mse::mstd::vector< _Ty, _A >::erase(), mse::mstd::vector< _Ty, _A >::insert_before(), and mse::mstd::vector< _Ty, _A >::rend().

◆ begin() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const_iterator mse::mstd::vector< _Ty, _A >::begin ( ) const
inline

Definition at line 253 of file msemstdvector.h.

253  { // return iterator for beginning of nonmutable sequence
254  const_iterator retval; retval.m_msevector_cshptr = this->m_shptr;
255  (retval.m_ss_const_iterator) = m_shptr->ss_begin();
256  return retval;
257  }

References mse::mstd::vector< _Ty, _A >::const_iterator::m_msevector_cshptr, mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::const_iterator::m_ss_const_iterator.

◆ capacity()

template<class _Ty , class _A = std::allocator<_Ty>>
size_type mse::mstd::vector< _Ty, _A >::capacity ( ) const
inline

Definition at line 89 of file msemstdvector.h.

89 { return m_shptr->capacity(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ cbegin()

template<class _Ty , class _A = std::allocator<_Ty>>
const_iterator mse::mstd::vector< _Ty, _A >::cbegin ( ) const
inline

Definition at line 268 of file msemstdvector.h.

268  { // return iterator for beginning of nonmutable sequence
269  const_iterator retval; retval.m_msevector_cshptr = this->m_shptr;
270  (retval.m_ss_const_iterator) = m_shptr->ss_cbegin();
271  return retval;
272  }

References mse::mstd::vector< _Ty, _A >::const_iterator::m_msevector_cshptr, mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::const_iterator::m_ss_const_iterator.

◆ cend()

template<class _Ty , class _A = std::allocator<_Ty>>
const_iterator mse::mstd::vector< _Ty, _A >::cend ( ) const
inline

Definition at line 273 of file msemstdvector.h.

273  { // return iterator for end of nonmutable sequence
274  const_iterator retval; retval.m_msevector_cshptr = this->m_shptr;
275  (retval.m_ss_const_iterator) = m_shptr->ss_cend();
276  return retval;
277  }

References mse::mstd::vector< _Ty, _A >::const_iterator::m_msevector_cshptr, mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::const_iterator::m_ss_const_iterator.

◆ clear()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::clear ( )
inline

Definition at line 81 of file msemstdvector.h.

81 { m_shptr->clear(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ crbegin()

template<class _Ty , class _A = std::allocator<_Ty>>
const_reverse_iterator mse::mstd::vector< _Ty, _A >::crbegin ( ) const
inline

Definition at line 294 of file msemstdvector.h.

294  { // return iterator for beginning of reversed nonmutable sequence
295  return (rbegin());
296  }
reverse_iterator rbegin()

References mse::mstd::vector< _Ty, _A >::rbegin().

◆ crend()

template<class _Ty , class _A = std::allocator<_Ty>>
const_reverse_iterator mse::mstd::vector< _Ty, _A >::crend ( ) const
inline

Definition at line 297 of file msemstdvector.h.

297  { // return iterator for end of reversed nonmutable sequence
298  return (rend());
299  }
reverse_iterator rend()

References mse::mstd::vector< _Ty, _A >::rend().

◆ data() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
value_type* mse::mstd::vector< _Ty, _A >::data ( )
inline

Definition at line 103 of file msemstdvector.h.

103  {
104  return m_shptr->data();
105  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ data() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const value_type* mse::mstd::vector< _Ty, _A >::data ( ) const
inline

Definition at line 106 of file msemstdvector.h.

106  {
107  return m_shptr->data();
108  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ emplace()

template<class _Ty , class _A = std::allocator<_Ty>>
template<class ... _Valty>
iterator mse::mstd::vector< _Ty, _A >::emplace ( const const_iterator pos,
_Valty &&...  _Val 
)
inline

Definition at line 361 of file msemstdvector.h.

361  {
362  auto res = m_shptr->emplace(pos.msevector_ss_const_iterator_type(), std::forward<_Valty>(_Val)...);
363  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
364  return retval;
365  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), and mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ emplace_back()

template<class _Ty , class _A = std::allocator<_Ty>>
template<class ... _Valty>
void mse::mstd::vector< _Ty, _A >::emplace_back ( _Valty &&...  _Val)
inline

Definition at line 80 of file msemstdvector.h.

80 { m_shptr->emplace_back(std::forward<_Valty>(_Val)...); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ empty()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::empty ( ) const
inline

Definition at line 93 of file msemstdvector.h.

93 { return m_shptr->empty(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ end() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::end ( )
inline

◆ end() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const_iterator mse::mstd::vector< _Ty, _A >::end ( ) const
inline

Definition at line 263 of file msemstdvector.h.

263  { // return iterator for end of nonmutable sequence
264  const_iterator retval; retval.m_msevector_cshptr = this->m_shptr;
265  (retval.m_ss_const_iterator) = m_shptr->ss_end();
266  return retval;
267  }

References mse::mstd::vector< _Ty, _A >::const_iterator::m_msevector_cshptr, mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::const_iterator::m_ss_const_iterator.

◆ erase() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::erase ( const const_iterator pos)
inline

Definition at line 366 of file msemstdvector.h.

366  {
367  auto res = m_shptr->erase(pos.msevector_ss_const_iterator_type());
368  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
369  return retval;
370  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), and mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ erase() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::erase ( const const_iterator start,
const const_iterator end 
)
inline

Definition at line 371 of file msemstdvector.h.

371  {
372  auto res = m_shptr->erase(start.msevector_ss_const_iterator_type(), end.msevector_ss_const_iterator_type());
373  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
374  return retval;
375  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::end(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type(), and anonymous_namespace{stringutils.cpp}::start.

◆ erase_inclusive()

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::erase_inclusive ( const const_iterator first,
const const_iterator last 
)
inline

Definition at line 376 of file msemstdvector.h.

376  {
377  auto end = last; end.set_to_next();
378  return erase_inclusive(first, end);
379  }
iterator erase_inclusive(const const_iterator &first, const const_iterator &last)

References mse::mstd::vector< _Ty, _A >::end(), and mse::mstd::vector< _Ty, _A >::iterator::set_to_next().

◆ front() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::front ( )
inline

Definition at line 97 of file msemstdvector.h.

97 { return m_shptr->front(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ front() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::const_reference mse::mstd::vector< _Ty, _A >::front ( ) const
inline

Definition at line 98 of file msemstdvector.h.

98 { return m_shptr->front(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ get_allocator()

template<class _Ty , class _A = std::allocator<_Ty>>
_A mse::mstd::vector< _Ty, _A >::get_allocator ( ) const
inline

Definition at line 94 of file msemstdvector.h.

94 { return m_shptr->get_allocator(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ insert() [1/6]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
::std::initializer_list< typename _MV::value_type _Ilist 
)
inline

Definition at line 359 of file msemstdvector.h.

359 { return insert_before(pos, _Ilist); }
iterator insert_before(const const_iterator &pos, size_type _M, const _Ty &_X)

References mse::mstd::vector< _Ty, _A >::insert_before().

◆ insert() [2/6]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
_Ty &&  _X 
)
inline

Definition at line 352 of file msemstdvector.h.

352 { return insert_before(pos, std::move(_X)); }

References mse::mstd::vector< _Ty, _A >::insert_before(), and Actions::move().

◆ insert() [3/6]

template<class _Ty , class _A = std::allocator<_Ty>>
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
const _Iter &  start,
const _Iter &  end 
)
inline

◆ insert() [4/6]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
const _Ty &  _X = _Ty() 
)
inline

Definition at line 353 of file msemstdvector.h.

353 { return insert_before(pos, _X); }

References mse::mstd::vector< _Ty, _A >::insert_before().

◆ insert() [5/6]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
const _Ty *  start,
const _Ty *  end 
)
inline

◆ insert() [6/6]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert ( const const_iterator pos,
size_type  _M,
const _Ty &  _X 
)
inline

Definition at line 351 of file msemstdvector.h.

351 { return insert_before(pos, _M, _X); }

References mse::mstd::vector< _Ty, _A >::insert_before().

◆ insert_before() [1/8]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert_before ( const const_iterator pos,
::std::initializer_list< typename _MV::value_type _Ilist 
)
inline

Definition at line 336 of file msemstdvector.h.

336  { // insert initializer_list
337  auto res = m_shptr->insert_before(pos.msevector_ss_const_iterator_type(), _Ilist);
338  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
339  return retval;
340  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), and mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ insert_before() [2/8]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert_before ( const const_iterator pos,
_Ty &&  _X 
)
inline

Definition at line 315 of file msemstdvector.h.

315  {
316  auto res = m_shptr->insert_before(pos.msevector_ss_const_iterator_type(), std::move(_X));
317  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
318  return retval;
319  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::m_shptr, Actions::move(), mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), and mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

◆ insert_before() [3/8]

template<class _Ty , class _A = std::allocator<_Ty>>
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator mse::mstd::vector< _Ty, _A >::insert_before ( const const_iterator pos,
const _Iter &  start,
const _Iter &  end 
)
inline

Definition at line 324 of file msemstdvector.h.

324  {
325  auto res = m_shptr->insert_before(pos.msevector_ss_const_iterator_type(), start, end);
326  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
327  return retval;
328  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::end(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type(), and anonymous_namespace{stringutils.cpp}::start.

◆ insert_before() [4/8]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert_before ( const const_iterator pos,
const _Ty &  _X = _Ty() 
)
inline

Definition at line 320 of file msemstdvector.h.

320 { return insert_before(pos, 1, _X); }

References mse::mstd::vector< _Ty, _A >::insert_before().

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

◆ insert_before() [5/8]

template<class _Ty , class _A = std::allocator<_Ty>>
iterator mse::mstd::vector< _Ty, _A >::insert_before ( const const_iterator pos,
size_type  _M,
const _Ty &  _X 
)
inline

Definition at line 310 of file msemstdvector.h.

310  {
311  auto res = m_shptr->insert_before(pos.msevector_ss_const_iterator_type(), _M, _X);
312  iterator retval = begin(); retval.msevector_ss_iterator_type() = res;
313  return retval;
314  }

References mse::mstd::vector< _Ty, _A >::begin(), mse::mstd::vector< _Ty, _A >::m_shptr, mse::mstd::vector< _Ty, _A >::const_iterator::msevector_ss_const_iterator_type(), and mse::mstd::vector< _Ty, _A >::iterator::msevector_ss_iterator_type().

Referenced by mse::mstd::vector< _Ty, _A >::insert(), and mse::mstd::vector< _Ty, _A >::insert_before_inclusive().

◆ insert_before() [6/8]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::insert_before ( msev_size_t  pos,
::std::initializer_list< typename _MV::value_type _Ilist 
)
inline

Definition at line 347 of file msemstdvector.h.

347  { // insert initializer_list
348  m_shptr->insert_before(pos, _Ilist);
349  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ insert_before() [7/8]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::insert_before ( msev_size_t  pos,
const _Ty &  _X = _Ty() 
)
inline

Definition at line 341 of file msemstdvector.h.

341  {
342  m_shptr->insert_before(pos, _X);
343  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ insert_before() [8/8]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::insert_before ( msev_size_t  pos,
size_type  _M,
const _Ty &  _X 
)
inline

Definition at line 344 of file msemstdvector.h.

344  {
345  m_shptr->insert_before(pos, _M, _X);
346  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ insert_before_inclusive()

template<class _Ty , class _A = std::allocator<_Ty>>
template<class _Iter , class = _mse_RequireInputIter<_Iter>>
iterator mse::mstd::vector< _Ty, _A >::insert_before_inclusive ( const const_iterator pos,
const _Iter &  first,
const _Iter &  last 
)
inline

Definition at line 332 of file msemstdvector.h.

332  {
333  auto end = last; end++;
334  return insert_before(pos, first, end);
335  }

References mse::mstd::vector< _Ty, _A >::end(), and mse::mstd::vector< _Ty, _A >::insert_before().

◆ max_size()

template<class _Ty , class _A = std::allocator<_Ty>>
size_type mse::mstd::vector< _Ty, _A >::max_size ( ) const
inline

Definition at line 92 of file msemstdvector.h.

92 { return m_shptr->max_size(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ msevector() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV& mse::mstd::vector< _Ty, _A >::msevector ( )
inline

Definition at line 45 of file msemstdvector.h.

45 { return (*m_shptr); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ msevector() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const _MV& mse::mstd::vector< _Ty, _A >::msevector ( ) const
inline

◆ operator _MV()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::operator _MV ( )
inline

Definition at line 47 of file msemstdvector.h.

47 { return msevector(); }
const _MV & msevector() const
Definition: msemstdvector.h:44

References mse::mstd::vector< _Ty, _A >::msevector().

◆ operator const _MV()

template<class _Ty , class _A = std::allocator<_Ty>>
mse::mstd::vector< _Ty, _A >::operator const _MV ( ) const
inline

Definition at line 46 of file msemstdvector.h.

46 { return msevector(); }

References mse::mstd::vector< _Ty, _A >::msevector().

◆ operator<()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::operator< ( const _Myt _Right) const
inline

Definition at line 383 of file msemstdvector.h.

383  { // test if _Left < _Right for vectors
384  return ((*m_shptr) < (*(_Right.m_shptr)));
385  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ operator=() [1/5]

template<class _Ty , class _A = std::allocator<_Ty>>
_Myt& mse::mstd::vector< _Ty, _A >::operator= ( ::std::initializer_list< typename _MV::value_type _Ilist)
inline

Definition at line 86 of file msemstdvector.h.

86 { m_shptr->operator=(_Ilist); return (*this); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ operator=() [2/5]

template<class _Ty , class _A = std::allocator<_Ty>>
_Myt& mse::mstd::vector< _Ty, _A >::operator= ( _MV &&  _X)
inline

Definition at line 66 of file msemstdvector.h.

66 { m_shptr->operator=(std::move(_X)); return (*this); }

References mse::mstd::vector< _Ty, _A >::m_shptr, and Actions::move().

◆ operator=() [3/5]

template<class _Ty , class _A = std::allocator<_Ty>>
_Myt& mse::mstd::vector< _Ty, _A >::operator= ( _Myt &&  _X)
inline

Definition at line 68 of file msemstdvector.h.

68 { m_shptr->operator=(std::move(_X.msevector())); return (*this); }

References mse::mstd::vector< _Ty, _A >::m_shptr, and Actions::move().

◆ operator=() [4/5]

template<class _Ty , class _A = std::allocator<_Ty>>
_Myt& mse::mstd::vector< _Ty, _A >::operator= ( const _MV _X)
inline

Definition at line 67 of file msemstdvector.h.

67 { m_shptr->operator=(_X); return (*this); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ operator=() [5/5]

template<class _Ty , class _A = std::allocator<_Ty>>
_Myt& mse::mstd::vector< _Ty, _A >::operator= ( const _Myt _X)
inline

Definition at line 69 of file msemstdvector.h.

69 { m_shptr->operator=(_X.msevector()); return (*this); }

References mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::msevector().

◆ operator==()

template<class _Ty , class _A = std::allocator<_Ty>>
bool mse::mstd::vector< _Ty, _A >::operator== ( const _Myt _Right) const
inline

Definition at line 380 of file msemstdvector.h.

380  { // test for vector equality
381  return ((*(_Right.m_shptr)) == (*m_shptr));
382  }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ operator[]() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::reference mse::mstd::vector< _Ty, _A >::operator[] ( size_type  _P)
inline

Definition at line 73 of file msemstdvector.h.

73 { return m_shptr->operator[](_P); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ operator[]() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
_MV::const_reference mse::mstd::vector< _Ty, _A >::operator[] ( size_type  _P) const
inline

Definition at line 72 of file msemstdvector.h.

72 { return m_shptr->operator[](_P); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ pop_back()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::pop_back ( )
inline

Definition at line 76 of file msemstdvector.h.

76 { m_shptr->pop_back(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ push_back() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::push_back ( _Ty &&  _X)
inline

Definition at line 74 of file msemstdvector.h.

74 { m_shptr->push_back(std::move(_X)); }

References mse::mstd::vector< _Ty, _A >::m_shptr, and Actions::move().

◆ push_back() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::push_back ( const _Ty &  _X)
inline

Definition at line 75 of file msemstdvector.h.

75 { m_shptr->push_back(_X); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ rbegin() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
reverse_iterator mse::mstd::vector< _Ty, _A >::rbegin ( )
inline

Definition at line 282 of file msemstdvector.h.

282  { // return iterator for beginning of reversed mutable sequence
283  return (reverse_iterator(end()));
284  }
std::reverse_iterator< iterator > reverse_iterator

References mse::mstd::vector< _Ty, _A >::end().

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

◆ rbegin() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const_reverse_iterator mse::mstd::vector< _Ty, _A >::rbegin ( ) const
inline

Definition at line 285 of file msemstdvector.h.

285  { // return iterator for beginning of reversed nonmutable sequence
286  return (const_reverse_iterator(end()));
287  }
std::reverse_iterator< const_iterator > const_reverse_iterator

References mse::mstd::vector< _Ty, _A >::end().

◆ rend() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
reverse_iterator mse::mstd::vector< _Ty, _A >::rend ( )
inline

Definition at line 288 of file msemstdvector.h.

288  { // return iterator for end of reversed mutable sequence
289  return (reverse_iterator(begin()));
290  }

References mse::mstd::vector< _Ty, _A >::begin().

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

◆ rend() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
const_reverse_iterator mse::mstd::vector< _Ty, _A >::rend ( ) const
inline

Definition at line 291 of file msemstdvector.h.

291  { // return iterator for end of reversed nonmutable sequence
292  return (const_reverse_iterator(begin()));
293  }

References mse::mstd::vector< _Ty, _A >::begin().

◆ reserve()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::reserve ( size_type  _Count)
inline

Definition at line 70 of file msemstdvector.h.

70 { m_shptr->reserve(_Count); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ resize()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::resize ( size_type  _N,
const _Ty &  _X = _Ty() 
)
inline

Definition at line 71 of file msemstdvector.h.

71 { m_shptr->resize(_N, _X); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ shrink_to_fit()

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::shrink_to_fit ( )
inline

Definition at line 90 of file msemstdvector.h.

90 { m_shptr->shrink_to_fit(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ size()

template<class _Ty , class _A = std::allocator<_Ty>>
size_type mse::mstd::vector< _Ty, _A >::size ( ) const
inline

Definition at line 91 of file msemstdvector.h.

91 { return m_shptr->size(); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ swap() [1/2]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::swap ( _MV _X)
inline

Definition at line 82 of file msemstdvector.h.

82 { m_shptr->swap(_X); }

References mse::mstd::vector< _Ty, _A >::m_shptr.

◆ swap() [2/2]

template<class _Ty , class _A = std::allocator<_Ty>>
void mse::mstd::vector< _Ty, _A >::swap ( _Myt _X)
inline

Definition at line 83 of file msemstdvector.h.

83 { m_shptr->swap(_X.msevector()); }

References mse::mstd::vector< _Ty, _A >::m_shptr, and mse::mstd::vector< _Ty, _A >::msevector().

Field Documentation

◆ m_shptr

template<class _Ty , class _A = std::allocator<_Ty>>
std::shared_ptr<_MV> mse::mstd::vector< _Ty, _A >::m_shptr
private

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