dune-typetree  2.7.1
Classes | Functions
Dune::TypeTree::Detail Namespace Reference

Classes

class  ContainerFactory
 
struct  LeafToDefaultConstructibleValue
 
class  TreeContainerVectorBackend
 

Functions

template<class T1 , class T2 , class TreePath , class V , std::enable_if_t<(std::decay_t< T1 >::isLeaf or std::decay_t< T2 >::isLeaf), int > = 0>
void applyToTreePair (T1 &&tree1, T2 &&tree2, TreePath treePath, V &&visitor)
 
template<bool c, class T1 , class T2 , std::enable_if_t< c, int > = 0>
constexpr auto conditionalValue (T1 &&t1, T2 &&t2)
 
template<class Tree , TreePathType::Type pathType, class Prefix , std::enable_if_t< Tree::isLeaf, int > = 0>
constexpr auto 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 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 applyToTree (T &&tree, TreePath treePath, V &&visitor)
 
template<class Tree , class TreePath , class PreFunc , class LeafFunc , class PostFunc >
void forEachNode (Tree &&tree, TreePath treePath, PreFunc &&preFunc, LeafFunc &&leafFunc, PostFunc &&postFunc)
 
template<class Container >
auto makeTreeContainerVectorBackend (Container &&container)
 

Function Documentation

◆ applyToTree()

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 
)

◆ applyToTreePair()

template<class T1 , class T2 , class TreePath , class V , std::enable_if_t<(std::decay_t< T1 >::isLeaf or std::decay_t< T2 >::isLeaf), int > = 0>
void Dune::TypeTree::Detail::applyToTreePair ( T1 &&  tree1,
T2 &&  tree2,
TreePath  treePath,
V &&  visitor 
)

◆ conditionalValue()

template<bool c, class T1 , class T2 , std::enable_if_t< c, int > = 0>
constexpr auto Dune::TypeTree::Detail::conditionalValue ( T1 &&  t1,
T2 &&  t2 
)
constexpr

◆ forEachNode()

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 
)

◆ leafTreePathTuple() [1/2]

template<class Tree , TreePathType::Type pathType, class Prefix , std::enable_if_t< Tree::isLeaf, int > = 0>
constexpr auto Dune::TypeTree::Detail::leafTreePathTuple ( Prefix  prefix)
constexpr

◆ leafTreePathTuple() [2/2]

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... >   
)
constexpr

◆ makeTreeContainerVectorBackend()

template<class Container >
auto Dune::TypeTree::Detail::makeTreeContainerVectorBackend ( Container &&  container)