mn::container::basic_node< T > Class Template Reference

#include <mn_node.hpp>

+ Collaboration diagram for mn::container::basic_node< T >:

Private Types

using iterator_category = bidirectional_iterator_tag
 
using self_type = basic_node< T >
 
using value_type = T
 
using pointer = value_type *
 
using const_pointer = const pointer
 
using reference = value_type &
 
using const_reference = const reference
 
using iterator = basic_node_itarrator< self_type >
 
using const_iterator = const basic_node_itarrator< const self_type >
 
using reverse_iterator = basic_node_itarrator_res< self_type >
 
using const_reverse_iterator = const basic_node_itarrator_res< const self_type >
 

Private Member Functions

 basic_node (value_type value)
 Construct a new base node object. More...
 
 basic_node (self_type *_pNext, self_type *_pPrev)
 
 basic_node (const self_type &_pOther)
 
iterator begin ()
 
reverse_iterator rbegin ()
 
const_iterator cbegin () const
 
iterator end ()
 
reverse_iterator rend ()
 
const_iterator cend () const
 
self_typeroot ()
 
const self_typeroot () const
 
self_typelast ()
 
const self_typelast () const
 
void insert (self_type *pNext)
 Inserts this standalone node before the node pNext in pNext's . More...
 
void remove ()
 Removes this node from the it's in. More...
 
bool is () const
 
void splice (self_type *first, self_type *last)
 Removes [pFirst,pLast) from the it's in and inserts it before this in this node's . More...
 
void reverse ()
 Reverses the order of nodes in the circular this node is a part of. More...
 
void insert_range (self_type *pFirst, self_type *pFinal)
 Add a range of elements. More...
 
void swap (self_type &other)
 
value_type get ()
 
bool operator== (const self_type &rhs) const
 
bool operator!= (const self_type &rhs) const
 

Static Private Member Functions

static void remove_range (self_type *pFirst, self_type *pFinal)
 remove a range of elements More...
 

Private Attributes

self_typeNext
 The pointer to the next node. More...
 
self_typePrev
 The pointer to the prev node. More...
 
value_type m_tValue
 

Member Typedef Documentation

◆ const_iterator

template<typename T >
using mn::container::basic_node< T >::const_iterator = const basic_node_itarrator<const self_type>
private

◆ const_pointer

template<typename T >
using mn::container::basic_node< T >::const_pointer = const pointer
private

◆ const_reference

template<typename T >
using mn::container::basic_node< T >::const_reference = const reference
private

◆ const_reverse_iterator

template<typename T >
using mn::container::basic_node< T >::const_reverse_iterator = const basic_node_itarrator_res<const self_type>
private

◆ iterator

template<typename T >
using mn::container::basic_node< T >::iterator = basic_node_itarrator<self_type>
private

◆ iterator_category

template<typename T >
using mn::container::basic_node< T >::iterator_category = bidirectional_iterator_tag
private

◆ pointer

template<typename T >
using mn::container::basic_node< T >::pointer = value_type*
private

◆ reference

template<typename T >
using mn::container::basic_node< T >::reference = value_type&
private

◆ reverse_iterator

template<typename T >
using mn::container::basic_node< T >::reverse_iterator = basic_node_itarrator_res<self_type>
private

◆ self_type

template<typename T >
using mn::container::basic_node< T >::self_type = basic_node<T>
private

◆ value_type

template<typename T >
using mn::container::basic_node< T >::value_type = T
private

Constructor & Destructor Documentation

◆ basic_node() [1/3]

template<typename T >
mn::container::basic_node< T >::basic_node ( value_type  value)
inlineexplicitprivate

Construct a new base node object.

◆ basic_node() [2/3]

template<typename T >
mn::container::basic_node< T >::basic_node ( self_type _pNext,
self_type _pPrev 
)
inlineprivate

◆ basic_node() [3/3]

template<typename T >
mn::container::basic_node< T >::basic_node ( const self_type _pOther)
inlineprivate

Member Function Documentation

◆ begin()

template<typename T >
iterator mn::container::basic_node< T >::begin ( )
inlineprivate

◆ cbegin()

template<typename T >
const_iterator mn::container::basic_node< T >::cbegin ( ) const
inlineprivate

◆ cend()

template<typename T >
const_iterator mn::container::basic_node< T >::cend ( ) const
inlineprivate

◆ end()

template<typename T >
iterator mn::container::basic_node< T >::end ( )
inlineprivate

◆ get()

template<typename T >
value_type mn::container::basic_node< T >::get ( )
inlineprivate

◆ insert()

template<typename T >
void mn::container::basic_node< T >::insert ( self_type pNext)
inlineprivate

Inserts this standalone node before the node pNext in pNext's .

◆ insert_range()

template<typename T >
void mn::container::basic_node< T >::insert_range ( self_type pFirst,
self_type pFinal 
)
inlineprivate

Add a range of elements.

◆ is()

template<typename T >
bool mn::container::basic_node< T >::is ( ) const
inlineprivate

◆ last() [1/2]

template<typename T >
self_type* mn::container::basic_node< T >::last ( )
inlineprivate

◆ last() [2/2]

template<typename T >
const self_type* mn::container::basic_node< T >::last ( ) const
inlineprivate

◆ operator!=()

template<typename T >
bool mn::container::basic_node< T >::operator!= ( const self_type rhs) const
inlineprivate

◆ operator==()

template<typename T >
bool mn::container::basic_node< T >::operator== ( const self_type rhs) const
inlineprivate

◆ rbegin()

template<typename T >
reverse_iterator mn::container::basic_node< T >::rbegin ( )
inlineprivate

◆ remove()

template<typename T >
void mn::container::basic_node< T >::remove ( )
inlineprivate

Removes this node from the it's in.

◆ remove_range()

template<typename T >
static void mn::container::basic_node< T >::remove_range ( self_type pFirst,
self_type pFinal 
)
inlinestaticprivate

remove a range of elements

◆ rend()

template<typename T >
reverse_iterator mn::container::basic_node< T >::rend ( )
inlineprivate

◆ reverse()

template<typename T >
void mn::container::basic_node< T >::reverse ( )
inlineprivate

Reverses the order of nodes in the circular this node is a part of.

◆ root() [1/2]

template<typename T >
self_type* mn::container::basic_node< T >::root ( )
inlineprivate

◆ root() [2/2]

template<typename T >
const self_type* mn::container::basic_node< T >::root ( ) const
inlineprivate

◆ splice()

template<typename T >
void mn::container::basic_node< T >::splice ( self_type first,
self_type last 
)
inlineprivate

Removes [pFirst,pLast) from the it's in and inserts it before this in this node's .

◆ swap()

template<typename T >
void mn::container::basic_node< T >::swap ( self_type other)
inlineprivate

Member Data Documentation

◆ m_tValue

template<typename T >
value_type mn::container::basic_node< T >::m_tValue
private

◆ Next

template<typename T >
self_type* mn::container::basic_node< T >::Next
private

The pointer to the next node.

◆ Prev

template<typename T >
self_type* mn::container::basic_node< T >::Prev
private

The pointer to the prev node.


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