ReactOS 0.4.15-dev-7958-gcd0bb1a
slist< _Tp, > Class Template Reference

#include <_slist.h>

Inheritance diagram for slist< _Tp, >:
Collaboration diagram for slist< _Tp, >:

Public Types

typedef _Tp value_type
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef forward_iterator_tag _Iterator_category
 
typedef _STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
 
typedef _STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
 
typedef _Base::allocator_type allocator_type
 
typedef _STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _SlistDbgTraits< _Nonconst_traits< value_type > > > iterator
 
typedef _STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _SlistDbgTraits< _Const_traits< value_type > > > const_iterator
 
typedef _Tp value_type
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef forward_iterator_tag _Iterator_category
 
typedef _STLP_PRIV _Slist_iterator< value_type, _Nonconst_traits< value_type > > iterator
 
typedef _STLP_PRIV _Slist_iterator< value_type, _Const_traits< value_type > > const_iterator
 
typedef _Alloc_traits< value_type, _Alloc >::allocator_type allocator_type
 

Public Member Functions

allocator_type get_allocator () const
 
 slist (const allocator_type &__a=allocator_type())
 
 slist (size_type __n, const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(_Tp), const allocator_type &__a=allocator_type())
 
 slist (const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
 
 slist (const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
 
 slist (const _Self &__x)
 
 slist (__move_source< _Self > src)
 
_Selfoperator= (const _Self &__x)
 
 ~slist ()
 
void assign (size_type __n, const _Tp &__val)
 
void assign (const_pointer __first, const_pointer __last)
 
void assign (const_iterator __first, const_iterator __last)
 
iterator before_begin ()
 
const_iterator before_begin () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
void swap (_Self &__x)
 
reference front ()
 
const_reference front () const
 
void push_front (const value_type &__x=_Tp())
 
void pop_front ()
 
iterator previous (const_iterator __pos)
 
const_iterator previous (const_iterator __pos) const
 
iterator insert_after (iterator __pos, const value_type &__x=_Tp())
 
void insert_after (iterator __pos, size_type __n, const value_type &__x)
 
void insert_after (iterator __pos, const value_type *__first, const value_type *__last)
 
void insert_after (iterator __pos, const_iterator __first, const_iterator __last)
 
iterator insert (iterator __pos, const value_type &__x=_Tp())
 
void insert (iterator __pos, size_type __n, const value_type &__x)
 
void insert (iterator __pos, const value_type *__first, const value_type *__last)
 
void insert (iterator __pos, const_iterator __first, const_iterator __last)
 
iterator erase_after (iterator __pos)
 
iterator erase_after (iterator __before_first, iterator __last)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __first, iterator __last)
 
void resize (size_type new_size, const value_type &__x=_Tp())
 
void clear ()
 
void splice_after (iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
 
void splice_after (iterator __pos, _Self &__x, iterator __prev)
 
void splice_after (iterator __pos, _Self &__x)
 
void splice (iterator __pos, _Self &__x)
 
void splice (iterator __pos, _Self &__x, iterator __i)
 
void splice (iterator __pos, _Self &__x, iterator __first, iterator __last)
 
void reverse ()
 
void remove (const _Tp &__val)
 
void unique ()
 
void merge (_Self &__x)
 
void sort ()
 
allocator_type get_allocator () const
 
 slist (const allocator_type &__a=allocator_type())
 
 slist (size_type __n, const value_type &__x=_Tp(), const allocator_type &__a=allocator_type())
 
 slist (__move_source< _Self > src)
 
 slist (const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
 
 slist (const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
 
 slist (const _Self &__x)
 
_Selfoperator= (const _Self &__x)
 
 ~slist ()
 
void assign (size_type __n, const value_type &__val)
 
iterator before_begin ()
 
const_iterator before_begin () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
bool empty () const
 
size_type size () const
 
size_type max_size () const
 
void swap (_Self &__x)
 
reference front ()
 
const_reference front () const
 
void push_front (const_reference __x)
 
void pop_front ()
 
iterator previous (const_iterator __pos)
 
const_iterator previous (const_iterator __pos) const
 
iterator insert_after (iterator __pos, const value_type &__x=_Tp())
 
void insert_after (iterator __pos, size_type __n, const value_type &__x)
 
void assign (const_iterator __first, const_iterator __last)
 
void assign (const value_type *__first, const value_type *__last)
 
void insert_after (iterator __pos, const_iterator __first, const_iterator __last)
 
void insert_after (iterator __pos, const value_type *__first, const value_type *__last)
 
void insert (iterator __pos, const_iterator __first, const_iterator __last)
 
void insert (iterator __pos, const value_type *__first, const value_type *__last)
 
iterator insert (iterator __pos, const value_type &__x=_Tp())
 
void insert (iterator __pos, size_type __n, const value_type &__x)
 
iterator erase_after (iterator __pos)
 
iterator erase_after (iterator __before_first, iterator __last)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __first, iterator __last)
 
void resize (size_type __new_size, const value_type &__x=_Tp())
 
void clear ()
 
void splice_after (iterator __pos, _Self &__x)
 
void splice_after (iterator __pos, _Self &__x, iterator __prev)
 
void splice_after (iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
 
void splice (iterator __pos, _Self &__x)
 
void splice (iterator __pos, _Self &__x, iterator __i)
 
void splice (iterator __pos, _Self &__x, iterator __first, iterator __last)
 
void reverse ()
 
void remove (const value_type &__val)
 
void unique ()
 
void merge (_Self &__x)
 
void sort ()
 
allocator_type get_allocator () const
 
 slist (const allocator_type &__a=allocator_type())
 
 slist (size_type __n, const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(value_type), const allocator_type &__a=allocator_type())
 
 slist (const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
 
 slist (const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
 
 slist (const _Self &__x)
 
 slist (__move_source< _Self > src)
 
_Selfoperator= (const _Self &__x)
 
void assign (size_type __n, const value_type &__val)
 
void assign (const value_type *__first, const value_type *__last)
 
void assign (const_iterator __first, const_iterator __last)
 
iterator before_begin ()
 
const_iterator before_begin () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
size_type size () const
 
size_type max_size () const
 
bool empty () const
 
void swap (_Self &__x)
 
reference front ()
 
const_reference front () const
 
void push_front (const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(value_type))
 
void pop_front ()
 
iterator previous (const_iterator __pos)
 
const_iterator previous (const_iterator __pos) const
 
iterator insert_after (iterator __pos, const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(value_type))
 
void insert_after (iterator __pos, size_type __n, const value_type &__x)
 
void insert_after (iterator __pos, const_iterator __first, const_iterator __last)
 
void insert_after (iterator __pos, const value_type *__first, const value_type *__last)
 
iterator insert (iterator __pos, const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(value_type))
 
void insert (iterator __pos, size_type __n, const value_type &__x)
 
void insert (iterator __pos, const_iterator __first, const_iterator __last)
 
void insert (iterator __pos, const value_type *__first, const value_type *__last)
 
iterator erase_after (iterator __pos)
 
iterator erase_after (iterator __before_first, iterator __last)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __first, iterator __last)
 
void resize (size_type __new_size, const value_type &__x=_STLP_DEFAULT_CONSTRUCTED(value_type))
 
void clear ()
 
void splice_after (iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
 
void splice_after (iterator __pos, _Self &__x, iterator __prev)
 
void splice_after (iterator __pos, _Self &__x)
 
void splice (iterator __pos, _Self &__x)
 
void splice (iterator __pos, _Self &__x, iterator __i)
 
void splice (iterator __pos, _Self &__x, iterator __first, iterator __last)
 
void reverse ()
 
void remove (const value_type &__val)
 
void unique ()
 
void merge (_Self &__x)
 
void sort ()
 

Private Types

typedef _STLP_PRIV _Slist_base< _Tp, _Alloc_Base
 
typedef slist< _Tp, _Alloc_Self
 
typedef _STLP_PRIV _Slist_node< _Tp > _Node
 
typedef _STLP_PRIV _Slist_node_base _Node_base
 
typedef _STLP_NON_DBG_SLIST _Base
 
typedef slist< _Tp, _Alloc_Self
 
typedef _STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST_ConstructCheck
 
typedef _Base::iterator _Base_iterator
 
typedef _STLP_TYPENAME _STLP_PRIV _StorageType< _Tp >::_Type _StorageType
 
typedef _Alloc_traits< _StorageType, _Alloc >::allocator_type _StorageTypeAlloc
 
typedef _STLP_PRIV SLIST_IMPL< _StorageType, _StorageTypeAlloc_Base
 
typedef _Base::iterator _BaseIte
 
typedef _Base::const_iterator _BaseConstIte
 
typedef slist< _Tp, _Alloc_Self
 
typedef _STLP_PRIV _CastTraits< _StorageType, _Tp > cast_traits
 
typedef _STLP_PRIV _Slist_node_base _Node_base
 

Private Member Functions

_Node_M_create_node (const value_type &__x=_Tp())
 
void _M_fill_assign (size_type __n, const _Tp &__val)
 
_Node_M_insert_after (_Node_base *__pos, const value_type &__x=_Tp())
 
void _M_insert_after_fill (_Node_base *__pos, size_type __n, const value_type &__x)
 
void _M_insert_after_range (_Node_base *__pos, const value_type *__first, const value_type *__last)
 
void _M_insert_after_range (_Node_base *__pos, const_iterator __first, const_iterator __last)
 
void _M_splice_after_range (_Node_base *__pos, const value_type *__first, const value_type *__last)
 
void _M_splice_after_range (_Node_base *__pos, const_iterator __first, const_iterator __last)
 
void _M_splice_range (_Node_base *__pos, const value_type *__first, const value_type *__last)
 
void _M_splice_range (_Node_base *__pos, const_iterator __first, const_iterator __last)
 
void _Invalidate_iterator (const iterator &__it)
 
void _Invalidate_iterators (const iterator &__first, const iterator &__last)
 

Private Attributes

_Base _M_non_dbg_impl
 
_STLP_PRIV __owned_list _M_iter_list
 
_Base _M_impl
 

Detailed Description

template<class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >)>
class slist< _Tp, >

Definition at line 53 of file _slist.h.

Member Typedef Documentation

◆ _Base [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_base<_Tp,_Alloc> slist< _Tp, >::_Base
private

Definition at line 226 of file _slist.h.

◆ _Base [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_NON_DBG_SLIST slist< _Tp, >::_Base
private

Definition at line 83 of file _slist.h.

◆ _Base [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV SLIST_IMPL<_StorageType, _StorageTypeAlloc> slist< _Tp, >::_Base
private

Definition at line 60 of file _slist.h.

◆ _Base_iterator

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Base::iterator slist< _Tp, >::_Base_iterator
private

Definition at line 104 of file _slist.h.

◆ _BaseConstIte

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Base::const_iterator slist< _Tp, >::_BaseConstIte
private

Definition at line 62 of file _slist.h.

◆ _BaseIte

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Base::iterator slist< _Tp, >::_BaseIte
private

Definition at line 61 of file _slist.h.

◆ _ConstructCheck

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_SLIST > slist< _Tp, >::_ConstructCheck
private

Definition at line 85 of file _slist.h.

◆ _Iterator_category [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef forward_iterator_tag slist< _Tp, >::_Iterator_category

Definition at line 237 of file _slist.h.

◆ _Iterator_category [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef forward_iterator_tag slist< _Tp, >::_Iterator_category

Definition at line 75 of file _slist.h.

◆ _Node

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_node<_Tp> slist< _Tp, >::_Node
private

Definition at line 246 of file _slist.h.

◆ _Node_base [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_node_base slist< _Tp, >::_Node_base
private

Definition at line 247 of file _slist.h.

◆ _Node_base [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_node_base slist< _Tp, >::_Node_base
private

Definition at line 65 of file _slist.h.

◆ _Self [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef slist<_Tp,_Alloc> slist< _Tp, >::_Self
private

Definition at line 227 of file _slist.h.

◆ _Self [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef slist<_Tp,_Alloc> slist< _Tp, >::_Self
private

Definition at line 84 of file _slist.h.

◆ _Self [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef slist<_Tp, _Alloc> slist< _Tp, >::_Self
private

Definition at line 63 of file _slist.h.

◆ _StorageType

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_TYPENAME _STLP_PRIV _StorageType<_Tp>::_Type slist< _Tp, >::_StorageType
private

Definition at line 58 of file _slist.h.

◆ _StorageTypeAlloc

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Alloc_traits<_StorageType,_Alloc>::allocator_type slist< _Tp, >::_StorageTypeAlloc
private

Definition at line 59 of file _slist.h.

◆ allocator_type [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Base::allocator_type slist< _Tp, >::allocator_type

Definition at line 243 of file _slist.h.

◆ allocator_type [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Alloc_traits<value_type,_Alloc>::allocator_type slist< _Tp, >::allocator_type

Definition at line 81 of file _slist.h.

◆ cast_traits

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> slist< _Tp, >::cast_traits
private

Definition at line 64 of file _slist.h.

◆ const_iterator [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_iterator<_Tp, _Const_traits<_Tp> > slist< _Tp, >::const_iterator

Definition at line 240 of file _slist.h.

◆ const_iterator [2/3]

Definition at line 92 of file _slist.h.

◆ const_iterator [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _Slist_iterator<value_type, _Const_traits<value_type> > slist< _Tp, >::const_iterator

Definition at line 78 of file _slist.h.

◆ const_pointer [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef const value_type* slist< _Tp, >::const_pointer

Definition at line 232 of file _slist.h.

◆ const_pointer [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef const value_type* slist< _Tp, >::const_pointer

Definition at line 70 of file _slist.h.

◆ const_reference [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef const value_type& slist< _Tp, >::const_reference

Definition at line 234 of file _slist.h.

◆ const_reference [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef const value_type& slist< _Tp, >::const_reference

Definition at line 72 of file _slist.h.

◆ difference_type [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef ptrdiff_t slist< _Tp, >::difference_type

Definition at line 236 of file _slist.h.

◆ difference_type [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef ptrdiff_t slist< _Tp, >::difference_type

Definition at line 74 of file _slist.h.

◆ iterator [1/3]

Definition at line 239 of file _slist.h.

◆ iterator [2/3]

◆ iterator [3/3]

Definition at line 77 of file _slist.h.

◆ pointer [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef value_type* slist< _Tp, >::pointer

Definition at line 231 of file _slist.h.

◆ pointer [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef value_type* slist< _Tp, >::pointer

Definition at line 69 of file _slist.h.

◆ reference [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef value_type& slist< _Tp, >::reference

Definition at line 233 of file _slist.h.

◆ reference [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef value_type& slist< _Tp, >::reference

Definition at line 71 of file _slist.h.

◆ size_type [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef size_t slist< _Tp, >::size_type

Definition at line 235 of file _slist.h.

◆ size_type [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef size_t slist< _Tp, >::size_type

Definition at line 73 of file _slist.h.

◆ value_type [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Tp slist< _Tp, >::value_type

Definition at line 229 of file _slist.h.

◆ value_type [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _Tp slist< _Tp, >::value_type

Definition at line 68 of file _slist.h.

Constructor & Destructor Documentation

◆ slist() [1/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 280 of file _slist.h.

284 slist(const allocator_type& __a)
285#endif
#define _STLP_PRIV
Definition: _dm.h:70
Definition: _slist.h:57
_Base::allocator_type allocator_type
Definition: _slist.h:243

◆ slist() [2/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( size_type  __n,
const value_type __x = _STLP_DEFAULT_CONSTRUCTED(_Tp),
const allocator_type __a = allocator_type() 
)
inlineexplicit

Definition at line 289 of file _slist.h.

294 { _M_insert_after_fill(&this->_M_head._M_data, __n, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
295 slist(size_type __n, const value_type& __x)
297 { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); }
298 slist(size_type __n, const value_type& __x, const allocator_type& __a)
299#endif
301 { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); }
return __n
Definition: _algo.h:75
#define _Alloc
Definition: _bvector.h:330
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
Definition: _construct.h:265
size_t size_type
Definition: _slist.h:235
void _M_insert_after_fill(_Node_base *__pos, size_type __n, const value_type &__x)
Definition: _slist.h:482
_Tp value_type
Definition: _slist.h:229

◆ slist() [3/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const_iterator  __first,
const_iterator  __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 319 of file _slist.h.

322 { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508

◆ slist() [4/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const value_type __first,
const value_type __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 323 of file _slist.h.

326 { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }

◆ slist() [5/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const _Self __x)
inline

Definition at line 329 of file _slist.h.

330 : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__x.get_allocator())
331 { _M_insert_after_range(&this->_M_head._M_data, __x.begin(), __x.end()); }

◆ slist() [6/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( __move_source< _Self src)
inline

Definition at line 334 of file _slist.h.

◆ ~slist() [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::~slist ( )
inline

Definition at line 340 of file _slist.h.

340{}

◆ slist() [7/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 107 of file _slist.h.

_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ slist() [8/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( size_type  __n,
const value_type __x = _Tp(),
const allocator_type __a = allocator_type() 
)
inlineexplicit

Definition at line 111 of file _slist.h.

◆ slist() [9/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( __move_source< _Self src)
inline

Definition at line 123 of file _slist.h.

124 : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)),
126# if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
127 src.get()._M_iter_list._Invalidate_all();
128# else
129 src.get()._M_iter_list._Set_owner(_M_iter_list);
130# endif
131 }

◆ slist() [10/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const value_type __first,
const value_type __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 152 of file _slist.h.

154 : _ConstructCheck(__first, __last),
155 _M_non_dbg_impl(__first, __last, __a),
_STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST > _ConstructCheck
Definition: _slist.h:85

◆ slist() [11/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const_iterator  __first,
const_iterator  __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 158 of file _slist.h.

160 : _ConstructCheck(__first, __last),
161 _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a),

◆ slist() [12/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const _Self __x)
inline

Definition at line 165 of file _slist.h.

165 :
166 _ConstructCheck(__x),
167 _M_non_dbg_impl(__x._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {}

◆ ~slist() [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::~slist ( )
inline

Definition at line 177 of file _slist.h.

177{}

◆ slist() [13/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 87 of file _slist.h.

#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Base _M_impl
Definition: _slist.h:407

◆ slist() [14/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( size_type  __n,
const value_type __x = _STLP_DEFAULT_CONSTRUCTED(value_type),
const allocator_type __a = allocator_type() 
)
inlineexplicit

Definition at line 91 of file _slist.h.

96 : _M_impl(__n, cast_traits::to_storage_type_cref(__x), _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {}

◆ slist() [15/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const_iterator  __first,
const_iterator  __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 126 of file _slist.h.

128 : _M_impl(_BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node),
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62

◆ slist() [16/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const value_type __first,
const value_type __last,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 130 of file _slist.h.

132 : _M_impl(cast_traits::to_storage_type_cptr(__first), cast_traits::to_storage_type_cptr(__last),

◆ slist() [17/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( const _Self __x)
inline

Definition at line 136 of file _slist.h.

136: _M_impl(__x._M_impl) {}

◆ slist() [18/18]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
slist< _Tp, >::slist ( __move_source< _Self src)
inline

Definition at line 139 of file _slist.h.

140 : _M_impl(__move_source<_Base>(src.get()._M_impl)) {}

Member Function Documentation

◆ _Invalidate_iterator()

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_Invalidate_iterator ( const iterator __it)
inlineprivate

Definition at line 99 of file _slist.h.

100 { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); }
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)

Referenced by slist< _Tp, >::erase(), slist< _Tp, >::erase_after(), slist< _Tp, >::remove(), slist< _Tp, >::splice(), slist< _Tp, >::splice_after(), and slist< _Tp, >::unique().

◆ _Invalidate_iterators()

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_Invalidate_iterators ( const iterator __first,
const iterator __last 
)
inlineprivate

◆ _M_create_node()

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
_Node * slist< _Tp, >::_M_create_node ( const value_type __x = _Tp())
inlineprivate

Definition at line 250 of file _slist.h.

250 {
251#else
252 _Node* _M_create_node(const value_type& __x) {
253#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
254 _Node* __node = this->_M_head.allocate(1);
255 _STLP_TRY {
256 _Copy_Construct(&__node->_M_data, __x);
257 __node->_M_next = 0;
258 }
259 _STLP_UNWIND(this->_M_head.deallocate(__node, 1))
260 return __node;
261 }
void _Copy_Construct(_Tp *__p, const _Tp &__val)
Definition: _construct.h:130
return
Definition: dirsup.c:529
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
#define _STLP_UNWIND(action)
Definition: features.h:824
#define _STLP_TRY
Definition: features.h:817

Referenced by slist< _Tp, >::_M_create_node(), slist< _Tp, >::_M_insert_after(), slist< _Tp, >::_M_insert_after_fill(), slist< _Tp, >::_M_insert_after_range(), slist< _Tp, >::_M_splice_after_range(), slist< _Tp, >::_M_splice_range(), and slist< _Tp, >::push_front().

◆ _M_fill_assign()

template<class _Tp , class _Alloc >
void slist< _Tp, _Alloc >::_M_fill_assign ( size_type  __n,
const _Tp &  __val 
)
private

Definition at line 91 of file _slist.c.

91 {
92 _Node_base* __prev = &this->_M_head._M_data;
93 _Node_base* __node = this->_M_head._M_data._M_next;
94 for ( ; __node != 0 && __n > 0 ; --__n) {
95 __STATIC_CAST(_Node*, __node)->_M_data = __val;
96 __prev = __node;
97 __node = __node->_M_next;
98 }
99 if (__n > 0)
101 else
102 this->_M_erase_after(__prev, 0);
103}
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39

Referenced by slist< _Tp, >::assign().

◆ _M_insert_after()

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
_Node * slist< _Tp, >::_M_insert_after ( _Node_base __pos,
const value_type __x = _Tp() 
)
inlineprivate

Definition at line 469 of file _slist.h.

469 {
470#else
471 _Node* _M_insert_after(_Node_base* __pos, const value_type& __x) {
472#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
474 }
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_insert_after(_Node_base *__pos, const value_type &__x=_Tp())
Definition: _slist.h:469

Referenced by slist< _Tp, >::_M_insert_after(), slist< _Tp, >::insert(), and slist< _Tp, >::insert_after().

◆ _M_insert_after_fill()

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_insert_after_fill ( _Node_base __pos,
size_type  __n,
const value_type __x 
)
inlineprivate

Definition at line 482 of file _slist.h.

483 {
484 for (size_type __i = 0; __i < __n; ++__i)
485 __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(__x));
486 }

Referenced by slist< _Tp, >::insert(), slist< _Tp, >::insert_after(), and slist< _Tp, >::slist().

◆ _M_insert_after_range() [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_insert_after_range ( _Node_base __pos,
const value_type __first,
const value_type __last 
)
inlineprivate

Definition at line 508 of file _slist.h.

510 {
511 while (__first != __last) {
512 __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
513 ++__first;
514 }
515 }

Referenced by slist< _Tp, >::assign(), slist< _Tp, >::insert(), slist< _Tp, >::insert_after(), and slist< _Tp, >::slist().

◆ _M_insert_after_range() [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_insert_after_range ( _Node_base __pos,
const_iterator  __first,
const_iterator  __last 
)
inlineprivate

Definition at line 516 of file _slist.h.

517 {
518#endif /* _STLP_MEMBER_TEMPLATES */
519 while (__first != __last) {
520 __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
521 ++__first;
522 }
523 }

◆ _M_splice_after_range() [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_splice_after_range ( _Node_base __pos,
const value_type __first,
const value_type __last 
)
inlineprivate

Definition at line 545 of file _slist.h.

547 {
548 while (__first != __last) {
549 __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
550 ++__first;
551 }
552 }

Referenced by slist< _Tp, >::insert_after().

◆ _M_splice_after_range() [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_splice_after_range ( _Node_base __pos,
const_iterator  __first,
const_iterator  __last 
)
inlineprivate

Definition at line 553 of file _slist.h.

554 {
555#endif /* _STLP_MEMBER_TEMPLATES */
556 //We use a temporary slist to avoid the auto reference troubles (infinite loop)
557 _Self __tmp(__first, __last, this->get_allocator());
558 splice_after(iterator(__pos), __tmp);
559 }
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
void splice_after(iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
Definition: _slist.h:697
allocator_type get_allocator() const
Definition: _slist.h:277
slist< _Tp, _Alloc > _Self
Definition: _slist.h:227

◆ _M_splice_range() [1/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_splice_range ( _Node_base __pos,
const value_type __first,
const value_type __last 
)
inlineprivate

Definition at line 582 of file _slist.h.

584 {
585 while (__first != __last) {
586 __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
587 ++__first;
588 }
589 }

Referenced by slist< _Tp, >::insert().

◆ _M_splice_range() [2/2]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::_M_splice_range ( _Node_base __pos,
const_iterator  __first,
const_iterator  __last 
)
inlineprivate

Definition at line 590 of file _slist.h.

591 {
592#endif /* _STLP_MEMBER_TEMPLATES */
593 //We use a temporary slist to avoid the auto reference troubles (infinite loop)
594 _Self __tmp(__first, __last, this->get_allocator());
595 splice(iterator(__pos), __tmp);
596 }
void splice(iterator __pos, _Self &__x)
Definition: _slist.h:737

◆ assign() [1/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const value_type __first,
const value_type __last 
)
inline

Definition at line 272 of file _slist.h.

272 {
273 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last))
275 _M_non_dbg_impl.assign(__first, __last);
276 }
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
iterator end()
Definition: _slist.h:420
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
iterator begin()
Definition: _slist.h:416

◆ assign() [2/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const value_type __first,
const value_type __last 
)
inline

Definition at line 176 of file _slist.h.

176 {
177 _M_impl.assign(cast_traits::to_storage_type_cptr(__first),
178 cast_traits::to_storage_type_cptr(__last));
179 }

◆ assign() [3/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 387 of file _slist.h.

387 {
388#endif /* _STLP_MEMBER_TEMPLATES */
389 _Node_base* __prev = &this->_M_head._M_data;
390 _Node_base* __node = this->_M_head._M_data._M_next;
391 while (__node != 0 && __first != __last) {
392 __STATIC_CAST(_Node*, __node)->_M_data = *__first;
393 __prev = __node;
394 __node = __node->_M_next;
395 ++__first;
396 }
397 if (__first != __last)
398 _M_insert_after_range(__prev, __first, __last);
399 else
400 this->_M_erase_after(__prev, 0);
401 }

◆ assign() [4/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 267 of file _slist.h.

267 {
268 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
270 _M_non_dbg_impl.assign(__first._M_iterator, __last._M_iterator);
271 }

◆ assign() [5/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 180 of file _slist.h.

180 {
181 _M_impl.assign(_BaseConstIte(__first._M_node),
182 _BaseConstIte(__last._M_node));
183 }

◆ assign() [6/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( const_pointer  __first,
const_pointer  __last 
)
inline

Definition at line 373 of file _slist.h.

373 {
374 _Node_base* __prev = &this->_M_head._M_data;
375 _Node_base* __node = this->_M_head._M_data._M_next;
376 while (__node != 0 && __first != __last) {
377 __STATIC_CAST(_Node*, __node)->_M_data = *__first;
378 __prev = __node;
379 __node = __node->_M_next;
380 ++__first;
381 }
382 if (__first != __last)
383 _M_insert_after_range(__prev, __first, __last);
384 else
385 this->_M_erase_after(__prev, 0);
386 }

◆ assign() [7/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( size_type  __n,
const _Tp &  __val 
)
inline

Definition at line 348 of file _slist.h.

void _M_fill_assign(size_type __n, const _Tp &__val)
Definition: _slist.c:91

Referenced by SlistTest::erase(), and PtrSpecTest::ptr_specialization_test().

◆ assign() [8/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( size_type  __n,
const value_type __val 
)
inline

Definition at line 179 of file _slist.h.

179 {
181 _M_non_dbg_impl.assign(__n, __val);
182 }

◆ assign() [9/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::assign ( size_type  __n,
const value_type __val 
)
inline

Definition at line 145 of file _slist.h.

146 { _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); }

◆ before_begin() [1/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::before_begin ( )
inline

◆ before_begin() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::before_begin ( )
inline

Definition at line 184 of file _slist.h.

185 { return iterator(&_M_iter_list, _M_non_dbg_impl.before_begin()); }

◆ before_begin() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::before_begin ( )
inline

Definition at line 186 of file _slist.h.

186{ return iterator(_M_impl.before_begin()._M_node); }

◆ before_begin() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::before_begin ( ) const
inline

Definition at line 413 of file _slist.h.

414 { return const_iterator(__CONST_CAST(_Node_base*, &this->_M_head._M_data)); }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
#define __CONST_CAST(__x, __y)
Definition: features.h:584

◆ before_begin() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::before_begin ( ) const
inline

Definition at line 186 of file _slist.h.

187 { return const_iterator(&_M_iter_list, _M_non_dbg_impl.before_begin()); }

◆ before_begin() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::before_begin ( ) const
inline

Definition at line 187 of file _slist.h.

187{ return const_iterator(const_cast<_Node_base*>(_M_impl.before_begin()._M_node)); }

◆ begin() [1/6]

◆ begin() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::begin ( )
inline

Definition at line 189 of file _slist.h.

190 { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); }

◆ begin() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::begin ( )
inline

Definition at line 189 of file _slist.h.

189{ return iterator(_M_impl.begin()._M_node); }

◆ begin() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::begin ( ) const
inline

Definition at line 417 of file _slist.h.

418 { return const_iterator(this->_M_head._M_data._M_next);}

◆ begin() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::begin ( ) const
inline

Definition at line 191 of file _slist.h.

192 { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin());}

◆ begin() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::begin ( ) const
inline

Definition at line 190 of file _slist.h.

190{ return const_iterator(const_cast<_Node_base*>(_M_impl.begin()._M_node));}

◆ clear() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::clear ( )
inline

Definition at line 691 of file _slist.h.

692 { this->_M_erase_after(&this->_M_head._M_data, 0); }

Referenced by _Slist_merge(), slist< _Tp, >::splice(), and slist< _Tp, >::splice_after().

◆ clear() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::clear ( )
inline

Definition at line 393 of file _slist.h.

393 {
395 _M_non_dbg_impl.clear();
396 }

◆ clear() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::clear ( )
inline

Definition at line 363 of file _slist.h.

363{ _M_impl.clear(); }

◆ empty() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
bool slist< _Tp, >::empty ( ) const
inline

Definition at line 428 of file _slist.h.

428{ return this->_M_head._M_data._M_next == 0; }

Referenced by _Slist_merge(), _Slist_sort(), slist< _Tp, >::front(), and slist< _Tp, >::pop_front().

◆ empty() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
bool slist< _Tp, >::empty ( ) const
inline

Definition at line 199 of file _slist.h.

199{ return _M_non_dbg_impl.empty(); }

◆ empty() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
bool slist< _Tp, >::empty ( ) const
inline

Definition at line 197 of file _slist.h.

197{ return _M_impl.empty(); }

◆ end() [1/6]

◆ end() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::end ( )
inline

Definition at line 194 of file _slist.h.

195 { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); }

◆ end() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::end ( )
inline

Definition at line 192 of file _slist.h.

192{ return iterator(_M_impl.end()._M_node); }

◆ end() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::end ( ) const
inline

Definition at line 421 of file _slist.h.

421{ return const_iterator(); }

◆ end() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::end ( ) const
inline

Definition at line 196 of file _slist.h.

197 { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); }

◆ end() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::end ( ) const
inline

Definition at line 193 of file _slist.h.

193{ return iterator(_M_impl.end()._M_node); }

◆ erase() [1/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __first,
iterator  __last 
)
inline

Definition at line 678 of file _slist.h.

679 { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __first._M_node), __last._M_node)); }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39

◆ erase() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __first,
iterator  __last 
)
inline

Definition at line 375 of file _slist.h.

375 {
376 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end()))
378 return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator));
379 }
iterator erase(iterator __pos)
Definition: _slist.h:676

◆ erase() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __first,
iterator  __last 
)
inline

Definition at line 349 of file _slist.h.

350 { return iterator(_M_impl.erase(_BaseIte(__first._M_node), _BaseIte(__last._M_node))._M_node); }
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ erase() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __pos)
inline

Definition at line 676 of file _slist.h.

677 { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node))); }

Referenced by SlistTest::erase(), and slist< _Tp, >::splice().

◆ erase() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __pos)
inline

Definition at line 368 of file _slist.h.

368 {
370 _STLP_VERBOSE_ASSERT(__pos._M_iterator != _M_non_dbg_impl.before_begin(), _StlMsg_INVALID_ARGUMENT)
371 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
373 return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator));
374 }
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439
void _Invalidate_iterator(const iterator &__it)
Definition: _slist.h:99
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93

◆ erase() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase ( iterator  __pos)
inline

Definition at line 347 of file _slist.h.

348 { return iterator(_M_impl.erase(_BaseIte(__pos._M_node))._M_node); }

◆ erase_after() [1/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __before_first,
iterator  __last 
)
inline

Definition at line 673 of file _slist.h.

674 { return iterator(this->_M_erase_after(__before_first._M_node, __last._M_node)); }

◆ erase_after() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __before_first,
iterator  __last 
)
inline

Definition at line 359 of file _slist.h.

359 {
361 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__before_first, __last, begin(), end()))
362 iterator __tmp = __before_first; ++__tmp;
365 return iterator(&_M_iter_list, _M_non_dbg_impl.erase_after(__before_first._M_iterator, __last._M_iterator));
366 }
iterator erase_after(iterator __pos)
Definition: _slist.h:671

◆ erase_after() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __before_first,
iterator  __last 
)
inline

Definition at line 343 of file _slist.h.

344 { return iterator(_M_impl.erase_after(_BaseIte(__before_first._M_node),
345 _BaseIte(__last._M_node))._M_node); }

◆ erase_after() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __pos)
inline

Definition at line 671 of file _slist.h.

672 { return iterator(this->_M_erase_after(__pos._M_node)); }

Referenced by _Slist_unique(), SlistTest::erase(), and slist< _Tp, >::splice_after().

◆ erase_after() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __pos)
inline

Definition at line 351 of file _slist.h.

351 {
353 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
354 iterator __tmp = __pos; ++__tmp;
357 return iterator(&_M_iter_list, _M_non_dbg_impl.erase_after(__pos._M_iterator));
358 }

◆ erase_after() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::erase_after ( iterator  __pos)
inline

Definition at line 341 of file _slist.h.

342 { return iterator(_M_impl.erase_after(_BaseIte(__pos._M_node))._M_node); }

◆ front() [1/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
reference slist< _Tp, >::front ( )
inline

Definition at line 437 of file _slist.h.

437{ return *begin(); }

Referenced by _Slist_merge(), SlistTest::erase(), and SlistTest::insert().

◆ front() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
reference slist< _Tp, >::front ( )
inline

Definition at line 211 of file _slist.h.

211 {
212 _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER)
213 return _M_non_dbg_impl.front();
214 }
bool empty() const
Definition: _slist.h:428

◆ front() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
reference slist< _Tp, >::front ( )
inline

Definition at line 205 of file _slist.h.

205{ return *begin(); }

◆ front() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_reference slist< _Tp, >::front ( ) const
inline

Definition at line 438 of file _slist.h.

438{ return *begin(); }

◆ front() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_reference slist< _Tp, >::front ( ) const
inline

Definition at line 215 of file _slist.h.

215 {
216 _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER)
217 return _M_non_dbg_impl.front();
218 }

◆ front() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_reference slist< _Tp, >::front ( ) const
inline

Definition at line 206 of file _slist.h.

206{ return *begin(); }

◆ get_allocator() [1/3]

◆ get_allocator() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
allocator_type slist< _Tp, >::get_allocator ( ) const
inline

Definition at line 94 of file _slist.h.

94{ return _M_non_dbg_impl.get_allocator(); }

◆ get_allocator() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
allocator_type slist< _Tp, >::get_allocator ( ) const
inline

Definition at line 84 of file _slist.h.

85 { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); }

◆ insert() [1/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert ( iterator  __pos,
const value_type __x = _STLP_DEFAULT_CONSTRUCTED(value_type) 
)
inline

Definition at line 287 of file _slist.h.

291 { return iterator(_M_impl.insert(_BaseIte(__pos._M_node),
292 cast_traits::to_storage_type_cref(__x))._M_node); }

◆ insert() [2/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert ( iterator  __pos,
const value_type __x = _Tp() 
)
inline

Definition at line 635 of file _slist.h.

635 {
636#else
637 iterator insert(iterator __pos, const value_type& __x) {
638#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
639 return iterator(_M_insert_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
640 __x));
641 }
static int insert
Definition: xmllint.c:138

Referenced by SlistTest::insert(), and PtrSpecTest::ptr_specialization_test().

◆ insert() [3/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert ( iterator  __pos,
const value_type __x = _Tp() 
)
inline

Definition at line 329 of file _slist.h.

329 {
330#else
331 iterator insert(iterator __pos, const value_type& __x) {
332#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
333 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
334 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
335 return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator, __x));
336 }

◆ insert() [4/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 660 of file _slist.h.

661 {
662 _M_insert_after_range(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
663 __first, __last);
664 }

◆ insert() [5/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 319 of file _slist.h.

320 {
321 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
322 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
323 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last))
324 _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last);
325 }

◆ insert() [6/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 336 of file _slist.h.

337 { _M_impl.insert(_BaseIte(__pos._M_node), cast_traits::to_storage_type_cptr(__first),
338 cast_traits::to_storage_type_cptr(__last)); }

◆ insert() [7/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 665 of file _slist.h.

665 {
666#endif /* _STLP_MEMBER_TEMPLATES */
667 _M_splice_range(__pos._M_node, __first, __last);
668 }
void _M_splice_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:582

◆ insert() [8/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 313 of file _slist.h.

313 {
314 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
315 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
316 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
317 _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator);
318 }

◆ insert() [9/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 334 of file _slist.h.

335 { _M_impl.insert(_BaseIte(__pos._M_node), _BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); }

◆ insert() [10/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 650 of file _slist.h.

650 {
651 _M_insert_after_fill(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), __n, __x);
652 }

◆ insert() [11/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 344 of file _slist.h.

344 {
345 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
346 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
347 _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x);
348 }

◆ insert() [12/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 299 of file _slist.h.

300 { _M_impl.insert(_BaseIte(__pos._M_node), __n, cast_traits::to_storage_type_cref(__x)); }

◆ insert_after() [1/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __x = _STLP_DEFAULT_CONSTRUCTED(value_type) 
)
inline

Definition at line 226 of file _slist.h.

230 { return iterator(_M_impl.insert_after(_BaseIte(__pos._M_node),
231 cast_traits::to_storage_type_cref(__x))._M_node); }

◆ insert_after() [2/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __x = _Tp() 
)
inline

Definition at line 601 of file _slist.h.

601 {
602#else
603 iterator insert_after(iterator __pos, const value_type& __x) {
604#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
605 return iterator(_M_insert_after(__pos._M_node, __x));
606 }
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:601

Referenced by _Slist_merge(), SlistTest::insert(), slist< _Tp, >::insert_after(), and slist< _Tp, >::splice_after().

◆ insert_after() [3/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __x = _Tp() 
)
inline

Definition at line 238 of file _slist.h.

238 {
239#else
240 iterator insert_after(iterator __pos, const value_type& __x) {
241#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
243 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
244 return iterator(&_M_iter_list,_M_non_dbg_impl.insert_after(__pos._M_iterator, __x));
245 }

◆ insert_after() [4/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 624 of file _slist.h.

625 {
626 _M_insert_after_range(__pos._M_node, __first, __last);
627 }

◆ insert_after() [5/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 305 of file _slist.h.

306 {
308 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
309 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last))
310 _M_non_dbg_impl.insert_after(__pos._M_iterator, __first, __last);
311 }

◆ insert_after() [6/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const value_type __first,
const value_type __last 
)
inline

Definition at line 278 of file _slist.h.

279 {
280 _M_impl.insert_after(_BaseIte(__pos._M_node),
281 cast_traits::to_storage_type_cptr(__first),
282 cast_traits::to_storage_type_cptr(__last));
283 }

◆ insert_after() [7/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 628 of file _slist.h.

629 {
630#endif /* _STLP_MEMBER_TEMPLATES */
631 _M_splice_after_range(__pos._M_node, __first, __last);
632 }
void _M_splice_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:545

◆ insert_after() [8/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 298 of file _slist.h.

299 {
301 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
302 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
303 _M_non_dbg_impl.insert_after(__pos._M_iterator, __first._M_iterator, __last._M_iterator);
304 }

◆ insert_after() [9/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
const_iterator  __first,
const_iterator  __last 
)
inline

Definition at line 274 of file _slist.h.

276 { _M_impl.insert_after(_BaseIte(__pos._M_node),
277 _BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); }

◆ insert_after() [10/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 614 of file _slist.h.

614 {
615 _M_insert_after_fill(__pos._M_node, __n, __x);
616 }

◆ insert_after() [11/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 253 of file _slist.h.

253 {
255 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
256 _M_non_dbg_impl.insert_after(__pos._M_iterator, __n, __x);
257 }

◆ insert_after() [12/12]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::insert_after ( iterator  __pos,
size_type  __n,
const value_type __x 
)
inline

Definition at line 238 of file _slist.h.

239 { _M_impl.insert_after(_BaseIte(__pos._M_node), __n, cast_traits::to_storage_type_cref(__x)); }

◆ max_size() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::max_size ( ) const
inline

Definition at line 426 of file _slist.h.

426{ return size_type(-1); }

◆ max_size() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::max_size ( ) const
inline

Definition at line 201 of file _slist.h.

201{ return _M_non_dbg_impl.max_size(); }

◆ max_size() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::max_size ( ) const
inline

Definition at line 196 of file _slist.h.

196{ return _M_impl.max_size(); }

◆ merge() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::merge ( _Self __x)
inline

Definition at line 789 of file _slist.h.

789{ _STLP_PRIV _Slist_merge(*this, __x, less<value_type>()); }
void _Slist_merge(slist< _Tp, _Alloc > &__that, slist< _Tp, _Alloc > &__x, _StrictWeakOrdering __comp)
Definition: _slist.c:148

◆ merge() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::merge ( _Self __x)
inline

Definition at line 528 of file _slist.h.

528 {
529 _STLP_VERBOSE_ASSERT(&__x != this, _StlMsg_INVALID_ARGUMENT)
530#if !defined (_STLP_NO_EXTENSIONS)
531 /* comments below due to bug in GCC compilers: ones eat all memory and die if see
532 * something like namespace_name::func_name() - ptr
533 */
534 _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(_M_non_dbg_impl.begin(), _M_non_dbg_impl.end()))
535 _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(__x.begin()._M_iterator, __x.end()._M_iterator))
536#endif
537 _M_non_dbg_impl.merge(__x._M_non_dbg_impl);
538 if (get_allocator() == __x.get_allocator()) {
539 __x._M_iter_list._Set_owner(_M_iter_list);
540 }
541 else {
542 __x._Invalidate_iterators(__x.begin(), __x.end());
543 }
544 }
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted(_ForwardIter __first, _ForwardIter __last)
Definition: _algo.h:722
GLuint GLuint end
Definition: gl.h:1545

◆ merge() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::merge ( _Self __x)
inline

Definition at line 385 of file _slist.h.

385{ _M_impl.merge(__x._M_impl); }

◆ operator=() [1/3]

template<class _Tp , class _Alloc >
_STLP_MOVE_TO_STD_NAMESPACE slist< _Tp, _Alloc > & slist< _Tp, _Alloc >::operator= ( const _Self __x)

Definition at line 70 of file _slist.c.

70 {
71 if (&__x != this) {
72 _Node_base* __p1 = &this->_M_head._M_data;
73 _Node_base* __n1 = this->_M_head._M_data._M_next;
74 const _Node_base* __n2 = __x._M_head._M_data._M_next;
75 while (__n1 && __n2) {
76 __STATIC_CAST(_Node*, __n1)->_M_data = __STATIC_CAST(const _Node*, __n2)->_M_data;
77 __p1 = __n1;
78 __n1 = __n1->_M_next;
79 __n2 = __n2->_M_next;
80 }
81 if (__n2 == 0)
82 this->_M_erase_after(__p1, 0);
83 else
86 }
87 return *this;
88}

◆ operator=() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
_Self & slist< _Tp, >::operator= ( const _Self __x)
inline

Definition at line 169 of file _slist.h.

169 {
170 if (this != &__x) {
172 _M_non_dbg_impl = __x._M_non_dbg_impl;
173 }
174 return *this;
175 }

◆ operator=() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
_Self & slist< _Tp, >::operator= ( const _Self __x)
inline

Definition at line 143 of file _slist.h.

143{ _M_impl = __x._M_impl; return *this; }

◆ pop_front() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::pop_front ( )
inline

Definition at line 451 of file _slist.h.

451 {
452 _Node* __node = __STATIC_CAST(_Node*, this->_M_head._M_data._M_next);
453 this->_M_head._M_data._M_next = __node->_M_next;
454 _STLP_STD::_Destroy(&__node->_M_data);
455 this->_M_head.deallocate(__node, 1);
456 }

◆ pop_front() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::pop_front ( )
inline

Definition at line 220 of file _slist.h.

220 {
221 _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER)
222 _M_non_dbg_impl.pop_front();
223 }

◆ pop_front() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::pop_front ( )
inline

Definition at line 218 of file _slist.h.

218{ _M_impl.pop_front(); }

◆ previous() [1/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::previous ( const_iterator  __pos)
inline

Definition at line 458 of file _slist.h.

458 {
459 return iterator(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node));
460 }

Referenced by SlistTest::splice().

◆ previous() [2/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::previous ( const_iterator  __pos)
inline

Definition at line 224 of file _slist.h.

224 {
225 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
226 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
227 return iterator(&_M_iter_list, _M_non_dbg_impl.previous(__pos._M_iterator));
228 }

◆ previous() [3/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
iterator slist< _Tp, >::previous ( const_iterator  __pos)
inline

Definition at line 220 of file _slist.h.

221 { return iterator(_M_impl.previous(_BaseConstIte(__pos._M_node))._M_node); }

◆ previous() [4/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::previous ( const_iterator  __pos) const
inline

Definition at line 461 of file _slist.h.

461 {
463 _STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data,
464 __pos._M_node)));
465 }

◆ previous() [5/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::previous ( const_iterator  __pos) const
inline

Definition at line 229 of file _slist.h.

229 {
230 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
231 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
232 return const_iterator(&_M_iter_list, _M_non_dbg_impl.previous(__pos._M_iterator));
233 }

◆ previous() [6/6]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
const_iterator slist< _Tp, >::previous ( const_iterator  __pos) const
inline

Definition at line 222 of file _slist.h.

223 { return const_iterator(const_cast<_Node_base*>(_M_impl.previous(_BaseConstIte(__pos._M_node))._M_node)); }

◆ push_front() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::push_front ( const value_type __x = _STLP_DEFAULT_CONSTRUCTED(value_type))
inline

_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS

Definition at line 208 of file _slist.h.

212 { _M_impl.push_front(cast_traits::to_storage_type_cref(__x)); }

◆ push_front() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::push_front ( const value_type __x = _Tp())
inline

_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS

Definition at line 440 of file _slist.h.

440 {
441#else
442 void push_front(const value_type& __x) {
443#endif
444 _STLP_PRIV __slist_make_link(&this->_M_head._M_data, _M_create_node(__x));
445 }
void push_front(const value_type &__x=_Tp())
Definition: _slist.h:440

Referenced by AlgTest::find_first_of_test(), and slist< _Tp, >::push_front().

◆ push_front() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::push_front ( const_reference  __x)
inline

Definition at line 219 of file _slist.h.

219{ _M_non_dbg_impl.push_front(__x); }

◆ remove() [1/3]

template<class _Tp , class _Alloc >
void slist< _Tp, _Alloc >::remove ( const _Tp &  __val)

Definition at line 119 of file _slist.c.

119 {
120 _Node_base* __cur = &this->_M_head._M_data;
121 while (__cur && __cur->_M_next) {
122 if (__STATIC_CAST(_Node*, __cur->_M_next)->_M_data == __val)
123 this->_M_erase_after(__cur);
124 else
125 __cur = __cur->_M_next;
126 }
127}

◆ remove() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::remove ( const value_type __val)
inline

Definition at line 502 of file _slist.h.

502 {
503 _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end();
504 while (__first != __last) {
505 _Base_iterator __next = __first;
506 ++__next;
507 if (__val == *__first) {
509 _M_non_dbg_impl.erase(__first);
510 }
511 __first = __next;
512 }
513 }
_Base::iterator _Base_iterator
Definition: _slist.h:104

◆ remove() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::remove ( const value_type __val)
inline

Definition at line 383 of file _slist.h.

383{ _M_impl.remove(cast_traits::to_storage_type_cref(__val)); }

◆ resize() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::resize ( size_type  __new_size,
const value_type __x = _STLP_DEFAULT_CONSTRUCTED(value_type) 
)
inline

Definition at line 353 of file _slist.h.

357 { _M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x));}

◆ resize() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::resize ( size_type  __new_size,
const value_type __x = _Tp() 
)
inline

Definition at line 382 of file _slist.h.

382 {
383#else
384 void resize(size_type __new_size, const value_type& __x) {
385#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
386 _M_non_dbg_impl.resize(__new_size, __x);
387 }
void resize(size_type new_size, const value_type &__x=_Tp())
Definition: _slist.c:106

◆ resize() [3/3]

template<class _Tp , class _Alloc >
void slist< _Tp, _Alloc >::resize ( size_type  new_size,
const value_type __x = _Tp() 
)

Definition at line 106 of file _slist.c.

106 {
107 _Node_base* __cur = &this->_M_head._M_data;
108 while (__cur->_M_next != 0 && __len > 0) {
109 --__len;
110 __cur = __cur->_M_next;
111 }
112 if (__cur->_M_next)
113 this->_M_erase_after(__cur, 0);
114 else
115 _M_insert_after_fill(__cur, __len, __x);
116}

Referenced by slist< _Tp, >::resize().

◆ reverse() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::reverse ( )
inline

Definition at line 781 of file _slist.h.

781 {
782 if (this->_M_head._M_data._M_next)
783 this->_M_head._M_data._M_next = _STLP_PRIV _Sl_global_inst::__reverse(this->_M_head._M_data._M_next);
784 }
static _Slist_node_base *_STLP_CALL __reverse(_Slist_node_base *__node)
Definition: _slist_base.c:74

◆ reverse() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::reverse ( )
inline

Definition at line 499 of file _slist.h.

500 { _M_non_dbg_impl.reverse(); }

◆ reverse() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::reverse ( )
inline

Definition at line 381 of file _slist.h.

381{ _M_impl.reverse(); }

◆ size() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::size ( ) const
inline

Definition at line 423 of file _slist.h.

424 { return _STLP_PRIV _Sl_global_inst::size(this->_M_head._M_data._M_next); }
static size_t _STLP_CALL size(_Slist_node_base *__node)
Definition: _slist_base.c:89

Referenced by SlistTest::insert().

◆ size() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::size ( ) const
inline

Definition at line 200 of file _slist.h.

200{ return _M_non_dbg_impl.size(); }

◆ size() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
size_type slist< _Tp, >::size ( ) const
inline

Definition at line 195 of file _slist.h.

195{ return _M_impl.size(); }

◆ sort() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::sort ( )
inline

Definition at line 790 of file _slist.h.

void _Slist_sort(slist< _Tp, _Alloc > &__that, _StrictWeakOrdering __comp)
Definition: _slist.c:184

Referenced by test_slist_sort::operator()().

◆ sort() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::sort ( )
inline

Definition at line 545 of file _slist.h.

545 {
546 _M_non_dbg_impl.sort();
547 }

◆ sort() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::sort ( )
inline

Definition at line 386 of file _slist.h.

386{_M_impl.sort(); }

◆ splice() [1/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x 
)
inline

Definition at line 737 of file _slist.h.

737 {
738 if (__x._M_head._M_data._M_next) {
739 if (this->get_allocator() == __x.get_allocator()) {
741 &__x._M_head._M_data,
742 _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, 0));
743 }
744 else {
745 insert(__pos, __x.begin(), __x.end());
746 __x.clear();
747 }
748 }
749 }
static void _STLP_CALL __splice_after(_Slist_node_base *__pos, _Slist_node_base *__before_first, _Slist_node_base *__before_last)
Definition: _slist_base.c:60

Referenced by slist< _Tp, >::_M_splice_range(), and SlistTest::splice().

◆ splice() [2/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x 
)
inline

Definition at line 454 of file _slist.h.

454 {
455 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
456 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
457 _STLP_VERBOSE_ASSERT(!(&__x == this), _StlMsg_INVALID_ARGUMENT)
458 _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl);
459 if (get_allocator() == __x.get_allocator()) {
460 __x._M_iter_list._Set_owner(_M_iter_list);
461 }
462 else {
463 __x._Invalidate_iterators(__x.begin(), __x.end());
464 }
465 }

◆ splice() [3/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x 
)
inline

Definition at line 373 of file _slist.h.

374 { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl); }

◆ splice() [4/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __first,
iterator  __last 
)
inline

Definition at line 766 of file _slist.h.

766 {
767 if (__first != __last) {
768 if (this->get_allocator() == __x.get_allocator()) {
770 _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __first._M_node),
771 _STLP_PRIV _Sl_global_inst::__previous(__first._M_node, __last._M_node));
772 }
773 else {
774 insert(__pos, __first, __last);
775 __x.erase(__first, __last);
776 }
777 }
778 }

◆ splice() [5/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __first,
iterator  __last 
)
inline

Definition at line 484 of file _slist.h.

484 {
485 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
486 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
487 //_STLP_VERBOSE_ASSERT(&__x != this, _StlMsg_INVALID_ARGUMENT)
488 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, __x.begin(), __x.end()))
489 if (get_allocator() == __x.get_allocator()) {
490 _STLP_PRIV __change_range_owner(__first, __last, &_M_iter_list);
491 }
492 else {
493 __x._Invalidate_iterators(__first, __last);
494 }
495 _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl,
496 __first._M_iterator, __last._M_iterator);
497 }
if(dx< 0)
Definition: linetemp.h:194

◆ splice() [6/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __first,
iterator  __last 
)
inline

Definition at line 377 of file _slist.h.

378 { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl,
379 _BaseIte(__first._M_node), _BaseIte(__last._M_node)); }

◆ splice() [7/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __i 
)
inline

Definition at line 752 of file _slist.h.

752 {
753 if (this->get_allocator() == __x.get_allocator()) {
755 _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __i._M_node),
756 __i._M_node);
757 }
758 else {
759 insert(__pos, *__i);
760 __x.erase(__i);
761 }
762 }

◆ splice() [8/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __i 
)
inline

Definition at line 467 of file _slist.h.

467 {
468 //__pos should be owned by *this and not be the before_begin iterator
469 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
470 _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT)
471 //__i should be dereferenceable, not before_begin and be owned by __x
473 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list ,__i))
474 _STLP_VERBOSE_ASSERT(!(__i == __x.before_begin()), _StlMsg_INVALID_ARGUMENT)
475 if (get_allocator() == __x.get_allocator()) {
476 _STLP_PRIV __change_ite_owner(__i, &_M_iter_list);
477 }
478 else {
479 __x._Invalidate_iterator(__i);
480 }
481 _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl, __i._M_iterator);
482 }

◆ splice() [9/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice ( iterator  __pos,
_Self __x,
iterator  __i 
)
inline

Definition at line 375 of file _slist.h.

376 { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl, _BaseIte(__i._M_node)); }

◆ splice_after() [1/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x 
)
inline

Definition at line 727 of file _slist.h.

727 {
728 if (this->get_allocator() == __x.get_allocator())
729 _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node, &__x._M_head._M_data);
730 else {
731 this->insert_after(__pos, __x.begin(), __x.end());
732 __x.clear();
733 }
734 }

◆ splice_after() [2/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x 
)
inline

Definition at line 402 of file _slist.h.

402 {
404 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
405 _STLP_VERBOSE_ASSERT(!(&__x == this), _StlMsg_INVALID_ARGUMENT)
406 _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl);
407 if (get_allocator() == __x.get_allocator()) {
408 __x._M_iter_list._Set_owner(_M_iter_list);
409 }
410 else {
411 __x._Invalidate_iterators(__x.begin(), __x.end());
412 }
413 }

◆ splice_after() [3/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x 
)
inline

Definition at line 371 of file _slist.h.

372 { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl); }

◆ splice_after() [4/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __before_first,
iterator  __before_last 
)
inline

Definition at line 697 of file _slist.h.

698 {
699 if (__before_first != __before_last) {
700 if (this->get_allocator() == __x.get_allocator()) {
702 __before_first._M_node, __before_last._M_node);
703 }
704 else {
705 this->insert_after(__pos, iterator(__before_first._M_node->_M_next), iterator(__before_last._M_node->_M_next));
706 __x.erase_after(__before_first, ++__before_last);
707 }
708 }
709 }

Referenced by hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_rehash(), slist< _Tp, >::_M_splice_after_range(), _Slist_merge(), _Slist_sort(), and SlistTest::splice().

◆ splice_after() [5/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __before_first,
iterator  __before_last 
)
inline

Definition at line 434 of file _slist.h.

435 {
437 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
438 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__before_first, __before_last))
439 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list, __before_first))
442 iterator __first = __before_first; ++__first;
443 iterator __last = __before_last; ++__last;
444 if (get_allocator() == __x.get_allocator()) {
445 _STLP_PRIV __change_range_owner(__first, __last, &_M_iter_list);
446 }
447 else {
448 __x._Invalidate_iterators(__first, __last);
449 }
450 _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl,
451 __before_first._M_iterator, __before_last._M_iterator);
452 }

◆ splice_after() [6/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __before_first,
iterator  __before_last 
)
inline

Definition at line 365 of file _slist.h.

367 { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl,
368 _BaseIte(__before_first._M_node), _BaseIte(__before_last._M_node)); }

◆ splice_after() [7/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __prev 
)
inline

Definition at line 713 of file _slist.h.

713 {
714 if (this->get_allocator() == __x.get_allocator()) {
716 __prev._M_node, __prev._M_node->_M_next);
717 }
718 else {
719 this->insert_after(__pos, __STATIC_CAST(_Node*, __prev._M_node->_M_next)->_M_data);
720 __x.erase_after(__prev);
721 }
722 }

◆ splice_after() [8/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __prev 
)
inline

Definition at line 417 of file _slist.h.

417 {
419 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos))
421 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list, __prev))
422 iterator __elem = __prev; ++__elem;
423 _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl, __prev._M_iterator);
424 if (get_allocator() == __x.get_allocator()) {
425 _STLP_PRIV __change_ite_owner(__elem, &_M_iter_list);
426 }
427 else {
428 __x._Invalidate_iterator(__elem);
429 }
430 }

◆ splice_after() [9/9]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::splice_after ( iterator  __pos,
_Self __x,
iterator  __prev 
)
inline

Definition at line 369 of file _slist.h.

370 { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl, _BaseIte(__prev._M_node)); }

◆ swap() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::swap ( _Self __x)
inline

Definition at line 430 of file _slist.h.

431 { this->_M_head.swap(__x._M_head); }

Referenced by _Slist_sort(), and hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::swap().

◆ swap() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::swap ( _Self __x)
inline

Definition at line 203 of file _slist.h.

203 {
204 _M_iter_list._Swap_owners(__x._M_iter_list);
205 _M_non_dbg_impl.swap(__x._M_non_dbg_impl);
206 }

◆ swap() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::swap ( _Self __x)
inline

Definition at line 199 of file _slist.h.

199{ _M_impl.swap(__x._M_impl); }

◆ unique() [1/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::unique ( )
inline

Definition at line 788 of file _slist.h.

_STLP_MOVE_TO_PRIV_NAMESPACE void _Slist_unique(slist< _Tp, _Alloc > &__that, _BinaryPredicate __pred)
Definition: _slist.c:134

◆ unique() [2/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::unique ( )
inline

Definition at line 514 of file _slist.h.

514 {
515 _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end();
516 if (__first == __last) return;
517 _Base_iterator __next = __first;
518 while (++__next != __last) {
519 if (*__first == *__next) {
521 _M_non_dbg_impl.erase(__next);
522 }
523 else
524 __first = __next;
525 __next = __first;
526 }
527 }

◆ unique() [3/3]

template<class _Tp , _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::unique ( )
inline

Definition at line 384 of file _slist.h.

384{ _M_impl.unique(); }

Member Data Documentation

◆ _M_impl

◆ _M_iter_list

◆ _M_non_dbg_impl


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