4 #ifndef DUNE_TYPETREE_NODEINTERFACE_HH 5 #define DUNE_TYPETREE_NODEINTERFACE_HH 10 #include <dune/common/documentation.hh> 34 static const bool isLeaf = implementationDefined;
37 static const bool isPower = implementationDefined;
43 static const std::size_t
CHILDREN = implementationDefined;
61 template<
typename Node>
70 template<
typename Node>
85 template<
typename Node,
typename NodeTag>
98 template<
typename Node>
102 static_cast<std::decay_t<Node>*
>(
nullptr),
112 #endif // DUNE_TYPETREE_NODEINTERFACE_HH typename std::decay_t< T >::ImplementationTag ImplementationTag
Returns the implementation tag of the given Node.
Definition: nodeinterface.hh:66
Definition: accumulate_static.hh:13
ImplementationDefined NodeTag
The type tag that describes what kind of node this is.
Definition: nodeinterface.hh:51
std::size_t degree(const Node &node)
Returns the degree of node as run time information.
Definition: nodeinterface.hh:71
static const bool isLeaf
Whether this is a leaf node in a dune-typetree.
Definition: nodeinterface.hh:34
static const std::size_t CHILDREN
Number of children of this node in the dune-typetree.
Definition: nodeinterface.hh:43
Interface for nodes in a dune-typetree.
Definition: nodeinterface.hh:31
static const bool isComposite
Whether this is a composite node in the dune-typetree.
Definition: nodeinterface.hh:40
std::integral_constant< std::size_t, degree(static_cast< std::decay_t< Node > * >(nullptr), NodeTag< std::decay_t< Node > >()) > StaticDegree
Returns the statically known degree of the given Node type as a std::integral_constant.
Definition: nodeinterface.hh:105
static const bool isPower
Whether this is a power node in the dune-typetree.
Definition: nodeinterface.hh:37
ImplementationDefined NodeStorage
container type to pass around a collection of children
Definition: nodeinterface.hh:57
typename std::decay_t< Node >::NodeTag NodeTag
Returns the node tag of the given Node.
Definition: nodeinterface.hh:62