dune-common  2.11
Variables
Dune::TypeTree::Concept Namespace Reference

Variables

template<class Node >
concept TreeNode
 Model of a node of a typetree. More...
 
template<class Node >
concept StaticDegreeInnerTreeNode
 Model of an inner node of a typetree with compile time known degree and child access via index_constant. More...
 
template<class Node >
concept UniformInnerTreeNode
 Model of an inner node of a typetree with uniform nodes accessible via runtime index. More...
 
template<class Node >
concept InnerTreeNode = StaticDegreeInnerTreeNode<Node> || UniformInnerTreeNode<Node>
 Model of an inner tree node of a typetree (either static degree or uniform) More...
 
template<class Node >
concept LeafTreeNode = TreeNode<Node> && not InnerTreeNode<Node>
 Model of a leaf tree node of a typetree. More...
 

Variable Documentation

◆ InnerTreeNode

template<class Node >
concept Dune::TypeTree::Concept::InnerTreeNode = StaticDegreeInnerTreeNode<Node> || UniformInnerTreeNode<Node>

Model of an inner tree node of a typetree (either static degree or uniform)

◆ LeafTreeNode

template<class Node >
concept Dune::TypeTree::Concept::LeafTreeNode = TreeNode<Node> && not InnerTreeNode<Node>

Model of a leaf tree node of a typetree.

◆ StaticDegreeInnerTreeNode

template<class Node >
concept Dune::TypeTree::Concept::StaticDegreeInnerTreeNode
Initial value:
= TreeNode<Node> && requires(Node node)
{
std::remove_cvref_t<Node>::degree();
requires IsCompileTimeConstant<decltype(std::remove_cvref_t<Node>::degree())>::value;
requires Impl::HasConstExprDegree<Node> and Impl::HasPositiveDegree<Node>;
node.child(index_constant<0>());
node.child(index_constant<(std::remove_cvref_t<Node>::degree()-1)>());
}
requires(((std::is_integral_v< I > or Dune::IsIntegralConstant< I >::value) &&...)) HybridMultiIndex(I... i) -> HybridMultiIndex< decltype(Impl::castToHybridSizeT(i))... >
std::integral_constant< std::size_t, i > index_constant
An index constant with value i.
Definition: indices.hh:29

Model of an inner node of a typetree with compile time known degree and child access via index_constant.

◆ TreeNode

template<class Node >
concept Dune::TypeTree::Concept::TreeNode
Initial value:
= requires(Node node)
{
{ std::as_const(node).degree() } -> std::convertible_to<std::size_t>;
}
requires(((std::is_integral_v< I > or Dune::IsIntegralConstant< I >::value) &&...)) HybridMultiIndex(I... i) -> HybridMultiIndex< decltype(Impl::castToHybridSizeT(i))... >

Model of a node of a typetree.

◆ UniformInnerTreeNode

template<class Node >
concept Dune::TypeTree::Concept::UniformInnerTreeNode
Initial value:
= TreeNode<Node> && requires(Node node, std::size_t index)
{
node.child(index);
}
requires(((std::is_integral_v< I > or Dune::IsIntegralConstant< I >::value) &&...)) HybridMultiIndex(I... i) -> HybridMultiIndex< decltype(Impl::castToHybridSizeT(i))... >

Model of an inner node of a typetree with uniform nodes accessible via runtime index.