5#include <dune/typetree/treepath.hh>
6#include <amdis/typetree/TreePath.hpp>
11template <
class Tree,
class TreePath,
class NodeTag =
typename Tree::NodeTag>
15template <
class Tree,
class NodeTag>
20template <
class Tree,
class I0,
class... II>
21struct IsValidTreePath<Tree, Dune::TypeTree::HybridTreePath<I0,II...>, Dune::TypeTree::LeafNodeTag>
25template <
class Tree,
class I0,
class... II>
26struct IsValidTreePath<Tree, Dune::TypeTree::HybridTreePath<I0,II...>, Dune::TypeTree::PowerNodeTag>
27 : IsValidTreePath<typename Tree::ChildType, Dune::TypeTree::HybridTreePath<II...>> {};
30template <
class Tree,
class I0,
class... II>
31struct IsValidTreePath<Tree, Dune::TypeTree::HybridTreePath<I0,II...>, Dune::TypeTree::CompositeNodeTag>
35template <
class Tree,
class Int, Int i,
class... II>
36struct IsValidTreePath<Tree, Dune::TypeTree::HybridTreePath<std::integral_constant<Int,i>,II...>, Dune::TypeTree::CompositeNodeTag>
37 : std::conditional_t<(i >= 0 && i < Int(Tree::degree())),
38 IsValidTreePath<typename Tree::template Child<(i >= 0 && i < Int(Tree::degree())) ? i : 0>::Type, Dune::TypeTree::HybridTreePath<II...>>,
47template <
class Tree,
class Path>
48static constexpr bool ValidTreePath = Traits::IsValidTreePath<Tree,TYPEOF(makeTreePath(std::declval<Path>()))>::value;
Definition: Concepts.hpp:12