DUNE PDELab (2.8)
visitor.hh
229 template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>
230 void beforeChild(T1&& t1, Child1&& child1, T2&& t2, Child2&& child2, TreePath treePath, ChildIndex childIndex) const {}
245 template<typename T1, typename Child1, typename T2, typename Child2, typename TreePath, typename ChildIndex>
246 void afterChild(T1&& t1, Child1&& child1, T2&& t2, Child2&& child2, TreePath treePath, ChildIndex childIndex) const {}
334 auto beforeChild(T&& t, Child&& child, TreePath treePath, ChildIndex childIndex, const U& u) const {return u;}
344 auto afterChild(T&& t, Child&& child, TreePath treePath, ChildIndex childIndex, const U& u) const {return u;}
537 constexpr bool isDynamic = std::is_same<std::size_t, decltype(leafCount(std::declval<Tree>()))>{};
A hybrid version of TreePath that supports both compile time and run time indices.
Definition: treepath.hh:79
constexpr index_constant< 0 > _0
Compile time index with value 0.
Definition: indices.hh:51
constexpr index_constant< 1 > _1
Compile time index with value 1.
Definition: indices.hh:54
std::integral_constant< std::size_t, i > index_constant
An index constant with value i.
Definition: indices.hh:28
auto max(ADLTag< 0 >, const V &v1, const V &v2)
implements binary Simd::max()
Definition: defaults.hh:79
constexpr std::size_t treePathSize(const HybridTreePath< T... > &)
Returns the size (number of components) of the given HybridTreePath.
Definition: treepath.hh:196
constexpr HybridTreePath< T... > treePath(const T &... t)
Constructs a new HybridTreePath from the given indices.
Definition: treepath.hh:188
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:223
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:126
Visitor interface and base class for visitors of pairs of TypeTrees.
Definition: visitor.hh:162
void pre(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for prefix tree traversal.
Definition: visitor.hh:174
void leaf(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for leaf traversal.
Definition: visitor.hh:214
void afterChild(T1 &&t1, Child1 &&child1, T2 &&t2, Child2 &&child2, TreePath treePath, ChildIndex childIndex) const
Method for child-parent traversal.
Definition: visitor.hh:246
void post(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for postfix traversal.
Definition: visitor.hh:199
void beforeChild(T1 &&t1, Child1 &&child1, T2 &&t2, Child2 &&child2, TreePath treePath, ChildIndex childIndex) const
Method for parent-child traversal.
Definition: visitor.hh:230
void in(T1 &&t1, T2 &&t2, TreePath treePath) const
Method for infix tree traversal.
Definition: visitor.hh:187
Visitor interface and base class for TypeTree visitors.
Definition: visitor.hh:47
void in(T &&t, TreePath treePath) const
Method for infix tree traversal.
Definition: visitor.hh:70
void pre(T &&t, TreePath treePath) const
Method for prefix tree traversal.
Definition: visitor.hh:58
void post(T &&t, TreePath treePath) const
Method for postfix tree traversal.
Definition: visitor.hh:81
void beforeChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex) const
Method for parent-child traversal.
Definition: visitor.hh:105
void leaf(T &&t, TreePath treePath) const
Method for leaf traversal.
Definition: visitor.hh:91
void afterChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex) const
Method for child-parent traversal.
Definition: visitor.hh:120
Convenience base class for visiting the direct children of a node pair.
Definition: visitor.hh:451
Convenience base class for visiting the direct children of a node.
Definition: visitor.hh:439
Mixin base class for visitors that only need a dynamic TreePath during traversal.
Definition: visitor.hh:424
static const TreePathType::Type treePathType
Use the dynamic tree traversal algorithm.
Definition: visitor.hh:426
Hybrid visitor interface and base class for TypeTree hybrid visitors.
Definition: visitor.hh:284
auto post(T &&t, TreePath treePath, const U &u) const
Method for postfix tree traversal.
Definition: visitor.hh:314
auto afterChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex, const U &u) const
Method for child-parent traversal.
Definition: visitor.hh:344
auto leaf(T &&t, TreePath treePath, const U &u) const
Method for leaf traversal.
Definition: visitor.hh:324
auto pre(T &&t, TreePath treePath, const U &u) const
Method for prefix tree traversal.
Definition: visitor.hh:294
auto beforeChild(T &&t, Child &&child, TreePath treePath, ChildIndex childIndex, const U &u) const
Method for parent-child traversal.
Definition: visitor.hh:334
auto in(T &&t, TreePath treePath, const U &u) const
Method for infix tree traversal.
Definition: visitor.hh:304
Mixin base class for visitors that require a static TreePath during traversal.
Definition: visitor.hh:410
static const TreePathType::Type treePathType
Use the static tree traversal algorithm.
Definition: visitor.hh:412
Convenience base class for visiting an entire tree pair.
Definition: visitor.hh:445
Convenience base class for visiting the entire tree.
Definition: visitor.hh:433
Template struct for determining whether or not to visit a given child.
Definition: visitor.hh:368
static const bool value
Do not visit any child.
Definition: visitor.hh:370
Mixin base class for visitors that only want to visit the direct children of a node.
Definition: visitor.hh:356
Template struct for determining whether or not to visit a given child.
Definition: visitor.hh:394
static const bool value
Visit any child.
Definition: visitor.hh:396
Mixin base class for visitors that want to visit the complete tree.
Definition: visitor.hh:382
![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/80x15.png)