Functions | |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_safe_walk_if (_Walker __w, _Visitor __f) |
template<class _IterativeWalker , class _Function > | |
_Function | walk (_IterativeWalker __first, _IterativeWalker __last, _Function __f) |
template<class _PrePostWalker , class _Function > | |
_Function | pre_post_walk (_PrePostWalker __first, _PrePostWalker __last, _Function __f) |
template<class _PrePostWalker , class _Function1 , class _Function2 > | |
_Function2 | pre_post_walk (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2) |
template<class _PrePostWalker , class _Function > | |
_Function | var_walk (_PrePostWalker __first, _PrePostWalker __last, _Function __f) |
template<class _PrePostWalker , class _Function1 , class _Function2 > | |
_Function2 | var_walk (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2) |
template<class _PrePostWalker , class _Function , class _Predicate > | |
_Function | walk_if (_PrePostWalker __first, _PrePostWalker __last, _Function __f, _Predicate __pred) |
template<class _PrePostWalker , class _Function1 , class _Function2 , class _Predicate > | |
_Function2 | walk_if (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2, _Predicate __pred) |
template<class _PrePostWalker , class _Function1 , class _Function2 , class _Predicate1 , class _Predicate2 > | |
_Function2 | walk_if (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2, _Predicate1 __pred1, _Predicate2 __pred2) |
template<class _PrePostWalker , class _Function1 , class _Function2 , class _Predicate > | |
_Function2 | cached_walk_if (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2, _Predicate __pred) |
template<class _PrePostWalker , class _Function1 , class _Function2 , class _Predicate > | |
_Function2 | multi_walk_if (_PrePostWalker __first, _PrePostWalker __last, _Function1 __f1, _Function2 __f2, _Predicate __pred) |
template<class _Walker , class _Function > | |
_Function | walk_up (_Walker __w, _Function __f) |
template<class _Walker , class _Function > | |
_Function | var_walk_up (_Walker __w, _Function __f) |
template<class _Walker , class _Function , class _Predicate > | |
_Function | walk_up_if (_Walker __w, _Function __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_preorder_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_postorder_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_preorder_walk_if (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_preorder_walk_if (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_postorder_walk_if (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_walk_if (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_cached_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_multi_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 > | |
_Visitor::return_value | recursive_walk_if (_Walker __w, _Visitor __f, _Predicate1 __p1, _Predicate2 __p2) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_cached_walk (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_multi_walk (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_preorder_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_preorder_walk_up_if (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_preorder_walk_up_if (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_postorder_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_postorder_walk_up_if (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_walk_up_if (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate1 , class _Predicate2 > | |
_Visitor::return_value | recursive_walk_up_if (_Walker __w, _Visitor __f, _Predicate1 __p1, _Predicate2 __p2) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_cached_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_multi_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_cached_walk_up (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor , class _Predicate > | |
_Visitor::return_value | recursive_multi_walk_up (_Walker __w, _Visitor __f, _Predicate __p) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | general_directed_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | general_directed_walk_down (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | general_directed_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_general_directed_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_general_directed_walk_down (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_general_directed_walk_up (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | general_walk (_Walker __w, _Visitor __f) |
template<class _Walker , class _Visitor > | |
_Visitor::return_value | recursive_general_walk (_Walker __w, _Visitor __f) |
template<class _BidirIter , class _Tp > | |
_BidirIter | rfind (_BidirIter __first, _BidirIter __last, const _Tp &__val) |
template<class _BidirIter , class _Predicate > | |
_BidirIter | rfind_if (_BidirIter __first, _BidirIter __last, _Predicate __pred) |
template<class _Walker , class _Test > | |
void | recursive_consistency_test (_Walker __w, const _Test &__t) |
_Function2 cached_walk_if | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2, | |||
_Predicate | __pred | |||
) | [inline] |
this tree walk is a pre+post walk, calling two functions at every node, one in the preorder and the other in the postorder visit. If the function returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 394 of file vgtl_algo.h.
_Visitor::return_value general_directed_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
analyze
is called before walking for every virtual node. While this function returns true
, the walk goes on.preorder
is called before a walk direction is being decided.postorder
is called after the walk dircetion has been found.walk_up
shall return whether the next step of the walk is upwards or downwards.up
is called for an upwards step and decides which in-edge to take.down
is called for a downwards step and decides which out-edge to take.value
is called to compute the return value for this node. Definition at line 2390 of file vgtl_algo.h.
_Visitor::return_value general_directed_walk_down | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
analyze
is called before walking for every virtual node. While this function returns true
, the walk goes on.preorder
is called before a walk direction is being decided.postorder
is called after the walk dircetion has been found.down
is called to decide which out-edge to take.value
is called to compute the return value for this node. Definition at line 2419 of file vgtl_algo.h.
_Visitor::return_value general_directed_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
analyze
is called before walking for every virtual node. While this function returns true
, the walk goes on.preorder
is called before a walk direction is being decided.postorder
is called after the walk dircetion has been found.up
is called to decide which in-edge to take.value
is called to compute the return value for this node. Definition at line 2446 of file vgtl_algo.h.
_Visitor::return_value general_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a general walk starting at __w
. At every node various methods of the visitor __f
are called:
analyze
is called before walking for every virtual node. While this function returns true
, the walk goes on.preorder
is called before a walk direction is being decided.postorder
is called after the walk dircetion has been found.next
is called to decide which edge to follow.value
is called to compute the return value for this node. Definition at line 2558 of file vgtl_algo.h.
_Function2 multi_walk_if | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2, | |||
_Predicate | __pred | |||
) | [inline] |
this tree walk is a pre+post walk, calling two functions at every node, one in the preorder and the other in the postorder visit. If the function returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 427 of file vgtl_algo.h.
_Function2 pre_post_walk | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2 | |||
) | [inline] |
make a pre and post order tree walk, calling two different functions, one in the preorder step, the other in the postorder step.
Definition at line 224 of file vgtl_algo.h.
_Function pre_post_walk | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function | __f | |||
) | [inline] |
make a pre and post order tree walk, calling a function for every node.
Definition at line 206 of file vgtl_algo.h.
_Visitor::return_value recursive_cached_walk | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If then predicate __p
returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited.value
is called to compute the return value for this node Definition at line 1297 of file vgtl_algo.h.
_Visitor::return_value recursive_cached_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If it returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited.value
is called to compute the return value for this node Definition at line 1048 of file vgtl_algo.h.
_Visitor::return_value recursive_cached_walk_up | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If then predicate __p
returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited.value
is called to compute the return value for this node Definition at line 2224 of file vgtl_algo.h.
_Visitor::return_value recursive_cached_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If it returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited.value
is called to compute the return value for this node Definition at line 2066 of file vgtl_algo.h.
void recursive_consistency_test | ( | _Walker | __w, | |
const _Test & | __t | |||
) | [inline] |
perform a consistency test of the tree or DAG.
Definition at line 49 of file vgtl_test.h.
_Visitor::return_value recursive_general_directed_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
preorder
is called before any child is visitedanalyze
is called everytime before a child node might be vistied. While this function returns true
, the walk goes on at this node.collect
is called everytime a child has finished.postorder
is called after the walk dircetion has been found.walk_up
shall return whether the next step of the walk is upwards or downwards.up
is called for an upwards step and decides which in-edge to take.down
is called for a downwards step and decides which out-edge to take.value
is called to compute the return value for this node. Definition at line 2479 of file vgtl_algo.h.
_Visitor::return_value recursive_general_directed_walk_down | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
preorder
is called before any child is visitedanalyze
is called everytime before a child node might be vistied. While this function returns true
, the walk goes on at this node.collect
is called everytime a child has finished.postorder
is called after the walk dircetion has been found.down
is called to decide which out-edge to take.value
is called to compute the return value for this node. Definition at line 2509 of file vgtl_algo.h.
_Visitor::return_value recursive_general_directed_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive general directed walk starting at __w
. At every node various methods of the visitor __f
are called:
preorder
is called before any child is visitedanalyze
is called everytime before a child node might be vistied. While this function returns true
, the walk goes on at this node.collect
is called everytime a child has finished.postorder
is called after the walk dircetion has been found.up
is called to decide which in-edge to take.value
is called to compute the return value for this node. Definition at line 2534 of file vgtl_algo.h.
_Visitor::return_value recursive_general_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive general walk starting at __w
. At every node various methods of the visitor __f
are called:
preorder
is called before any child is visitedanalyze
is called everytime before a child node might be vistied. While this function returns true
, the walk goes on at this node.collect
is called everytime a child has finished.postorder
is called after the walk dircetion has been found.next
is called to decide which edge to follow.value
is called to compute the return value for this node. Definition at line 2585 of file vgtl_algo.h.
_Visitor::return_value recursive_multi_walk | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If the predicate __p
returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 1376 of file vgtl_algo.h.
_Visitor::return_value recursive_multi_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If it returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 1124 of file vgtl_algo.h.
_Visitor::return_value recursive_multi_walk_up | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If the predicate __p
returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 2303 of file vgtl_algo.h.
_Visitor::return_value recursive_multi_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If it returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 2143 of file vgtl_algo.h.
_Visitor::return_value recursive_postorder_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive postorder walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodeinit
is called before the children are visitedcollect
is called everytime a child has finishedpostorder
is called after all children have finishedvalue
is called to compute the return value for this node Definition at line 596 of file vgtl_algo.h.
_Visitor::return_value recursive_postorder_walk_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive postorder walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodeinit
is called before the children are visited. Then the predicate is called. If this predicate returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.postorder
is called after all children have been visited.collect
is called everytime a child has finished.value
is called to compute the return value for this node. Definition at line 881 of file vgtl_algo.h.
_Visitor::return_value recursive_postorder_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive postorder walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodeinit
is called before the children are visitedcollect
is called everytime a child has finishedpostorder
is called after all children have finishedvalue
is called to compute the return value for this node Definition at line 1669 of file vgtl_algo.h.
_Visitor::return_value recursive_postorder_walk_up_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive postorder walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodeinit
is called before the children are visited. Then the predicate is called. If this predicate returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.postorder
is called after all children have been visited.collect
is called everytime a child has finished.value
is called to compute the return value for this node. Definition at line 1740 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive preorder walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visitedcollect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 531 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive preorder walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. Then the predicate is called. If this predicate returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.collect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 804 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk_if | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive preorder walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If this function returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.collect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 731 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive preorder walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visitedcollect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 1456 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk_up_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate | __p | |||
) | [inline] |
perform a recursive preorder walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. Then the predicate is called. If this predicate returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.collect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 1595 of file vgtl_algo.h.
_Visitor::return_value recursive_preorder_walk_up_if | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive preorder walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If this function returns true
, the children are visited. Otherwise, the node is treated as if it was a terminal node.collect
is called everytime a child has finishedvalue
is called to compute the return value for this node Definition at line 1522 of file vgtl_algo.h.
_Visitor::return_value recursive_safe_walk_if | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited. If it returns true
, the children are visited. If it returns false
, the children are ignored.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If it returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 59 of file vgtl_addalgo.h.
_Visitor::return_value recursive_walk | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visitedcollect
is called everytime a child has finishedpostorder
is called after all children have been visitedvalue
is called to compute the return value for this node Definition at line 664 of file vgtl_algo.h.
_Visitor::return_value recursive_walk_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate1 | __p1, | |||
_Predicate2 | __p2 | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If then predicate p1
returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited. If then predicate p2
returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node Definition at line 1206 of file vgtl_algo.h.
_Visitor::return_value recursive_walk_if | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited. If it returns true
, the children are visited. If it returns false
, the children are ignored.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If it returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 963 of file vgtl_algo.h.
_Visitor::return_value recursive_walk_up | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visitedcollect
is called everytime a child has finishedpostorder
is called after all children have been visitedvalue
is called to compute the return value for this node Definition at line 1816 of file vgtl_algo.h.
_Visitor::return_value recursive_walk_up_if | ( | _Walker | __w, | |
_Visitor | __f, | |||
_Predicate1 | __p1, | |||
_Predicate2 | __p2 | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual nodevcollect
is called after a child of a virtual node has finishedvvalue
is called to compute the return value of a virtual nodepreorder
is called before the children are visited. If then predicate p1
returns true
, the children are visited. If it returns false
, the children are ignoredcollect
is called everytime a child has finishedpostorder
is called after the children have been visited. If then predicate p2
returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node Definition at line 1975 of file vgtl_algo.h.
_Visitor::return_value recursive_walk_up_if | ( | _Walker | __w, | |
_Visitor | __f | |||
) | [inline] |
perform a recursive pre+post order walk towards the root starting at __w
. At every node various methods of the visitor __f
are called:
vinit
is called before walking for every virtual node.vcollect
is called after a child of a virtual node has finished.vvalue
is called to compute the return value of a virtual node.preorder
is called before the children are visited. If it returns true
, the children are visited. If it returns false
, the children are ignored.collect
is called everytime a child has finished.postorder
is called after the children have been visited. If it returns true
, the walk is continued by switching back to preorder mode for this node. If it returns false
, the walk is over for this node.value
is called to compute the return value for this node. Definition at line 1887 of file vgtl_algo.h.
_BidirIter rfind | ( | _BidirIter | __first, | |
_BidirIter | __last, | |||
const _Tp & | __val | |||
) | [inline] |
Find the last occurrence of a value in a sequence.
__first | An input iterator. | |
__last | An input iterator. | |
__val | The value to find. |
i
in the range
[__first,__last) such that *i
== val
, or __last
if no such iterator exists. Definition at line 192 of file vgtl_helpers.h.
_BidirIter rfind_if | ( | _BidirIter | __first, | |
_BidirIter | __last, | |||
_Predicate | __pred | |||
) | [inline] |
Find the last element in a sequence for which a predicate is true.
__first | An input iterator. | |
__last | An input iterator. | |
__pred | A predicate. |
i
in the range
[__first,__last) such that __pred(*i)
is true, or __last
if no such iterator exists. Definition at line 208 of file vgtl_helpers.h.
_Function2 var_walk | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2 | |||
) | [inline] |
this tree walk is a pre+post walk, calling two functions at every node, one in the preorder and the other in the postorder step. If the function returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 271 of file vgtl_algo.h.
_Function var_walk | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function | __f | |||
) | [inline] |
this tree walk is a pre+post walk, calling a function at every node. If the function returns true
, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 248 of file vgtl_algo.h.
_Function var_walk_up | ( | _Walker | __w, | |
_Function | __f | |||
) | [inline] |
this tree walk is a pre+post walk towards the root, calling a function at every node. If the function returns true
, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 476 of file vgtl_algo.h.
_Function walk | ( | _IterativeWalker | __first, | |
_IterativeWalker | __last, | |||
_Function | __f | |||
) | [inline] |
make a pre or post order tree walk, calling a function for every node it is also possible to perform a pre+post order walk. In that case the function _f
must distinguish between the two calls by itself.
Definition at line 191 of file vgtl_algo.h.
_Function2 walk_if | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2, | |||
_Predicate1 | __pred1, | |||
_Predicate2 | __pred2 | |||
) | [inline] |
this tree walk is a pre+post walk, calling two functions at every node, one in the preorder and the other in the postorder visit. If the predicates return true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks. Predicate pred1 is called in the preorder phase, predicate pred2 in the postorder phase.
Definition at line 356 of file vgtl_algo.h.
_Function2 walk_if | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function1 | __f1, | |||
_Function2 | __f2, | |||
_Predicate | __pred | |||
) | [inline] |
this tree walk is a pre+post walk, calling two functions at every node, one in the preorder and the other in the postorder visit. If the predicate returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 323 of file vgtl_algo.h.
_Function walk_if | ( | _PrePostWalker | __first, | |
_PrePostWalker | __last, | |||
_Function | __f, | |||
_Predicate | __pred | |||
) | [inline] |
this tree walk is a pre+post walk, calling a function at every node. If the predicate returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 296 of file vgtl_algo.h.
_Function walk_up | ( | _Walker | __w, | |
_Function | __f | |||
) | [inline] |
make a pre or post order tree walk towards the root node, calling a function for every node it is also possible to perform a pre+post order walk. In that case the function _f
must distinguish between the two calls by itself.
Definition at line 456 of file vgtl_algo.h.
_Function walk_up_if | ( | _Walker | __w, | |
_Function | __f, | |||
_Predicate | __p | |||
) | [inline] |
this tree walk is a pre+post walk towards the root, calling a function at every node. If the predicate returns true, the status of the walker is flipped from pre to post (or vice versa). If the status is changed from pre to post, the subtree originating from the current position is not visited, if the status change is the other way round, it is revisited. This allows for cached or partially multi pass walks.
Definition at line 497 of file vgtl_algo.h.