dune-typetree  2.7.1
Namespaces | Functions
traversal.hh File Reference
#include <dune/common/std/type_traits.hh>
#include <dune/common/std/utility.hh>
#include <dune/common/hybridutilities.hh>
#include <dune/typetree/childextraction.hh>
#include <dune/typetree/nodetags.hh>
#include <dune/typetree/treepath.hh>
#include <dune/typetree/visitor.hh>

Go to the source code of this file.

Namespaces

 Dune
 
 Dune::TypeTree
 
 Dune::TypeTree::Detail
 

Functions

template<bool c, class T1 , class T2 , std::enable_if_t< c, int > = 0>
constexpr auto Dune::TypeTree::Detail::conditionalValue (T1 &&t1, T2 &&t2)
 
template<class Tree , TreePathType::Type pathType, class Prefix , std::enable_if_t< Tree::isLeaf, int > = 0>
constexpr auto Dune::TypeTree::Detail::leafTreePathTuple (Prefix prefix)
 
template<class Tree , TreePathType::Type pathType, class Prefix , std::size_t... indices, std::enable_if_t<(Tree::isComposite or(Tree::isPower and(pathType!=TreePathType::dynamic))), int > = 0>
constexpr auto Dune::TypeTree::Detail::leafTreePathTuple (Prefix prefix, Std::index_sequence< indices... >)
 
template<class T , class TreePath , class V , std::enable_if_t< std::decay_t< T >::isLeaf, int > = 0>
void Dune::TypeTree::Detail::applyToTree (T &&tree, TreePath treePath, V &&visitor)
 
template<class Tree , class TreePath , class PreFunc , class LeafFunc , class PostFunc >
void Dune::TypeTree::Detail::forEachNode (Tree &&tree, TreePath treePath, PreFunc &&preFunc, LeafFunc &&leafFunc, PostFunc &&postFunc)
 
template<class Tree , TreePathType::Type pathType = TreePathType::dynamic>
constexpr auto Dune::TypeTree::leafTreePathTuple ()
 Create tuple of tree paths to leafs. More...
 
template<typename Tree , typename Visitor >
void Dune::TypeTree::applyToTree (Tree &&tree, Visitor &&visitor)
 Apply visitor to TypeTree. More...
 
template<class Tree , class PreFunc , class LeafFunc , class PostFunc >
void Dune::TypeTree::forEachNode (Tree &&tree, PreFunc &&preFunc, LeafFunc &&leafFunc, PostFunc &&postFunc)
 Traverse tree and visit each node. More...
 
template<class Tree , class InnerFunc , class LeafFunc >
void Dune::TypeTree::forEachNode (Tree &&tree, InnerFunc &&innerFunc, LeafFunc &&leafFunc)
 Traverse tree and visit each node. More...
 
template<class Tree , class NodeFunc >
void Dune::TypeTree::forEachNode (Tree &&tree, NodeFunc &&nodeFunc)
 Traverse tree and visit each node. More...
 
template<class Tree , class LeafFunc >
void Dune::TypeTree::forEachLeafNode (Tree &&tree, LeafFunc &&leafFunc)
 Traverse tree and visit each leaf node. More...