MADARA  3.4.1
madara::expression::ExpressionTreeIterator Class Reference

Non-const iterator for traversing an expression tree. More...

#include <Iterator.h>

Public Types

typedef int difference_type
 
typedef std::forward_iterator_tag iterator_category
 
typedef int * pointer
 
typedef int & reference
 
typedef long value_type
 

Public Member Functions

 ExpressionTreeIterator (const ExpressionTreeIterator &ts)
 Copy ctor - needed for reference counting. More...
 
 ExpressionTreeIterator (ExpressionTreeIteratorImpl *impl)
 Copy ctor for impl *. More...
 
bool operator!= (const ExpressionTreeIterator &rhs)
 In-equality operator. More...
 
ExpressionTree operator* (void)
 Dereference operator returns a reference to the item contained at the current position. More...
 
const ExpressionTree operator* (void) const
 Returns a const reference to the item contained at the current position. More...
 
ExpressionTreeIterator operator++ (int)
 Postincrement operator. More...
 
ExpressionTreeIteratoroperator++ (void)
 Preincrement operator. More...
 
bool operator== (const ExpressionTreeIterator &rhs)
 Equality operator. More...
 

Private Attributes

madara::utility::Refcounter< ExpressionTreeIteratorImplimpl_
 

Detailed Description

Non-const iterator for traversing an expression tree.

See also
ExpressionTreeLevelOrderIteratorImpl, ExpressionTreeInOrderIteratorImpl, ExpressionTreePreOrderIteratorImpl, and ExpressionTreePostOrderIteratorImpl.

Definition at line 26 of file Iterator.h.

Member Typedef Documentation

◆ difference_type

◆ iterator_category

Definition at line 57 of file Iterator.h.

◆ pointer

Definition at line 59 of file Iterator.h.

◆ reference

Definition at line 60 of file Iterator.h.

◆ value_type

Definition at line 58 of file Iterator.h.

Constructor & Destructor Documentation

◆ ExpressionTreeIterator() [1/2]

madara::expression::ExpressionTreeIterator::ExpressionTreeIterator ( const ExpressionTreeIterator ts)

Copy ctor - needed for reference counting.

Definition at line 16 of file Iterator.cpp.

◆ ExpressionTreeIterator() [2/2]

madara::expression::ExpressionTreeIterator::ExpressionTreeIterator ( ExpressionTreeIteratorImpl impl)

Copy ctor for impl *.

Definition at line 24 of file Iterator.cpp.

Member Function Documentation

◆ operator!=()

bool madara::expression::ExpressionTreeIterator::operator!= ( const ExpressionTreeIterator rhs)

In-equality operator.

Nonequality operator.

Definition at line 81 of file Iterator.cpp.

◆ operator*() [1/2]

madara::expression::ExpressionTree madara::expression::ExpressionTreeIterator::operator* ( void  )

Dereference operator returns a reference to the item contained at the current position.

Definition at line 33 of file Iterator.cpp.

◆ operator*() [2/2]

const madara::expression::ExpressionTree madara::expression::ExpressionTreeIterator::operator* ( void  ) const

Returns a const reference to the item contained at the current position.

Definition at line 43 of file Iterator.cpp.

◆ operator++() [1/2]

madara::expression::ExpressionTreeIterator madara::expression::ExpressionTreeIterator::operator++ ( int  )

Postincrement operator.

Post-increment operator.

Definition at line 62 of file Iterator.cpp.

◆ operator++() [2/2]

madara::expression::ExpressionTreeIterator & madara::expression::ExpressionTreeIterator::operator++ ( void  )

Preincrement operator.

Pre-increment operator.

Definition at line 52 of file Iterator.cpp.

◆ operator==()

bool madara::expression::ExpressionTreeIterator::operator== ( const ExpressionTreeIterator rhs)

Equality operator.

Definition at line 72 of file Iterator.cpp.

Member Data Documentation

◆ impl_

madara::utility::Refcounter<ExpressionTreeIteratorImpl> madara::expression::ExpressionTreeIterator::impl_
private

Definition at line 64 of file Iterator.h.


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