ReactOS  0.4.13-dev-259-g5ca9c9c
_Rb_tree_base< _Tp, _Alloc > Class Template Reference

#include <_tree.h>

Collaboration diagram for _Rb_tree_base< _Tp, _Alloc >:

Public Types

typedef _Rb_tree_node_base _Node_base
 
typedef _Rb_tree_node< _Tp > _Node
 
typedef _Alloc allocator_type
 

Public Member Functions

allocator_type get_allocator () const
 

Protected Member Functions

 _Rb_tree_base (const allocator_type &__a)
 
 _Rb_tree_base (__move_source< _Self > src)
 
void _M_empty_initialize ()
 
void _M_rebind (_Node_base *__static_node)
 

Protected Attributes

_AllocProxy _M_header
 

Private Types

typedef _Rb_tree_base< _Tp, _Alloc_Self
 
typedef _Alloc_traits< _Node, _Alloc >::allocator_type _M_node_allocator_type
 
typedef _STLP_alloc_proxy< _Node_base, _Node, _M_node_allocator_type_AllocProxy
 

Detailed Description

template<class _Tp, class _Alloc>
class _Rb_tree_base< _Tp, _Alloc >

Definition at line 232 of file _tree.h.

Member Typedef Documentation

◆ _AllocProxy

template<class _Tp, class _Alloc>
typedef _STLP_alloc_proxy<_Node_base, _Node, _M_node_allocator_type> _Rb_tree_base< _Tp, _Alloc >::_AllocProxy
private

Definition at line 241 of file _tree.h.

◆ _M_node_allocator_type

template<class _Tp, class _Alloc>
typedef _Alloc_traits<_Node, _Alloc>::allocator_type _Rb_tree_base< _Tp, _Alloc >::_M_node_allocator_type
private

Definition at line 240 of file _tree.h.

◆ _Node

template<class _Tp, class _Alloc>
typedef _Rb_tree_node<_Tp> _Rb_tree_base< _Tp, _Alloc >::_Node

Definition at line 235 of file _tree.h.

◆ _Node_base

template<class _Tp, class _Alloc>
typedef _Rb_tree_node_base _Rb_tree_base< _Tp, _Alloc >::_Node_base

Definition at line 234 of file _tree.h.

◆ _Self

template<class _Tp, class _Alloc>
typedef _Rb_tree_base<_Tp, _Alloc> _Rb_tree_base< _Tp, _Alloc >::_Self
private

Definition at line 239 of file _tree.h.

◆ allocator_type

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

Definition at line 237 of file _tree.h.

Constructor & Destructor Documentation

◆ _Rb_tree_base() [1/2]

template<class _Tp, class _Alloc>
_Rb_tree_base< _Tp, _Alloc >::_Rb_tree_base ( const allocator_type __a)
inlineprotected

Definition at line 249 of file _tree.h.

249  :
252  }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_AllocProxy _M_header
Definition: _tree.h:282
_Rb_tree_node_base _Node_base
Definition: _tree.h:234
_Rb_tree_node< _Tp > _Node
Definition: _tree.h:235
void _M_empty_initialize()
Definition: _tree.h:262

◆ _Rb_tree_base() [2/2]

template<class _Tp, class _Alloc>
_Rb_tree_base< _Tp, _Alloc >::_Rb_tree_base ( __move_source< _Self src)
inlineprotected

Definition at line 255 of file _tree.h.

255  :
256  _M_header(__move_source<_AllocProxy>(src.get()._M_header)) {
257  _M_rebind(&src.get()._M_header._M_data);
258  src.get()._M_empty_initialize();
259  }
_AllocProxy _M_header
Definition: _tree.h:282
void _M_rebind(_Node_base *__static_node)
Definition: _tree.h:270
GLenum src
Definition: glext.h:6340

Member Function Documentation

◆ _M_empty_initialize()

template<class _Tp, class _Alloc>
void _Rb_tree_base< _Tp, _Alloc >::_M_empty_initialize ( )
inlineprotected

Definition at line 262 of file _tree.h.

262  {
263  _M_header._M_data._M_color = _S_rb_tree_red; // used to distinguish header from
264  // __root, in iterator.operator++
268  }
_AllocProxy _M_header
Definition: _tree.h:282
_Color_type _M_color
Definition: _tree.h:88
_Base_ptr _M_right
Definition: _tree.h:91
_Value _M_data
Definition: _alloc.h:478
_Base_ptr _M_left
Definition: _tree.h:90
_Base_ptr _M_parent
Definition: _tree.h:89
#define _S_rb_tree_red
Definition: _tree.h:81

Referenced by _Rb_tree_base< _Value, _Alloc >::_Rb_tree_base().

◆ _M_rebind()

template<class _Tp, class _Alloc>
void _Rb_tree_base< _Tp, _Alloc >::_M_rebind ( _Node_base __static_node)
inlineprotected

Definition at line 270 of file _tree.h.

270  {
271  if (_M_header._M_data._M_parent != 0) {
273  }
274  if (_M_header._M_data._M_right == __static_node) {
276  }
277  if (_M_header._M_data._M_left == __static_node) {
279  }
280  }
_AllocProxy _M_header
Definition: _tree.h:282
_Base_ptr _M_right
Definition: _tree.h:91
_Value _M_data
Definition: _alloc.h:478
_Base_ptr _M_left
Definition: _tree.h:90
_Base_ptr _M_parent
Definition: _tree.h:89

Referenced by _Rb_tree_base< _Value, _Alloc >::_Rb_tree_base(), and _Rb_tree< key_type, key_compare, value_type, _STLP_SELECT1ST(value_type, void), _MapTraits, _Alloc >::swap().

◆ get_allocator()

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

Definition at line 244 of file _tree.h.

244  {
245  return _STLP_CONVERT_ALLOCATOR(_M_header, _Tp);
246  }
#define _STLP_CONVERT_ALLOCATOR(__a, _Tp)
Definition: _alloc.h:183
_AllocProxy _M_header
Definition: _tree.h:282

Referenced by _Rb_tree< key_type, key_compare, value_type, _STLP_SELECT1ST(value_type, void), _MapTraits, _Alloc >::get_allocator().

Member Data Documentation

◆ _M_header


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