dune-common 2.12-git
Loading...
Searching...
No Matches
Dune::TypeTree Namespace Reference

Namespaces

namespace  Concept
 
namespace  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.
 
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.
 
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.
 
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.
 
template<typename... T>
using TreePath = Dune::HybridMultiIndex< T... >
 A type for representing tree paths that supports both compile time and run time indices.
 

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.
 
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.
 
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.
 
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.
 
template<Concept::TreeNode Tree, class NodeFunc >
void forEachNode (Tree &&tree, NodeFunc &&nodeFunc)
 Traverse tree and visit each node.
 
template<Concept::TreeNode Tree, class LeafFunc >
void forEachLeafNode (Tree &&tree, LeafFunc &&leafFunc)
 Traverse tree and visit each leaf node.
 
template<class Tree , class LeafToValue >
auto makeTreeContainer (const Tree &tree, LeafToValue &&leafToValue)
 Create container having the same structure as the given tree.
 
template<class Value , class Tree >
auto makeTreeContainer (const Tree &tree)
 Create container having the same structure as the given tree.
 
template<typename... T>
requires (((std::is_integral_v<T> or Dune::IsIntegralConstant<T>::value) && ...))
constexpr auto treePath (const T &... t)
 Constructs a new TreePath from the given indices.
 
template<char... digits>
constexpr auto operator""_tp ()
 Literal to create treepath.