dune-typetree
2.4.0-rc1
|
![]() |
Classes | |
struct | Dune::TypeTree::extract_child_type< Node, TreePath > |
Extract the type of the child of Node at position TreePath. More... | |
Typedefs | |
template<typename Node , std::size_t... indices> | |
using | Dune::TypeTree::Child = typename impl::_Child< 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 | Dune::TypeTree::ChildForTreePath = typename impl::_ChildForTreePath< Node, TreePath >::type |
Template alias for the type of a child node given by a TreePath or a HybridTreePath type. More... | |
template<typename T > | |
using | Dune::TypeTree::is_flat_index = typename impl::_is_flat_index< typename std::decay< T >::type >::type |
Type trait that determines whether T is a flat index in the context of child extraction. More... | |
Functions | |
template<typename Node , typename TreePath > | |
ImplementationDefined & | Dune::TypeTree::extract_child (Node &node, Treepath tp) |
Extract the child of a node located at tp (non-const version). More... | |
template<typename Node , typename TreePath > | |
const ImplementationDefined & | Dune::TypeTree::extract_child (const Node &node, Treepath tp) |
Extract the child of a node located at tp (const version). More... | |
template<typename Node , typename TreePath > | |
ImplementationDefined | Dune::TypeTree::extract_child_storage (Node &node, Treepath tp) |
template<typename Node , typename TreePath > | |
ImplementationDefined | Dune::TypeTree::extract_child_storage (const Node &node, Treepath tp) |
template<typename Node , typename... Indices> | |
ImplementationDefined | Dune::TypeTree::child (Node &&node, Indices...indices) |
Extracts the child of a node given by a sequence of compile-time and run-time indices. More... | |
template<typename Node , std::size_t... Indices> | |
ImplementationDefined | Dune::TypeTree::child (Node &&node, TreePath< Indices...> treePath) |
Extracts the child of a node given by a static TreePath object. More... | |
template<typename Node , typename... Indices> | |
ImplementationDefined | Dune::TypeTree::child (Node &&node, HybridTreePath< Indices...> treePath) |
Extracts the child of a node given by a HybridTreePath object. More... | |
Utility functions and metafunctions for extracting children from a TypeTree.
using Dune::TypeTree::Child = typedef typename impl::_Child<Node,indices...>::type |
Template alias for the type of a child node given by a list of child indices.
This template alias is implemented in terms of the free-standing child() functions and uses those in combination with decltype() to extract the child type.
Node | The type of the parent node. |
indices | A list of index values the describes the path to the wanted child. |
using Dune::TypeTree::ChildForTreePath = typedef typename impl::_ChildForTreePath<Node,TreePath>::type |
Template alias for the type of a child node given by a TreePath or a HybridTreePath type.
This template alias is implemented in terms of the free-standing child() functions and uses those in combination with decltype() to extract the child type. It supports both TreePath and HybridTreePath.
Node | The type of the parent node. |
TreePath | The type of a TreePath or a HybridTreePath that describes the path to the wanted child. |
using Dune::TypeTree::is_flat_index = typedef typename impl::_is_flat_index<typename std::decay<T>::type>::type |
Type trait that determines whether T is a flat index in the context of child extraction.
ImplementationDefined Dune::TypeTree::child | ( | Node && | node, |
Indices... | indices | ||
) |
Extracts the child of a node given by a sequence of compile-time and run-time indices.
Use this function to extract a (possibly indirect) child of a TypeTree node.
Example:
returns the second child of the first child of the third child of the fifth child of node, where some child lookups were done using a compile-time index and some using a run-time index.
node | The node from which to extract the child. |
indices... | A list of indices that describes the path into the tree to the wanted child. These parameters can be a combination of run time indices (for tree nodes that allow accessing their children using run time information, like PowerNode) and instances of index_constant, which work for all types of inner nodes. |
References Dune::TypeTree::child().
Referenced by Dune::TypeTree::child().
ImplementationDefined Dune::TypeTree::child | ( | Node && | node, |
TreePath< Indices...> | treePath | ||
) |
Extracts the child of a node given by a static TreePath object.
Use this function to extract a (possibly indirect) child of a TypeTree node.
Example:
returns the second child of the first child of the third child of the fifth child of node.
node | The node from which to extract the child. |
treePath | A TreePath object that describes the path into the tree to the wanted child. |
References Dune::TypeTree::child().
ImplementationDefined Dune::TypeTree::child | ( | Node && | node, |
HybridTreePath< Indices...> | treePath | ||
) |
Extracts the child of a node given by a HybridTreePath object.
Use this function to extract a (possibly indirect) child of a TypeTree node.
Example:
returns the second child of the first child of the third child of the fifth child of node, where some child lookups were done using a compile-time index and some using a run-time index.
node | The node from which to extract the child. |
tree{ath | A HybridTreePath that describes the path into the tree to the wanted child. This tree path object can be a combination of run time indices (for tree nodes that allow accessing their children using run time information, like PowerNode) and instances of index_constant, which work for all types of inner nodes. |
Referenced by Dune::TypeTree::child().
ImplementationDefined& Dune::TypeTree::extract_child | ( | Node & | node, |
Treepath | tp | ||
) |
Extract the child of a node located at tp (non-const version).
Use this function to extract a (possibly indirect) child of a TypeTree node.
Example:
extract_child(node,Dune::TypeTree::TreePath<2,3,0>())
returns the first child of the fourth child of the third child of node.
node | The node from which to extract the child. |
tp | The path into the tree leading to the child. Note that the actual instance is not used at all by this function, only the type of the parameter. |
TreePath | A TreePath instantiation which statically encodes the path to the child. |
const ImplementationDefined& Dune::TypeTree::extract_child | ( | const Node & | node, |
Treepath | tp | ||
) |
Extract the child of a node located at tp (const version).
Use this function to extract a (possibly indirect) child of a TypeTree node.
Example:
extract_child(node,Dune::TypeTree::TreePath<2,3,0>())
returns the first child of the fourth child of the third child of node.
node | The node from which to extract the child. |
tp | The path into the tree leading to the child. Note that the actual instance is not used at all by this function, only the type of the parameter. |
TreePath | A TreePath instantiation which statically encodes the path to the child. |
ImplementationDefined Dune::TypeTree::extract_child_storage | ( | Node & | node, |
Treepath | tp | ||
) |
Extract the storage for the child of a node located at tp (non-const version). Use this function to extract the storage (usually a shared_ptr) of a (possibly indirect) child of a TypeTree node.
Example:
extract_child_storage(node,Dune::TypeTree::TreePath<2,3,0>())
returns the first child of the fourth child of the third child of node.
node | The node from which to extract the child. |
tp | The path into the tree leading to the child. Note that the actual instance is not used at all by this function, only the type of the parameter. |
TreePath | A TreePath instantiation which statically encodes the path to the child. |
ImplementationDefined Dune::TypeTree::extract_child_storage | ( | const Node & | node, |
Treepath | tp | ||
) |
Extract the storage for the child of a node located at tp (const version). Use this function to extract the const storage (usually a shared_ptr) of a (possibly indirect) child of a TypeTree node.
Example:
extract_child_storage(node,Dune::TypeTree::TreePath<2,3,0>())
returns the first child of the foruth child of the third child of node.
node | The node from which to extract the child. |
tp | The path into the tree leading to the child. Note that the actual instance is not used at all by this function, only the type of the parameter. |
TreePath | A TreePath instantiation which statically encodes the path to the child. |