ReactOS  0.4.14-dev-358-gbef841c
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 198 of file _slist.h.

Member Typedef Documentation

◆ _Base [1/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 [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_base<_Tp,_Alloc> slist< _Tp, >::_Base
private

Definition at line 226 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 75 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 237 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 65 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 247 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 63 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 227 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 _Alloc_traits<value_type, _Alloc>::allocator_type slist< _Tp, >::allocator_type

Definition at line 81 of file _slist.h.

◆ allocator_type [2/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.

◆ 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<value_type, _Const_traits<value_type> > slist< _Tp, >::const_iterator

Definition at line 78 of file _slist.h.

◆ const_iterator [2/3]

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

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<_Tp, _Const_traits<_Tp> > slist< _Tp, >::const_iterator

Definition at line 240 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 70 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 232 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 72 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 234 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 74 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 236 of file _slist.h.

◆ iterator [1/3]

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

Definition at line 77 of file _slist.h.

◆ iterator [2/3]

template<class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _SlistDbgTraits<_Nonconst_traits<value_type> > > slist< _Tp, >::iterator

Definition at line 91 of file _slist.h.

◆ iterator [3/3]

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

Definition at line 239 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 69 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 231 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 71 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 233 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 73 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 235 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 68 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 229 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
slist(const allocator_type &__a=allocator_type())
Definition: _slist.h:280
_Base::allocator_type allocator_type
Definition: _slist.h:243
#define _STLP_PRIV
Definition: _dm.h:70

◆ 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
size_t size_type
Definition: _slist.h:235
#define _Alloc
Definition: _bvector.h:330
slist(const allocator_type &__a=allocator_type())
Definition: _slist.h:280
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
Definition: _construct.h:265
_Base::allocator_type allocator_type
Definition: _slist.h:243
#define _STLP_PRIV
Definition: _dm.h:70
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); }
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70

◆ 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); }
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70

◆ 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()); }
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
#define _STLP_PRIV
Definition: _dm.h:70

◆ 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.

#define _STLP_PRIV
Definition: _dm.h:70
GLenum src
Definition: glext.h:6340

◆ ~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.

return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
GLenum src
Definition: glext.h:6340
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ 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),
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_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),
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST > _ConstructCheck
Definition: _slist.h:85

◆ 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) {}
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST > _ConstructCheck
Definition: _slist.h:85

◆ ~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)) {}
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
return __n
Definition: _algo.h:75
_Base _M_impl
Definition: _slist.h:407

◆ 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),
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ 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),
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ 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) {}
_Base _M_impl
Definition: _slist.h:407

◆ 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)) {}
_Base _M_impl
Definition: _slist.h:407
GLenum src
Definition: glext.h:6340

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)
#define _STLP_PRIV
Definition: _dm.h:70
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

Referenced by slist< value_type, _All >::erase(), slist< value_type, _All >::erase_after(), slist< value_type, _All >::remove(), slist< value_type, _All >::splice(), slist< value_type, _All >::splice_after(), and slist< value_type, _All >::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  }
#define _STLP_UNWIND(action)
Definition: features.h:824
void _Copy_Construct(_Tp *__p, const _Tp &__val)
Definition: _construct.h:130
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
#define _STLP_TRY
Definition: features.h:817
_Tp value_type
Definition: _slist.h:229
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::_M_create_node(), slist< value_type, _All >::_M_insert_after(), slist< value_type, _All >::_M_insert_after_fill(), slist< value_type, _All >::_M_insert_after_range(), slist< value_type, _All >::_M_splice_after_range(), slist< value_type, _All >::_M_splice_range(), and slist< value_type, _All >::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)
100  _M_insert_after_fill(__prev, __n, __val);
101  else
102  this->_M_erase_after(__prev, 0);
103 }
return __n
Definition: _algo.h:75
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
void _M_insert_after_fill(_Node_base *__pos, size_type __n, const value_type &__x)
Definition: _slist.h:482

Referenced by slist< value_type, _All >::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  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
#define _STLP_PRIV
Definition: _dm.h:70
_Node * _M_insert_after(_Node_base *__pos, const value_type &__x=_Tp())
Definition: _slist.h:469
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Tp value_type
Definition: _slist.h:229
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::_M_insert_after(), slist< value_type, _All >::insert(), and slist< value_type, _All >::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  }
return __n
Definition: _algo.h:75
size_t size_type
Definition: _slist.h:235
#define _STLP_PRIV
Definition: _dm.h:70
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::insert(), slist< value_type, _All >::insert_after(), and slist< value_type, _All >::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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::assign(), slist< value_type, _All >::insert(), slist< value_type, _All >::insert_after(), and slist< value_type, _All >::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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

◆ _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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::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_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
slist< _Tp, _Alloc > _Self
Definition: _slist.h:227
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
allocator_type get_allocator() const
Definition: _slist.h:277
void splice_after(iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
Definition: _slist.h:697

◆ _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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
_Slist_node_base * __slist_make_link(_Slist_node_base *__prev_node, _Slist_node_base *__new_node)
Definition: _slist_base.h:43
_Node * _M_create_node(const value_type &__x=_Tp())
Definition: _slist.h:250

Referenced by slist< value_type, _All >::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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
slist< _Tp, _Alloc > _Self
Definition: _slist.h:227
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
allocator_type get_allocator() const
Definition: _slist.h:277
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 ( 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)); }
return __n
Definition: _algo.h:75
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656

◆ 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  }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ assign() [3/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  }
return __n
Definition: _algo.h:75
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
iterator end()
Definition: _slist.h:420

◆ 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 180 of file _slist.h.

180  {
181  _M_impl.assign(_BaseConstIte(__first._M_node),
182  _BaseConstIte(__last._M_node));
183  }
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ 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 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  }
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
iterator end()
Definition: _slist.h:420

◆ assign() [6/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  }
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
iterator end()
Definition: _slist.h:420

◆ 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.

348 { _M_fill_assign(__n, __val); }
return __n
Definition: _algo.h:75
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
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 ( 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  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246

◆ assign() [9/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  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246

◆ before_begin() [1/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()); }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ before_begin() [2/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); }
_Base _M_impl
Definition: _slist.h:407
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ before_begin() [3/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()); }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ 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 187 of file _slist.h.

187 { return const_iterator(const_cast<_Node_base*>(_M_impl.before_begin()._M_node)); }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_impl
Definition: _slist.h:407

◆ before_begin() [5/6]

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

◆ 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 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
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
#define __CONST_CAST(__x, __y)
Definition: features.h:584

◆ begin() [1/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()); }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ 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.

189 { return iterator(_M_impl.begin()._M_node); }
_Base _M_impl
Definition: _slist.h:407
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ begin() [3/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));}
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_impl
Definition: _slist.h:407

◆ begin() [4/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());}
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ begin() [5/6]

◆ begin() [6/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);}
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240

◆ clear() [1/3]

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

Definition at line 363 of file _slist.h.

363 { _M_impl.clear(); }
_Base _M_impl
Definition: _slist.h:407

◆ clear() [2/3]

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

Definition at line 393 of file _slist.h.

393  {
395  _M_non_dbg_impl.clear();
396  }
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
iterator end()
Definition: _slist.h:420

◆ clear() [3/3]

template<class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) >
void slist< _Tp, >::clear ( void  )
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< value_type, _All >::splice(), and slist< value_type, _All >::splice_after().

◆ empty() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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(); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ empty() [3/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< value_type, _All >::front(), and slist< value_type, _All >::pop_front().

◆ end() [1/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); }
_Base _M_impl
Definition: _slist.h:407
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ end() [2/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); }
_Base _M_impl
Definition: _slist.h:407
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ end() [3/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()); }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ end() [4/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()); }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ end() [5/6]

◆ end() [6/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(); }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240

◆ erase() [1/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); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ 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 349 of file _slist.h.

350  { return iterator(_M_impl.erase(_BaseIte(__first._M_node), _BaseIte(__last._M_node))._M_node); }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ erase() [3/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))
372  _Invalidate_iterator(__pos);
373  return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator));
374  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterator(const iterator &__it)
Definition: _slist.h:99
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ erase() [4/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()))
377  _Invalidate_iterators(__first, __last);
378  return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator));
379  }
return
Definition: dirsup.c:529
iterator erase(iterator __pos)
Definition: _slist.h:676
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
iterator end()
Definition: _slist.h:420

◆ erase() [5/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))); }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

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

◆ erase() [6/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
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ erase_after() [1/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); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ 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 343 of file _slist.h.

344  { return iterator(_M_impl.erase_after(_BaseIte(__before_first._M_node),
345  _BaseIte(__last._M_node))._M_node); }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ erase_after() [3/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;
356  _Invalidate_iterator(__tmp);
357  return iterator(&_M_iter_list, _M_non_dbg_impl.erase_after(__pos._M_iterator));
358  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterator(const iterator &__it)
Definition: _slist.h:99
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ erase_after() [4/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  }
return
Definition: dirsup.c:529
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
iterator erase_after(iterator __pos)
Definition: _slist.h:671
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
iterator end()
Definition: _slist.h:420

◆ 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 671 of file _slist.h.

672  { return iterator(this->_M_erase_after(__pos._M_node)); }
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

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

◆ erase_after() [6/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)); }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ front() [1/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(); }
iterator begin()
Definition: _slist.h:416

◆ front() [2/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(); }
iterator begin()
Definition: _slist.h:416

◆ front() [3/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
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ front() [4/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  }
bool empty() const
Definition: _slist.h:428
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ front() [5/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(); }
iterator begin()
Definition: _slist.h:416

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

◆ front() [6/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(); }
iterator begin()
Definition: _slist.h:416

◆ get_allocator() [1/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); }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Base _M_impl
Definition: _slist.h:407
_Tp value_type
Definition: _slist.h:229

◆ 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(); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ get_allocator() [3/3]

◆ 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); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ insert() [2/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)); }
return __n
Definition: _algo.h:75
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ insert() [3/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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ 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 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ insert() [5/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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
iterator insert(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:635
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Tp value_type
Definition: _slist.h:229
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ insert() [6/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)); }
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ insert() [7/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)); }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ insert() [8/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  }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ insert() [9/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 _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
_Node * _M_insert_after(_Node_base *__pos, const value_type &__x=_Tp())
Definition: _slist.h:469
iterator insert(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:635
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Tp value_type
Definition: _slist.h:229

Referenced by SlistTest::insert(), slist< value_type, _All >::insert(), PtrSpecTest::ptr_specialization_test(), and slist< value_type, _All >::splice().

◆ 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  }
return __n
Definition: _algo.h:75
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
void _M_insert_after_fill(_Node_base *__pos, size_type __n, const value_type &__x)
Definition: _slist.h:482

◆ insert() [11/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  }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70

◆ insert() [12/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  }
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
void _M_splice_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:582

◆ 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); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ 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 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  }
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:601
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Tp value_type
Definition: _slist.h:229

◆ insert_after() [3/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)); }
return __n
Definition: _algo.h:75
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ insert_after() [4/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  }
return __n
Definition: _algo.h:75
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ insert_after() [5/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)); }
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ 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  }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ 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 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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ insert_after() [8/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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ insert_after() [9/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
_Node * _M_insert_after(_Node_base *__pos, const value_type &__x=_Tp())
Definition: _slist.h:469
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Tp value_type
Definition: _slist.h:229

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

◆ 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  }
return __n
Definition: _algo.h:75
void _M_insert_after_fill(_Node_base *__pos, size_type __n, const value_type &__x)
Definition: _slist.h:482

◆ insert_after() [11/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  }
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ insert_after() [12/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
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ 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 196 of file _slist.h.

196 { return _M_impl.max_size(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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(); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ 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 426 of file _slist.h.

426 { return size_type(-1); }
size_t size_type
Definition: _slist.h:235

◆ merge() [1/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); }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
GLuint GLuint end
Definition: gl.h:1545
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted(_ForwardIter __first, _ForwardIter __last)
Definition: _algo.h:722
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ merge() [3/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
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator=() [1/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; }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
iterator begin()
Definition: _slist.h:416
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
Definition: _slist.h:101
iterator end()
Definition: _slist.h:420

◆ operator=() [3/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
85  const_iterator(0));
86  }
87  return *this;
88 }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
void _M_insert_after_range(_Node_base *__pos, const value_type *__first, const value_type *__last)
Definition: _slist.h:508
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
#define __CONST_CAST(__x, __y)
Definition: features.h:584

◆ pop_front() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
bool empty() const
Definition: _slist.h:428
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ pop_front() [3/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  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
void _Destroy(_Tp *__pointer)
Definition: _construct.h:63

◆ previous() [1/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); }
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_Base _M_impl
Definition: _slist.h:407
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

◆ previous() [2/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)); }
_Base::const_iterator _BaseConstIte
Definition: _slist.h:62
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_impl
Definition: _slist.h:407

◆ previous() [3/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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ 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 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  }
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ previous() [5/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  }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239

Referenced by SlistTest::splice().

◆ 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 461 of file _slist.h.

461  {
463  _STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data,
464  __pos._M_node)));
465  }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
Definition: _slist.h:240
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
#define _STLP_PRIV
Definition: _dm.h:70
#define __CONST_CAST(__x, __y)
Definition: features.h:584

◆ 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)); }
_Base _M_impl
Definition: _slist.h:407

◆ push_front() [2/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); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ push_front() [3/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  }
_Tp value_type
Definition: _slist.h:229
void push_front(const value_type &__x=_Tp())
Definition: _slist.h:440

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

◆ remove() [1/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)); }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656

◆ 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 _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterator(const iterator &__it)
Definition: _slist.h:99
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Base::iterator _Base_iterator
Definition: _slist.h:104

◆ remove() [3/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 }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656

◆ 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));}
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
size_t size_type
Definition: _slist.h:235
_Base _M_non_dbg_impl
Definition: _slist.h:96
void resize(size_type new_size, const value_type &__x=_Tp())
Definition: _slist.c:106
_Tp value_type
Definition: _slist.h:229

◆ 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 }
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_STLP_PRIV _Slist_node_base _Node_base
Definition: _slist.h:247
void _M_insert_after_fill(_Node_base *__pos, size_type __n, const value_type &__x)
Definition: _slist.h:482

Referenced by slist< value_type, _All >::resize().

◆ reverse() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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(); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ reverse() [3/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
#define _STLP_PRIV
Definition: _dm.h:70

◆ size() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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(); }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ size() [3/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
#define _STLP_PRIV
Definition: _dm.h:70

Referenced by SlistTest::insert().

◆ sort() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96

◆ sort() [3/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
#define _STLP_PRIV
Definition: _dm.h:70

Referenced by test_slist_sort::operator()().

◆ 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 373 of file _slist.h.

374  { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ splice() [2/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)); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ splice() [3/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)); }
_Base _M_impl
Definition: _slist.h:407
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ splice() [4/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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ splice() [5/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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ 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 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ splice() [7/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 _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
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
iterator insert(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:635
allocator_type get_allocator() const
Definition: _slist.h:277

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

◆ 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 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  }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
#define _STLP_PRIV
Definition: _dm.h:70
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
iterator insert(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:635
allocator_type get_allocator() const
Definition: _slist.h:277

◆ splice() [9/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  }
static _Slist_node_base *_STLP_CALL __previous(_Slist_node_base *__head, const _Slist_node_base *__node)
Definition: _slist_base.c:39
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
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
iterator insert(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:635
allocator_type get_allocator() const
Definition: _slist.h:277

◆ splice_after() [1/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)); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ splice_after() [2/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)); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ 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); }
_Base _M_impl
Definition: _slist.h:407
_Base::iterator _BaseIte
Definition: _slist.h:61

◆ splice_after() [4/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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ splice_after() [5/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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277

◆ 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 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  }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
allocator_type get_allocator() const
Definition: _slist.h:277

◆ splice_after() [7/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  }
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:601
#define _STLP_PRIV
Definition: _dm.h:70
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
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
allocator_type get_allocator() const
Definition: _slist.h:277

Referenced by slist< value_type, _All >::_M_splice_after_range(), _Slist_merge(), and SlistTest::splice().

◆ 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 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  }
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:601
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_STLP_PRIV _Slist_node< _Tp > _Node
Definition: _slist.h:246
#define _STLP_PRIV
Definition: _dm.h:70
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
allocator_type get_allocator() const
Definition: _slist.h:277

◆ splice_after() [9/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  }
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
Definition: _slist.h:601
#define _STLP_PRIV
Definition: _dm.h:70
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
allocator_type get_allocator() const
Definition: _slist.h:277

◆ swap() [1/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); }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97

◆ swap() [3/3]

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

◆ unique() [1/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(); }
_Base _M_impl
Definition: _slist.h:407

◆ 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  }
_Base _M_non_dbg_impl
Definition: _slist.h:96
void _Invalidate_iterator(const iterator &__it)
Definition: _slist.h:99
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_PRIV __owned_list _M_iter_list
Definition: _slist.h:97
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
Definition: _slist.h:239
_Base::iterator _Base_iterator
Definition: _slist.h:104

◆ unique() [3/3]

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

Definition at line 788 of file _slist.h.

#define _STLP_PRIV
Definition: _dm.h:70
_STLP_MOVE_TO_PRIV_NAMESPACE void _Slist_unique(slist< _Tp, _Alloc > &__that, _BinaryPredicate __binary_pred)
Definition: _slist.c:134

Member Data Documentation

◆ _M_impl

◆ _M_iter_list

◆ _M_non_dbg_impl


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