6#ifndef DUNE_COMMON_TYPETREE_NODECONCEPTS_HH
7#define DUNE_COMMON_TYPETREE_NODECONCEPTS_HH
22 concept HasConstExprDegree =
requires(Node node)
24 std::bool_constant<(std::remove_cvref_t<Node>::degree(),
true)>();
28 concept HasPositiveDegree = ( std::remove_cvref_t<Node>::degree() > 0);
36 { std::as_const(node).degree() } -> std::convertible_to<std::size_t>;
43 std::remove_cvref_t<Node>::degree();
45 requires Impl::HasConstExprDegree<Node> and Impl::HasPositiveDegree<Node>;
47 node.child(
index_constant<(std::remove_cvref_t<Node>::degree()-1)>());
Traits for type conversions and type information.
std::integral_constant< std::size_t, i > index_constant
An index constant with value i.
Definition indices.hh:29
Definition nodeconcepts.hh:17
Check if T is an integral constant or any type derived from std::integral_constant.
Definition typetraits.hh:411
Model of a node of a typetree.
Definition nodeconcepts.hh:34
Model of an inner node of a typetree with compile time known degree and child access via index_consta...
Definition nodeconcepts.hh:41
Model of an inner node of a typetree with uniform nodes accessible via runtime index.
Definition nodeconcepts.hh:52
Model of an inner tree node of a typetree (either static degree or uniform).
Definition nodeconcepts.hh:59
Model of a leaf tree node of a typetree.
Definition nodeconcepts.hh:63