Go to the documentation of this file.
4 #ifndef DUNE_TYPETREE_VISITOR_HH
5 #define DUNE_TYPETREE_VISITOR_HH
56 template<
typename T,
typename TreePath>
68 template<
typename T,
typename TreePath>
79 template<
typename T,
typename TreePath>
89 template<
typename T,
typename TreePath>
103 template<
typename T,
typename Child,
typename TreePath,
typename ChildIndex>
118 template<
typename T,
typename Child,
typename TreePath,
typename ChildIndex>
172 template<
typename T1,
typename T2,
typename TreePath>
185 template<
typename T1,
typename T2,
typename TreePath>
197 template<
typename T1,
typename T2,
typename TreePath>
212 template<
typename T1,
typename T2,
typename TreePath>
228 template<
typename T1,
typename Child1,
typename T2,
typename Child2,
typename TreePath,
typename ChildIndex>
244 template<
typename T1,
typename Child1,
typename T2,
typename Child2,
typename TreePath,
typename ChildIndex>
262 template<
typename Node1,
265 typename Child2 = void,
288 template<
typename Node1,
291 typename Child2 = void,
358 #endif // DUNE_TYPETREE_VISITOR_HH
void beforeChild(T1 &&t1, Child1 &&child1, T2 &&t2, Child2 &&child2, TreePath treePath, ChildIndex childIndex) const
Method for parent-child traversal.
Definition: visitor.hh:229
void beforeChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex) const
Method for parent-child traversal.
Definition: visitor.hh:104
static const bool value
Visit any child.
Definition: visitor.hh:296
void leaf(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for leaf traversal.
Definition: visitor.hh:213
void leaf(T &&t, TreePath treePath) const
Method for leaf traversal.
Definition: visitor.hh:90
Convenience base class for visiting the direct children of a node pair.
Definition: visitor.hh:348
Mixin base class for visitors that only need a dynamic TreePath during traversal.
Definition: visitor.hh:323
Mixin base class for visitors that want to visit the complete tree.
Definition: visitor.hh:281
constexpr HybridTreePath< T... > treePath(const T &... t)
Constructs a new HybridTreePath from the given indices.
Definition: treepath.hh:188
Mixin base class for visitors that only want to visit the direct children of a node.
Definition: visitor.hh:255
Convenience base class for visiting an entire tree pair.
Definition: visitor.hh:342
void in(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for infix tree traversal.
Definition: visitor.hh:186
Type
Definition: treepath.hh:30
typename impl::_Child< Node, indices... >::type Child
Template alias for the type of a child node given by a list of child indices.
Definition: childextraction.hh:276
void afterChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex) const
Method for child-parent traversal.
Definition: visitor.hh:119
void pre(T &&t, TreePath treePath) const
Method for prefix tree traversal.
Definition: visitor.hh:57
void pre(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for prefix tree traversal.
Definition: visitor.hh:173
A hybrid version of TreePath that supports both compile time and run time indices.
Definition: treepath.hh:23
Mixin base class for visitors that require a static TreePath during traversal.
Definition: visitor.hh:309
Visitor interface and base class for visitors of pairs of TypeTrees.
Definition: visitor.hh:160
Convenience base class for visiting the entire tree.
Definition: visitor.hh:330
static const TreePathType::Type treePathType
Use the dynamic tree traversal algorithm.
Definition: visitor.hh:326
Template struct for determining whether or not to visit a given child.
Definition: visitor.hh:293
@ dynamic
Definition: treepath.hh:30
static const bool value
Do not visit any child.
Definition: visitor.hh:270
Template struct for determining whether or not to visit a given child.
Definition: visitor.hh:267
static const TreePathType::Type treePathType
Use the static tree traversal algorithm.
Definition: visitor.hh:312
Visitor interface and base class for TypeTree visitors.
Definition: visitor.hh:45
Definition: accumulate_static.hh:13
void in(T &&t, TreePath treePath) const
Method for infix tree traversal.
Definition: visitor.hh:69
void afterChild(T1 &&t1, Child1 &&child1, T2 &&t2, Child2 &&child2, TreePath treePath, ChildIndex childIndex) const
Method for child-parent traversal.
Definition: visitor.hh:245
Convenience base class for visiting the direct children of a node.
Definition: visitor.hh:336
ImplementationDefined child(Node &&node, Indices... indices)
Extracts the child of a node given by a sequence of compile-time and run-time indices.
Definition: childextraction.hh:179
@ fullyStatic
Definition: treepath.hh:30
void post(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for postfix traversal.
Definition: visitor.hh:198
void post(T &&t, TreePath treePath) const
Method for postfix tree traversal.
Definition: visitor.hh:80