dune-typetree
2.4.0-rc1
|
![]() |
Namespaces | |
Dune::TypeTree | |
Classes | |
struct | Dune::TypeTree::or_< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::or_< result_type > |
Statically combine two values of type result_type using ||. More... | |
struct | Dune::TypeTree::and_< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::and_< result_type > |
Statically combine two values of type result_type using &&. More... | |
struct | Dune::TypeTree::plus< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::plus< result_type > |
Statically combine two values of type result_type using +. More... | |
struct | Dune::TypeTree::minus< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::minus< result_type > |
Statically combine two values of type result_type using -. More... | |
struct | Dune::TypeTree::multiply< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::multiply< result_type > |
Statically combine two values of type result_type using *. More... | |
struct | Dune::TypeTree::min< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::min< result_type > |
Statically combine two values of type result_type by returning their minimum. More... | |
struct | Dune::TypeTree::max< result_type >::reduce< r1, r2 > |
struct | Dune::TypeTree::max< result_type > |
Statically combine two values of type result_type by returning their maximum. More... | |
struct | Dune::TypeTree::AccumulateValue< Tree, Functor, Reduction, startValue, ParentChildReduction > |
Statically accumulate a value over the nodes of a TypeTree. More... | |
struct | Dune::TypeTree::TypeAccumulationPolicy< Functor, Reduction, StartType, ParentChildReduction, ReductionAlgorithm > |
struct | Dune::TypeTree::AccumulateType< Tree, Policy > |
Statically accumulate a type over the nodes of a TypeTree. More... | |
struct | Dune::TypeTree::DefaultVisitor |
Visitor interface and base class for TypeTree visitors. More... | |
struct | Dune::TypeTree::DefaultPairVisitor |
Visitor interface and base class for visitors of pairs of TypeTrees. More... | |
struct | Dune::TypeTree::VisitDirectChildren::VisitChild< Node1, Child1, Node2, Child2, TreePath > |
Template struct for determining whether or not to visit a given child. More... | |
struct | Dune::TypeTree::VisitDirectChildren |
Mixin base class for visitors that only want to visit the direct children of a node. More... | |
struct | Dune::TypeTree::VisitTree::VisitChild< Node1, Child1, Node2, Child2, TreePath > |
Template struct for determining whether or not to visit a given child. More... | |
struct | Dune::TypeTree::VisitTree |
Mixin base class for visitors that want to visit the complete tree. More... | |
struct | Dune::TypeTree::StaticTraversal |
Mixin base class for visitors that require a static TreePath during traversal. More... | |
struct | Dune::TypeTree::DynamicTraversal |
Mixin base class for visitors that only need a dynamic TreePath during traversal. More... | |
struct | Dune::TypeTree::TreeVisitor |
Convenience base class for visiting the entire tree. More... | |
struct | Dune::TypeTree::DirectChildrenVisitor |
Convenience base class for visiting the direct children of a node. More... | |
struct | Dune::TypeTree::TreePairVisitor |
Convenience base class for visiting an entire tree pair. More... | |
struct | Dune::TypeTree::DirectChildrenPairVisitor |
Convenience base class for visiting the direct children of a node pair. More... | |
Functions | |
template<typename Tree1 , typename Tree2 , typename Visitor > | |
void | Dune::TypeTree::applyToTreePair (Tree1 &&tree1, Tree2 &&tree2, Visitor &&visitor) |
Apply visitor to a pair of TypeTrees. More... | |
template<typename Tree , typename Visitor > | |
void | Dune::TypeTree::applyToTree (Tree &&tree, Visitor &&visitor) |
Apply visitor to TypeTree. More... | |
template<typename ResultType , typename Tree , typename F , typename R > | |
ResultType | Dune::TypeTree::reduceOverLeafs (const Tree &tree, F functor, R reduction, ResultType startValue) |
Calculate a quantity as a reduction over the leaf nodes of a TypeTree. More... | |
void Dune::TypeTree::applyToTree | ( | Tree && | tree, |
Visitor && | visitor | ||
) |
Apply visitor to TypeTree.
This function applies the given visitor to the given tree. Both visitor and tree may be const or non-const (if the compiler supports rvalue references, they may even be a non-const temporary).
tree | The tree the visitor will be applied to. |
visitor | The visitor to apply to the tree. |
References treePathType.
Referenced by Dune::TypeTree::reduceOverLeafs().
void Dune::TypeTree::applyToTreePair | ( | Tree1 && | tree1, |
Tree2 && | tree2, | ||
Visitor && | visitor | ||
) |
Apply visitor to a pair of TypeTrees.
This function applies the given visitor to the given tree. Both visitor and tree may be const or non-const. If the compiler supports rvalue references, they may even be a non-const temporary; otherwise both trees must be either const or non-const. If they have different constness, both will be promoted to const.
tree1 | The first tree the visitor will be applied to. |
tree2 | The second tree the visitor will be applied to. |
visitor | The visitor to apply to the trees. |
References treePathType.
ResultType Dune::TypeTree::reduceOverLeafs | ( | const Tree & | tree, |
F | functor, | ||
R | reduction, | ||
ResultType | startValue | ||
) |
Calculate a quantity as a reduction over the leaf nodes of a TypeTree.
This function can be used to easily calculate a quantity that is a result of applying a functor to the leaf nodes of a TypeTree and combining the functor return values. The functor, reduction and result should all have cheap copy constructors to ensure good performance.
The functor must conform to the pattern
tree | The tree on which to perform the calculation. |
functor | The functor to apply to the leaf nodes. |
reduction | The operation used to combine the individual results. |
startValue | The initial value for the result. |
References Dune::TypeTree::applyToTree().