|
dune-typetree 2.11
|

Namespaces | |
| namespace | Dune::TypeTree |
| namespace | Dune::TypeTree::Experimental |
| namespace | Dune::TypeTree::Experimental::Info |
| namespace | Dune::TypeTree::Detail |
Classes | |
| struct | Dune::TypeTree::or_< result_type > |
| Statically combine two values of type result_type using ||. More... | |
| struct | Dune::TypeTree::and_< result_type > |
| Statically combine two values of type result_type using &&. More... | |
| struct | Dune::TypeTree::plus< result_type > |
| Statically combine two values of type result_type using +. More... | |
| struct | Dune::TypeTree::minus< result_type > |
| Statically combine two values of type result_type using -. More... | |
| struct | Dune::TypeTree::multiply< result_type > |
| Statically combine two values of type result_type using *. More... | |
| 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 > |
| 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 |
| Mixin base class for visitors that only want to visit the direct children of a node. 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. | |
| template<class Tree, TreePathType::Type pathType = TreePathType::dynamic> | |
| constexpr auto | Dune::TypeTree::leafTreePathTuple () |
| Create tuple of tree paths to leafs. | |
| template<Concept::TreeNode Tree, typename Visitor> | |
| void | Dune::TypeTree::applyToTree (Tree &&tree, Visitor &&visitor) |
| Apply visitor to TypeTree. | |
| 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. | |
| 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. |
| 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. |
|
constexpr |
Create tuple of tree paths to leafs.
This creates a tuple of HybridTreePath objects refering to the leaf nodes in the tree. The generated tree paths are always HybridTreePath instances. If pathType is TreePathType::dynamic then path entries for power nodes are of type std::size_t. For all other nodes and if pathType is not TreePathType::dynamic, the entries are instances of Dune::index_constant.
| Tree | Type of tree to generate tree paths for |
| pathType | Type of paths to generate |
| 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. |