dune-common  2.11
Namespaces | Typedefs | Functions
Dune::TypeTree Namespace Reference

Namespaces

 Concept
 
 Literals
 

Typedefs

template<typename Node , std::size_t... indices>
using Child = typename Impl::ChildTraits< Node, indices... >::type
 Template alias for the type of a child node given by a list of child indices. More...
 
template<typename Node , typename TreePath >
using ChildForTreePath = std::decay_t< decltype(child(std::declval< Node >(), std::declval< TreePath >()))>
 Template alias for the type of a child node given by a TreePath type. More...
 
template<class Value , class Tree >
using UniformTreeContainer = std::decay_t< decltype(makeTreeContainer< Value >(std::declval< const Tree & >()))>
 Alias to container type generated by makeTreeContainer for given tree type and uniform value type. More...
 
template<template< class Node > class LeafToValue, class Tree >
using TreeContainer = std::decay_t< decltype(makeTreeContainer(std::declval< const Tree & >(), std::declval< Impl::LeafToDefaultConstructibleValue< LeafToValue > >()))>
 Alias to container type generated by makeTreeContainer for give tree type and when using LeafToValue to create values. More...
 
template<typename... T>
using TreePath = Dune::HybridMultiIndex< T... >
 A type for representing tree paths that supports both compile time and run time indices. More...
 

Functions

template<typename Node , typename... Indices>
decltype(auto) child (Node &&node, TreePath< Indices... > treePath)
 Extracts the child of a node given by a TreePath object. More...
 
template<typename Node , typename... Indices>
decltype(auto) child (Node &&node, Indices... indices)
 Extracts the child of a node given by a sequence of compile-time and run-time indices. More...
 
template<Concept::InnerTreeNode Tree, class Callable >
constexpr void forEachChild (Tree &&container, Callable &&at_value)
 Traverse each child of a tree and apply a callable function. More...
 
template<class Tree , class PreNodeFunc , class LeafNodeFunc , class PostNodeFunc >
void forEachNode (Tree &&tree, PreNodeFunc &&preNodeFunc, LeafNodeFunc &&leafNodeFunc, PostNodeFunc &&postNodeFunc)
 Traverse tree and visit each node. More...
 
template<Concept::TreeNode Tree, class NodeFunc >
void forEachNode (Tree &&tree, NodeFunc &&nodeFunc)
 Traverse tree and visit each node. More...
 
template<Concept::TreeNode Tree, class LeafFunc >
void forEachLeafNode (Tree &&tree, LeafFunc &&leafFunc)
 Traverse tree and visit each leaf node. More...
 
template<class Tree , class LeafToValue >
auto makeTreeContainer (const Tree &tree, LeafToValue &&leafToValue)
 Create container having the same structure as the given tree. More...
 
template<class Value , class Tree >
auto makeTreeContainer (const Tree &tree)
 Create container having the same structure as the given tree. More...
 
template<typename... T>
 requires (((std::is_integral_v< T > or Dune::IsIntegralConstant< T >::value) &&...)) const expr auto treePath(const T &... t)
 Constructs a new TreePath from the given indices. More...