matador::tree_iterator_base< T > Class Template Reference

#include <tree.hpp>

Inherits std::iterator< std::bidirectional_iterator_tag, T >.

Inherited by matador::tree_iterator< T >, matador::tree_leaf_iterator< T >, matador::tree_sibling_iterator< T >, and matador::tree_subtree_iterator< T >.

Public Types

typedef tree_iterator_base< T > self
 
typedef t_tree_node< T > t_node
 
typedef T value_type
 
typedef T * pointer
 
typedef T & reference
 

Public Member Functions

 tree_iterator_base ()=default
 
 tree_iterator_base (t_node *n)
 
tree_iterator_base< T > & operator= (const tree_iterator_base< T > &x)=default
 
tree_iterator_base< T > & operator= (tree_iterator_base< T > &&x) noexcept=default
 
virtual ~tree_iterator_base ()=default
 
bool operator== (const self &i) const
 
bool operator== (const const_tree_iterator_base< T > &i) const
 
bool operator!= (const self &i) const
 
bool operator!= (const const_tree_iterator_base< T > &i) const
 
reference operator* () const
 
pointer operator-> () const
 
selfoperator++ ()
 Pre increments self.
 
selfoperator-- ()
 Pre decrements self.
 
self operator++ (int)
 Post increments iterator.
 
self operator-- (int)
 Post decrements iterator.
 

Friends

class tree< T >
 
class tree_iterator< T >
 
class const_tree_iterator_base< T >
 

Detailed Description

template<class T>
class matador::tree_iterator_base< T >

Base class for tree iterator types

Template Parameters
TType of the tree containing data

Member Typedef Documentation

◆ pointer

template<class T >
typedef T* matador::tree_iterator_base< T >::pointer

Shortcut to pointer of value type

◆ reference

template<class T >
typedef T& matador::tree_iterator_base< T >::reference

Shortcut to reference of value type

◆ self

template<class T >
typedef tree_iterator_base<T> matador::tree_iterator_base< T >::self

Shortcut to self

◆ t_node

template<class T >
typedef t_tree_node<T> matador::tree_iterator_base< T >::t_node

Shortcut to node class

◆ value_type

template<class T >
typedef T matador::tree_iterator_base< T >::value_type

Shortcut to value type

Constructor & Destructor Documentation

◆ tree_iterator_base() [1/2]

template<class T >
matador::tree_iterator_base< T >::tree_iterator_base ( )
default

Default constructor

◆ tree_iterator_base() [2/2]

template<class T >
matador::tree_iterator_base< T >::tree_iterator_base ( t_node n)
inlineexplicit

Initialize the base iterator with a given node

Parameters
nInitial node for the iterator

◆ ~tree_iterator_base()

template<class T >
virtual matador::tree_iterator_base< T >::~tree_iterator_base ( )
virtualdefault

Default destructor

Member Function Documentation

◆ operator!=() [1/2]

template<class T >
bool matador::tree_iterator_base< T >::operator!= ( const const_tree_iterator_base< T > &  i) const

Not equal compares another const iterator with this

Parameters
iThe const iterator to compare
Returns
True if the iterators are not the same

◆ operator!=() [2/2]

template<class T >
bool matador::tree_iterator_base< T >::operator!= ( const self i) const
inline

Not equal compares another iterator with this

Parameters
iThe iterator to compare
Returns
True if the iterators are not the same

◆ operator*()

template<class T >
reference matador::tree_iterator_base< T >::operator* ( ) const
inline

Returns a reference nodes data

Returns
Reference to nodes data

◆ operator++() [1/2]

template<class T >
self & matador::tree_iterator_base< T >::operator++ ( )
inline

Pre increments self.

Returns
A reference to incremented self

◆ operator++() [2/2]

template<class T >
self matador::tree_iterator_base< T >::operator++ ( int  )
inline

Post increments iterator.

Post increments iterator and returns a new iterator object.

Returns
Returns new incremented iterator

◆ operator--() [1/2]

template<class T >
self & matador::tree_iterator_base< T >::operator-- ( )
inline

Pre decrements self.

Returns
A reference to decremented self

◆ operator--() [2/2]

template<class T >
self matador::tree_iterator_base< T >::operator-- ( int  )
inline

Post decrements iterator.

Post decrements iterator and returns a new iterator object.

Returns
Returns new decremented iterator

◆ operator->()

template<class T >
pointer matador::tree_iterator_base< T >::operator-> ( ) const
inline

Returns a reference nodes data

Returns
Reference to nodes data

◆ operator=() [1/2]

template<class T >
tree_iterator_base< T > & matador::tree_iterator_base< T >::operator= ( const tree_iterator_base< T > &  x)
default

Assign another iterator x to this iterator

Parameters
xIterator to copy assign
Returns
The copied iterator

◆ operator=() [2/2]

template<class T >
tree_iterator_base< T > & matador::tree_iterator_base< T >::operator= ( tree_iterator_base< T > &&  x)
defaultnoexcept

Move assign another iterator to the iterator

Parameters
xIterator to move assign
Returns
The moved iterator

◆ operator==() [1/2]

template<class T >
bool matador::tree_iterator_base< T >::operator== ( const const_tree_iterator_base< T > &  i) const

Equal compares another const iterator with this

Parameters
iThe const iterator to compare
Returns
True if the iterators are the same

◆ operator==() [2/2]

template<class T >
bool matador::tree_iterator_base< T >::operator== ( const self i) const
inline

Equal compares another iterator with this

Parameters
iThe iterator to compare
Returns
True if the iterators are the same

The documentation for this class was generated from the following file:
  • matador/utils/tree.hpp