DUNE PDELab (git)

leafnode.hh
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 // SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
4 // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-GPL-2.0-only-with-PDELab-exception
5 
6 #ifndef DUNE_TYPETREE_LEAFNODE_HH
7 #define DUNE_TYPETREE_LEAFNODE_HH
8 
9 #include <dune/typetree/nodetags.hh>
10 #include <cstddef>
11 #include <type_traits>
12 
13 namespace Dune {
14  namespace TypeTree {
15 
27  class LeafNode
28  {
29 
30  public:
31 
33  static const bool isLeaf = true;
34 
36  static const bool isPower = false;
37 
39  static const bool isComposite = false;
40 
43 
44  static constexpr auto degree()
45  {
46  return std::integral_constant<std::size_t,0>{};
47  }
48 
49  protected:
50 
52 
57  LeafNode() {}
58  };
59 
61 
62  } // namespace TypeTree
63 } //namespace Dune
64 
65 #endif // DUNE_TYPETREE_POWERNODE_HH
Base class for leaf nodes in a dune-typetree.
Definition: leafnode.hh:28
LeafNodeTag NodeTag
The type tag that describes a LeafNode.
Definition: leafnode.hh:42
static const bool isLeaf
Mark this class as a leaf in a dune-typetree.
Definition: leafnode.hh:33
static const bool isPower
Mark this class as a non power in the dune-typetree.
Definition: leafnode.hh:36
LeafNode()
Default constructor.
Definition: leafnode.hh:57
static const bool isComposite
Mark this class as a non composite in the dune-typetree.
Definition: leafnode.hh:39
Dune namespace.
Definition: alignedallocator.hh:13
Tag designating a leaf node.
Definition: nodetags.hh:18
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 16, 22:29, 2024)