ReactOS  0.4.13-dev-247-g0f29b3f
_List_base< _Tp, _Alloc > Class Template Reference

#include <_list.h>

Collaboration diagram for _List_base< _Tp, _Alloc >:

Public Types

typedef _STLP_alloc_proxy< _Node_base, _Node, _Node_allocator_type_AllocProxy
 
typedef _Alloc allocator_type
 

Public Member Functions

allocator_type get_allocator () const
 
 _List_base (const allocator_type &__a)
 
 _List_base (__move_source< _Self > src)
 
 ~_List_base ()
 
void clear ()
 
bool empty () const
 
void _M_empty_initialize ()
 

Public Attributes

_AllocProxy _M_node
 

Protected Types

typedef _List_node_base _Node_base
 
typedef _List_node< _Tp > _Node
 
typedef _List_base< _Tp, _Alloc_Self
 
typedef _Alloc_traits< _Node, _Alloc >::allocator_type _Node_allocator_type
 

Detailed Description

template<class _Tp, class _Alloc>
class _List_base< _Tp, _Alloc >

Definition at line 174 of file _list.h.

Member Typedef Documentation

◆ _AllocProxy

template<class _Tp, class _Alloc>
typedef _STLP_alloc_proxy<_Node_base, _Node, _Node_allocator_type> _List_base< _Tp, _Alloc >::_AllocProxy

Definition at line 182 of file _list.h.

◆ _Node

template<class _Tp, class _Alloc>
typedef _List_node<_Tp> _List_base< _Tp, _Alloc >::_Node
protected

Definition at line 178 of file _list.h.

◆ _Node_allocator_type

template<class _Tp, class _Alloc>
typedef _Alloc_traits<_Node, _Alloc>::allocator_type _List_base< _Tp, _Alloc >::_Node_allocator_type
protected

Definition at line 180 of file _list.h.

◆ _Node_base

template<class _Tp, class _Alloc>
typedef _List_node_base _List_base< _Tp, _Alloc >::_Node_base
protected

Definition at line 177 of file _list.h.

◆ _Self

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

Definition at line 179 of file _list.h.

◆ allocator_type

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

Definition at line 183 of file _list.h.

Constructor & Destructor Documentation

◆ _List_base() [1/2]

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

Definition at line 188 of file _list.h.

189  { _M_empty_initialize(); }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_List_node_base _Node_base
Definition: _list.h:177
_List_node< _Tp > _Node
Definition: _list.h:178
_AllocProxy _M_node
Definition: _list.h:216
void _M_empty_initialize()
Definition: _list.h:210

◆ _List_base() [2/2]

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

Definition at line 192 of file _list.h.

192  :
193  _M_node(__move_source<_AllocProxy>(src.get()._M_node)) {
194  if (src.get().empty())
195  //We force this to empty.
197  else {
198  src.get()._M_empty_initialize();
200  }
201  }
_Value _M_data
Definition: _alloc.h:478
GLenum src
Definition: glext.h:6340
_AllocProxy _M_node
Definition: _list.h:216
void _M_empty_initialize()
Definition: _list.h:210
_List_node_base * _M_next
Definition: _list.h:58
_List_node_base * _M_prev
Definition: _list.h:59

◆ ~_List_base()

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

Definition at line 204 of file _list.h.

205  { clear(); }
void clear()
Definition: _list.c:66

Member Function Documentation

◆ _M_empty_initialize()

template<class _Tp, class _Alloc>
void _List_base< _Tp, _Alloc >::_M_empty_initialize ( )
inline

Definition at line 210 of file _list.h.

210  {
213  }
_Value _M_data
Definition: _alloc.h:478
_AllocProxy _M_node
Definition: _list.h:216
_List_node_base * _M_next
Definition: _list.h:58
_List_node_base * _M_prev
Definition: _list.h:59

Referenced by _List_base< IncompleteClass, _Alloc >::_List_base().

◆ clear()

template<class _Tp , class _Alloc >
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE void _List_base< _Tp, _Alloc >::clear ( void  )

Definition at line 66 of file _list.c.

66  {
68  while (
69 #if defined (__BORLANDC__) // runtime error
70  __cur &&
71 #endif
72  __cur != &(_M_node._M_data)) {
73  _Node* __tmp = __cur;
74  __cur = __STATIC_CAST(_Node*, __cur->_M_next);
75  _STLP_STD::_Destroy(&__tmp->_M_data);
76  this->_M_node.deallocate(__tmp, 1);
77  }
80 }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
_Value _M_data
Definition: _alloc.h:478
_List_node< _Tp > _Node
Definition: _list.h:178
void _Destroy(_Tp *__pointer)
Definition: _construct.h:63
_AllocProxy _M_node
Definition: _list.h:216
_List_node_base * _M_next
Definition: _list.h:58
_List_node_base * _M_prev
Definition: _list.h:59

Referenced by _List_base< IncompleteClass, _Alloc >::~_List_base().

◆ empty()

template<class _Tp, class _Alloc>
bool _List_base< _Tp, _Alloc >::empty ( ) const
inline

Definition at line 208 of file _list.h.

208 { return _M_node._M_data._M_next == &_M_node._M_data; }
_Value _M_data
Definition: _alloc.h:478
_AllocProxy _M_node
Definition: _list.h:216
_List_node_base * _M_next
Definition: _list.h:58

◆ get_allocator()

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

Definition at line 185 of file _list.h.

186  { return _STLP_CONVERT_ALLOCATOR((const _Node_allocator_type&)_M_node, _Tp); }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_AllocProxy _M_node
Definition: _list.h:216
_Alloc_traits< _Node, _Alloc >::allocator_type _Node_allocator_type
Definition: _list.h:180

Member Data Documentation

◆ _M_node


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