Loading...
Searching...
No Matches
Dune::TypeTree::TreePairVisitor Struct Reference
dune-typetree » Traversal

Convenience base class for visiting an entire tree pair. More...

`#include <dune/typetree/visitor.hh>`

Inheritance diagram for Dune::TypeTree::TreePairVisitor:

## Public Member Functions

template<typename T1, typename T2, typename TreePath>
void | pre (T1 &&, T2 &&, TreePath) const
| Method for prefix tree traversal.
template<typename T1, typename T2, typename TreePath>
void | in (T1 &&, T2 &&, TreePath) const
| Method for infix tree traversal.
template<typename T1, typename T2, typename TreePath>
void | post (T1 &&, T2 &&, TreePath) const
| Method for postfix traversal.
template<typename T1, typename T2, typename TreePath>
void | leaf (T1 &&, T2 &&, TreePath) const
| Method for leaf traversal.
template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>
void | beforeChild (T1 &&, Child1 &&, T2 &&, Child2 &&, TreePath, ChildIndex) const
| Method for parent-child traversal.
template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>
void | afterChild (T1 &&, Child1 &&, T2 &&, Child2 &&, TreePath, ChildIndex) const
| Method for child-parent traversal.

## Detailed Description

Convenience base class for visiting an entire tree pair.

## Member Function Documentation

## afterChild()

template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>

void Dune::TypeTree::DefaultPairVisitor::afterChild | ( | T1 && | ,
|  | Child1 && | ,
|  | T2 && | ,
|  | Child2 && | ,
|  | TreePath | ,
|  | ChildIndex | ) const

inline inherited

Method for child-parent traversal.

This method gets called after visiting a child node.

Note
  This method gets called even if the visitor decides not to visit the child in question.

Parameters

  t1 | The node of the first tree to visit.
  child1 | The child of t1 to visit.
  t2 | The node of the second tree to visit.
  child2 | The child of t2 to visit.
  treePath | The position of the parent nodes within the TypeTree.
  childIndex | The index of the child nodes in relation to the parent nodes.

## beforeChild()

template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>

void Dune::TypeTree::DefaultPairVisitor::beforeChild | ( | T1 && | ,
|  | Child1 && | ,
|  | T2 && | ,
|  | Child2 && | ,
|  | TreePath | ,
|  | ChildIndex | ) const

inline inherited

Method for parent-child traversal.

This method gets called before visiting a child node.

Note
  This method gets called even if the visitor decides not to visit the child in question.

Parameters

  t1 | The node of the first tree to visit.
  child1 | The child of t1 to visit.
  t2 | The node of the second tree to visit.
  child2 | The child of t2 to visit.
  treePath | The position of the parent nodes within the TypeTree.
  childIndex | The index of the child nodes in relation to the parent nodes.

## in()

template<typename T1, typename T2, typename TreePath>

void Dune::TypeTree::DefaultPairVisitor::in | ( | T1 && | ,
|  | T2 && | ,
|  | TreePath | ) const

inline inherited

Method for infix tree traversal.

This method gets called BETWEEN visits of children of a non-leaf node. That definition implies that this method will only be called for nodes with at least two children.

Parameters

  t1 | The node of the first tree to visit.
  t2 | The node of the second tree to visit.
  treePath | The position of the node within the TypeTree.

## leaf()

template<typename T1, typename T2, typename TreePath>

void Dune::TypeTree::DefaultPairVisitor::leaf | ( | T1 && | ,
|  | T2 && | ,
|  | TreePath | ) const

inline inherited

Method for leaf traversal.

This method gets called when encountering a leaf node within the pair of TypeTrees.

Attention
  Since the two TypeTrees are not required to be exactly identical, it is only guaranteed that at least one of the nodes is a leaf node, not both.

Parameters

  t1 | The node of the first tree to visit.
  t2 | The node of the second tree to visit.
  treePath | The position of the node within the TypeTree.

## post()

template<typename T1, typename T2, typename TreePath>

void Dune::TypeTree::DefaultPairVisitor::post | ( | T1 && | ,
|  | T2 && | ,
|  | TreePath | ) const

inline inherited

Method for postfix traversal.

This method gets called after all children of a non-leaf node have been visited.

Parameters

  t1 | The node of the first tree to visit.
  t2 | The node of the second tree to visit.
  treePath | The position of the node within the TypeTree.

## pre()

template<typename T1, typename T2, typename TreePath>

void Dune::TypeTree::DefaultPairVisitor::pre | ( | T1 && | ,
|  | T2 && | ,
|  | TreePath | ) const

inline inherited

Method for prefix tree traversal.

This method gets called when first encountering a non-leaf node and before visiting any of its children.

Parameters

  t1 | The node of the first tree to visit.
  t2 | The node of the second tree to visit.
  treePath | The position of the node within the TypeTree.

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

- visitor.hh