dune-typetree
2.3.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
dune
typetree
compositenodemacros.hh
Go to the documentation of this file.
1
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2
// vi: set et ts=4 sw=2 sts=2:
3
4
#ifndef DUNE_TYPETREE_COMPOSITENODE_MACROS_HH
5
#define DUNE_TYPETREE_COMPOSITENODE_MACROS_HH
6
7
#if HAVE_VARIADIC_TEMPLATES
8
9
#include <
dune/typetree/variadiccompositenode.hh
>
10
11
#define DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN typename... Children
12
13
#define DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN_FOR_SPECIALIZATION typename... Children
14
15
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES Children...
16
17
#define DUNE_TYPETREE_COMPOSITENODE_BASETYPE Dune::TypeTree::VariadicCompositeNode<Children...>
18
19
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES children...
20
21
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES_THROUGH_FUNCTION(f) f(children)...
22
23
#define DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE Children&... children
24
25
#define DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE Dune::shared_ptr<Children>... children
26
27
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES_MEMBER(member) children.member...
28
29
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_NESTED_TYPE(nested_type) typename Children::nested_type...
30
31
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_NESTED_STATIC_MEMBER(member) Children::member...
32
33
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_THROUGH_META_FUNCTION(meta_function) typename meta_function::template apply<Children>::type...
34
35
template
<
typename
... T>
struct
extract_first_child;
36
37
template
<
typename
T0,
typename
... T>
38
struct
extract_first_child<T0,T...>
39
{
40
typedef
T0 type;
41
};
42
43
#define DUNE_TYPETREE_COMPOSITENODE_FIRST_CHILD extract_first_child<Children...>::type
44
45
#else
46
47
#include <
dune/typetree/compositenode.hh
>
48
49
#define DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN \
50
typename C0,\
51
typename C1 = Dune::TypeTree::EmptyNode, \
52
typename C2 = Dune::TypeTree::EmptyNode, \
53
typename C3 = Dune::TypeTree::EmptyNode, \
54
typename C4 = Dune::TypeTree::EmptyNode, \
55
typename C5 = Dune::TypeTree::EmptyNode, \
56
typename C6 = Dune::TypeTree::EmptyNode, \
57
typename C7 = Dune::TypeTree::EmptyNode, \
58
typename C8 = Dune::TypeTree::EmptyNode, \
59
typename C9 = Dune::TypeTree::EmptyNode
60
61
#define DUNE_TYPETREE_COMPOSITENODE_TEMPLATE_CHILDREN_FOR_SPECIALIZATION \
62
typename C0,\
63
typename C1,\
64
typename C2,\
65
typename C3,\
66
typename C4,\
67
typename C5,\
68
typename C6,\
69
typename C7,\
70
typename C8,\
71
typename C9
72
73
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES C0,C1,C2,C3,C4,C5,C6,C7,C8,C9
74
75
#define DUNE_TYPETREE_COMPOSITENODE_BASETYPE Dune::TypeTree::CompositeNode<C0,C1,C2,C3,C4,C5,C6,C7,C8,C9>
76
77
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES c0,c1,c2,c3,c4,c5,c6,c7,c8,c9
78
79
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES_THROUGH_FUNCTION(f) f(c0),f(c1),f(c2),f(c3),f(c4),f(c5),f(c6),f(c7),f(c8),f(c9)
80
81
#define DUNE_TYPETREE_COMPOSITENODE_CONSTRUCTOR_SIGNATURE \
82
C0& c0, \
83
typename Dune::TypeTree::OptionalChild<C1>::type c1 = Dune::TypeTree::OptionalChild<C1>::default_value(), \
84
typename Dune::TypeTree::OptionalChild<C2>::type c2 = Dune::TypeTree::OptionalChild<C2>::default_value(), \
85
typename Dune::TypeTree::OptionalChild<C3>::type c3 = Dune::TypeTree::OptionalChild<C3>::default_value(), \
86
typename Dune::TypeTree::OptionalChild<C4>::type c4 = Dune::TypeTree::OptionalChild<C4>::default_value(), \
87
typename Dune::TypeTree::OptionalChild<C5>::type c5 = Dune::TypeTree::OptionalChild<C5>::default_value(), \
88
typename Dune::TypeTree::OptionalChild<C6>::type c6 = Dune::TypeTree::OptionalChild<C6>::default_value(), \
89
typename Dune::TypeTree::OptionalChild<C7>::type c7 = Dune::TypeTree::OptionalChild<C7>::default_value(), \
90
typename Dune::TypeTree::OptionalChild<C8>::type c8 = Dune::TypeTree::OptionalChild<C8>::default_value(), \
91
typename Dune::TypeTree::OptionalChild<C9>::type c9 = Dune::TypeTree::OptionalChild<C9>::default_value()
92
93
#define DUNE_TYPETREE_COMPOSITENODE_STORAGE_CONSTRUCTOR_SIGNATURE \
94
Dune::shared_ptr<C0> c0, \
95
Dune::shared_ptr<C1> c1, \
96
Dune::shared_ptr<C2> c2, \
97
Dune::shared_ptr<C3> c3, \
98
Dune::shared_ptr<C4> c4, \
99
Dune::shared_ptr<C5> c5, \
100
Dune::shared_ptr<C6> c6, \
101
Dune::shared_ptr<C7> c7, \
102
Dune::shared_ptr<C8> c8, \
103
Dune::shared_ptr<C9> c9
104
105
#define DUNE_TYPETREE_COMPOSITENODE_CHILDVARIABLES_MEMBER(member) \
106
c0.member, \
107
c1.member, \
108
c2.member, \
109
c3.member, \
110
c4.member, \
111
c5.member, \
112
c6.member, \
113
c7.member, \
114
c8.member, \
115
c9.member
116
117
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_NESTED_TYPE(nested_type) \
118
typename C0::nested_type, \
119
typename C1::nested_type, \
120
typename C2::nested_type, \
121
typename C3::nested_type, \
122
typename C4::nested_type, \
123
typename C5::nested_type, \
124
typename C6::nested_type, \
125
typename C7::nested_type, \
126
typename C8::nested_type, \
127
typename C9::nested_type
128
129
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_NESTED_STATIC_MEMBER(member) \
130
C0::member, \
131
C1::member, \
132
C2::member, \
133
C3::member, \
134
C4::member, \
135
C5::member, \
136
C6::member, \
137
C7::member, \
138
C8::member, \
139
C9::member
140
141
#define DUNE_TYPETREE_COMPOSITENODE_CHILDTYPES_THROUGH_META_FUNCTION(meta_function) \
142
typename meta_function::template apply<C0>::type, \
143
typename meta_function::template apply<C1>::type, \
144
typename meta_function::template apply<C2>::type, \
145
typename meta_function::template apply<C3>::type, \
146
typename meta_function::template apply<C4>::type, \
147
typename meta_function::template apply<C5>::type, \
148
typename meta_function::template apply<C6>::type, \
149
typename meta_function::template apply<C7>::type, \
150
typename meta_function::template apply<C8>::type, \
151
typename meta_function::template apply<C9>::type
152
153
#define DUNE_TYPETREE_COMPOSITENODE_FIRST_CHILD C0
154
155
#endif
156
157
#endif // DUNE_TYPETREE_COMPOSITENODE_MACROS_HH
compositenode.hh
variadiccompositenode.hh
Generated on Thu Jun 26 2014 17:19:59 for dune-typetree by
1.8.7