Base class for composite nodes combining children of different types within a TypeTree.
More...
#include <dune/typetree/compositenode.hh>
|
struct | Child |
| Access to the type and storage type of the i-th child. More...
|
|
|
typedef tuple< shared_ptr< C0 >
, shared_ptr< C1 >, shared_ptr
< C2 >, shared_ptr< C3 >
, shared_ptr< C4 >, shared_ptr
< C5 >, shared_ptr< C6 >
, shared_ptr< C7 >, shared_ptr
< C8 >, shared_ptr< C9 > > | NodeStorage |
| The type used for storing the children. More...
|
|
typedef tuple< C0, C1, C2, C3,
C4, C5, C6, C7, C8, C9 > | ChildTypes |
| The types of all children. More...
|
|
typedef CompositeNodeTag | NodeTag |
| The type tag that describes a CompositeNode. More...
|
|
|
| CompositeNode () |
| Default constructor. More...
|
|
| CompositeNode (C0 &c0, typename OptionalChild< C1 >::type c1=OptionalChild< C1 >::default_value(), typename OptionalChild< C2 >::type c2=OptionalChild< C2 >::default_value(), typename OptionalChild< C3 >::type c3=OptionalChild< C3 >::default_value(), typename OptionalChild< C4 >::type c4=OptionalChild< C4 >::default_value(), typename OptionalChild< C5 >::type c5=OptionalChild< C5 >::default_value(), typename OptionalChild< C6 >::type c6=OptionalChild< C6 >::default_value(), typename OptionalChild< C7 >::type c7=OptionalChild< C7 >::default_value(), typename OptionalChild< C8 >::type c8=OptionalChild< C8 >::default_value(), typename OptionalChild< C9 >::type c9=OptionalChild< C9 >::default_value()) |
| Initializes the CompositeNode with the passed-in child objects. More...
|
|
| CompositeNode (shared_ptr< C0 > c0, shared_ptr< C1 > c1, shared_ptr< C2 > c2, shared_ptr< C3 > c3, shared_ptr< C4 > c4, shared_ptr< C5 > c5, shared_ptr< C6 > c6, shared_ptr< C7 > c7, shared_ptr< C8 > c8, shared_ptr< C9 > c9) |
| Initializes the CompositeNode with copies of the passed-in storage objects. More...
|
|
| CompositeNode (const NodeStorage &children) |
| Initializes the CompositeNode from the passed-in NodeStorage object. More...
|
|
template<typename C0, typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
class Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >
Base class for composite nodes combining children of different types within a TypeTree.
A CompositeNode can tie together up to 10 children of different types.
- Note
- If you need more than 10 children in a composite node and can use a compiler that supports the upcoming C++0x standard, consider using a VariadicCompositeNode instead.
- Template Parameters
-
C0,...,C9 | The types of the children. |
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
typedef tuple<C0,C1,C2,C3,C4,C5,C6,C7,C8,C9> Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::ChildTypes |
The types of all children.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
typedef tuple<shared_ptr<C0>, shared_ptr<C1>, shared_ptr<C2>, shared_ptr<C3>, shared_ptr<C4>, shared_ptr<C5>, shared_ptr<C6>, shared_ptr<C7>, shared_ptr<C8>, shared_ptr<C9> > Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::NodeStorage |
The type used for storing the children.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Default constructor.
The default constructor is protected, as CompositeNode is a utility class that needs to be filled with meaning by subclassing it and adding useful functionality to the subclass.
- Warning
- When using the default constructor, make sure to set ALL children by means of the setChild() methods!
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::CompositeNode |
( |
C0 & |
c0, |
|
|
typename OptionalChild< C1 >::type |
c1 = OptionalChild<C1>::default_value() , |
|
|
typename OptionalChild< C2 >::type |
c2 = OptionalChild<C2>::default_value() , |
|
|
typename OptionalChild< C3 >::type |
c3 = OptionalChild<C3>::default_value() , |
|
|
typename OptionalChild< C4 >::type |
c4 = OptionalChild<C4>::default_value() , |
|
|
typename OptionalChild< C5 >::type |
c5 = OptionalChild<C5>::default_value() , |
|
|
typename OptionalChild< C6 >::type |
c6 = OptionalChild<C6>::default_value() , |
|
|
typename OptionalChild< C7 >::type |
c7 = OptionalChild<C7>::default_value() , |
|
|
typename OptionalChild< C8 >::type |
c8 = OptionalChild<C8>::default_value() , |
|
|
typename OptionalChild< C9 >::type |
c9 = OptionalChild<C9>::default_value() |
|
) |
| |
|
inlineprotected |
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::CompositeNode |
( |
shared_ptr< C0 > |
c0, |
|
|
shared_ptr< C1 > |
c1, |
|
|
shared_ptr< C2 > |
c2, |
|
|
shared_ptr< C3 > |
c3, |
|
|
shared_ptr< C4 > |
c4, |
|
|
shared_ptr< C5 > |
c5, |
|
|
shared_ptr< C6 > |
c6, |
|
|
shared_ptr< C7 > |
c7, |
|
|
shared_ptr< C8 > |
c8, |
|
|
shared_ptr< C9 > |
c9 |
|
) |
| |
|
inlineprotected |
Initializes the CompositeNode with copies of the passed-in storage objects.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Initializes the CompositeNode from the passed-in NodeStorage object.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
Returns the storage of the i-th child (const version).
This method is only important if the child is stored as some kind of pointer, as this allows the pointee type to become const.
- Returns
- a copy of the object storing the i-th child.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
Returns the storage of the i-th child.
- Returns
- a copy of the object storing the i-th child.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
template<std::size_t k>
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
The number of children of the CompositeNode.
Referenced by Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::child(), and Dune::TypeTree::CompositeNode< C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 >::setChild().
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Mark this class as a composite in the TypeTree.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Mark this class as non leaf in the TypeTree.
template<typename C0 , typename C1 = EmptyNode, typename C2 = EmptyNode, typename C3 = EmptyNode, typename C4 = EmptyNode, typename C5 = EmptyNode, typename C6 = EmptyNode, typename C7 = EmptyNode, typename C8 = EmptyNode, typename C9 = EmptyNode>
Mark this class as a non power in the typeTree.
The documentation for this class was generated from the following file: