ReactOS  0.4.15-dev-439-g292f67a
_Slist_base< _Tp, _Alloc > Class Template Reference

#include <_slist.h>

Collaboration diagram for _Slist_base< _Tp, _Alloc >:

Public Types

typedef _STLP_alloc_proxy< _Slist_node_base, _Node, _M_node_allocator_type_AllocProxy
 
typedef _Alloc allocator_type
 

Public Member Functions

 _Slist_base (const allocator_type &__a)
 
 _Slist_base (__move_source< _Self > src)
 
 ~_Slist_base ()
 
allocator_type get_allocator () const
 

Public Attributes

_AllocProxy _M_head
 

Protected Types

typedef _Slist_node< _Tp > _Node
 
typedef _Alloc_traits< _Node, _Alloc >::allocator_type _M_node_allocator_type
 
typedef _Slist_base< _Tp, _Alloc_Self
 

Protected Member Functions

_Slist_node_base_M_erase_after (_Slist_node_base *__pos)
 
_Slist_node_base_M_erase_after (_Slist_node_base *, _Slist_node_base *)
 

Detailed Description

template<class _Tp, class _Alloc>
class _Slist_base< _Tp, _Alloc >

Definition at line 148 of file _slist.h.

Member Typedef Documentation

◆ _AllocProxy

template<class _Tp, class _Alloc>
typedef _STLP_alloc_proxy<_Slist_node_base, _Node, _M_node_allocator_type> _Slist_base< _Tp, _Alloc >::_AllocProxy

Definition at line 155 of file _slist.h.

◆ _M_node_allocator_type

template<class _Tp, class _Alloc>
typedef _Alloc_traits<_Node,_Alloc>::allocator_type _Slist_base< _Tp, _Alloc >::_M_node_allocator_type
protected

Definition at line 151 of file _slist.h.

◆ _Node

template<class _Tp, class _Alloc>
typedef _Slist_node<_Tp> _Slist_base< _Tp, _Alloc >::_Node
protected

Definition at line 150 of file _slist.h.

◆ _Self

template<class _Tp, class _Alloc>
typedef _Slist_base<_Tp, _Alloc> _Slist_base< _Tp, _Alloc >::_Self
protected

Definition at line 152 of file _slist.h.

◆ allocator_type

template<class _Tp, class _Alloc>
typedef _Alloc _Slist_base< _Tp, _Alloc >::allocator_type

Definition at line 158 of file _slist.h.

Constructor & Destructor Documentation

◆ _Slist_base() [1/2]

template<class _Tp, class _Alloc>
_Slist_base< _Tp, _Alloc >::_Slist_base ( const allocator_type __a)
inline

Definition at line 160 of file _slist.h.

160  :
162  { _M_head._M_data._M_next = 0; }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_Value _M_data
Definition: _alloc.h:478
_Slist_node< _Tp > _Node
Definition: _slist.h:150
_AllocProxy _M_head
Definition: _slist.h:186

◆ _Slist_base() [2/2]

template<class _Tp, class _Alloc>
_Slist_base< _Tp, _Alloc >::_Slist_base ( __move_source< _Self src)
inline

Definition at line 165 of file _slist.h.

165  :
166  _M_head(__move_source<_AllocProxy>(src.get()._M_head))
167  { src.get()._M_head._M_data._M_next = 0; }
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_Value _M_data
Definition: _alloc.h:478
GLenum src
Definition: glext.h:6340
_AllocProxy _M_head
Definition: _slist.h:186

◆ ~_Slist_base()

template<class _Tp, class _Alloc>
_Slist_base< _Tp, _Alloc >::~_Slist_base ( )
inline

Definition at line 170 of file _slist.h.

_Slist_node_base * _M_erase_after(_Slist_node_base *__pos)
Definition: _slist.h:173
_Value _M_data
Definition: _alloc.h:478
_AllocProxy _M_head
Definition: _slist.h:186

Member Function Documentation

◆ _M_erase_after() [1/2]

template<class _Tp, class _Alloc>
_Slist_node_base* _Slist_base< _Tp, _Alloc >::_M_erase_after ( _Slist_node_base __pos)
inlineprotected

Definition at line 173 of file _slist.h.

173  {
174  _Node* __next = __STATIC_CAST(_Node*, __pos->_M_next);
175  _Slist_node_base* __next_next = __next->_M_next;
176  __pos->_M_next = __next_next;
177  _STLP_STD::_Destroy(&__next->_M_data);
178  _M_head.deallocate(__next,1);
179  return __next_next;
180  }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_Slist_node< _Tp > _Node
Definition: _slist.h:150
void _Destroy(_Tp *__pointer)
Definition: _construct.h:63
_AllocProxy _M_head
Definition: _slist.h:186

Referenced by _Slist_base< value_type, _Alloc >::~_Slist_base().

◆ _M_erase_after() [2/2]

template<class _Tp , class _Alloc >
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _Slist_node_base * _Slist_base< _Tp, _Alloc >::_M_erase_after ( _Slist_node_base __before_first,
_Slist_node_base __last_node 
)
protected

Definition at line 44 of file _slist.c.

45  {
46  _Slist_node_base* __cur = __before_first->_M_next;
47  while (__cur != __last_node) {
48  _Node* __tmp = __STATIC_CAST(_Node*, __cur);
49  __cur = __cur->_M_next;
50  _STLP_STD::_Destroy(&__tmp->_M_data);
51  _M_head.deallocate(__tmp,1);
52  }
53  __before_first->_M_next = __last_node;
54  return __last_node;
55 }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Slist_node_base * _M_next
Definition: _slist_base.h:39
_Slist_node< _Tp > _Node
Definition: _slist.h:150
void _Destroy(_Tp *__pointer)
Definition: _construct.h:63
_AllocProxy _M_head
Definition: _slist.h:186

◆ get_allocator()

template<class _Tp, class _Alloc>
allocator_type _Slist_base< _Tp, _Alloc >::get_allocator ( ) const
inline

Definition at line 184 of file _slist.h.

185  { return _STLP_CONVERT_ALLOCATOR((const _M_node_allocator_type&)_M_head, _Tp); }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_Alloc_traits< _Node, _Alloc >::allocator_type _M_node_allocator_type
Definition: _slist.h:151
_AllocProxy _M_head
Definition: _slist.h:186

Member Data Documentation

◆ _M_head


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