Chris@16
|
1 /*==============================================================================
|
Chris@16
|
2 Copyright (c) 2005-2010 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2010 Thomas Heller
|
Chris@16
|
4
|
Chris@16
|
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 ==============================================================================*/
|
Chris@16
|
8
|
Chris@16
|
9
|
Chris@16
|
10
|
Chris@16
|
11
|
Chris@16
|
12
|
Chris@16
|
13
|
Chris@16
|
14
|
Chris@16
|
15 template <typename F, typename A0>
|
Chris@16
|
16 struct function<F, A0>
|
Chris@16
|
17 : proto::result_of::make_expr<
|
Chris@16
|
18 proto::tag::function
|
Chris@16
|
19 , phoenix_domain
|
Chris@16
|
20 , F
|
Chris@16
|
21 , A0
|
Chris@16
|
22 >
|
Chris@16
|
23 {};
|
Chris@16
|
24
|
Chris@16
|
25
|
Chris@16
|
26
|
Chris@16
|
27
|
Chris@16
|
28
|
Chris@16
|
29
|
Chris@16
|
30
|
Chris@16
|
31 template <typename F, typename A0 , typename A1>
|
Chris@16
|
32 struct function<F, A0 , A1>
|
Chris@16
|
33 : proto::result_of::make_expr<
|
Chris@16
|
34 proto::tag::function
|
Chris@16
|
35 , phoenix_domain
|
Chris@16
|
36 , F
|
Chris@16
|
37 , A0 , A1
|
Chris@16
|
38 >
|
Chris@16
|
39 {};
|
Chris@16
|
40
|
Chris@16
|
41
|
Chris@16
|
42
|
Chris@16
|
43
|
Chris@16
|
44
|
Chris@16
|
45
|
Chris@16
|
46
|
Chris@16
|
47 template <typename F, typename A0 , typename A1 , typename A2>
|
Chris@16
|
48 struct function<F, A0 , A1 , A2>
|
Chris@16
|
49 : proto::result_of::make_expr<
|
Chris@16
|
50 proto::tag::function
|
Chris@16
|
51 , phoenix_domain
|
Chris@16
|
52 , F
|
Chris@16
|
53 , A0 , A1 , A2
|
Chris@16
|
54 >
|
Chris@16
|
55 {};
|
Chris@16
|
56
|
Chris@16
|
57
|
Chris@16
|
58
|
Chris@16
|
59
|
Chris@16
|
60
|
Chris@16
|
61
|
Chris@16
|
62
|
Chris@16
|
63 template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
|
Chris@16
|
64 struct function<F, A0 , A1 , A2 , A3>
|
Chris@16
|
65 : proto::result_of::make_expr<
|
Chris@16
|
66 proto::tag::function
|
Chris@16
|
67 , phoenix_domain
|
Chris@16
|
68 , F
|
Chris@16
|
69 , A0 , A1 , A2 , A3
|
Chris@16
|
70 >
|
Chris@16
|
71 {};
|
Chris@16
|
72
|
Chris@16
|
73
|
Chris@16
|
74
|
Chris@16
|
75
|
Chris@16
|
76
|
Chris@16
|
77
|
Chris@16
|
78
|
Chris@16
|
79 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
|
Chris@16
|
80 struct function<F, A0 , A1 , A2 , A3 , A4>
|
Chris@16
|
81 : proto::result_of::make_expr<
|
Chris@16
|
82 proto::tag::function
|
Chris@16
|
83 , phoenix_domain
|
Chris@16
|
84 , F
|
Chris@16
|
85 , A0 , A1 , A2 , A3 , A4
|
Chris@16
|
86 >
|
Chris@16
|
87 {};
|
Chris@16
|
88
|
Chris@16
|
89
|
Chris@16
|
90
|
Chris@16
|
91
|
Chris@16
|
92
|
Chris@16
|
93
|
Chris@16
|
94
|
Chris@16
|
95 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
|
Chris@16
|
96 struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
|
Chris@16
|
97 : proto::result_of::make_expr<
|
Chris@16
|
98 proto::tag::function
|
Chris@16
|
99 , phoenix_domain
|
Chris@16
|
100 , F
|
Chris@16
|
101 , A0 , A1 , A2 , A3 , A4 , A5
|
Chris@16
|
102 >
|
Chris@16
|
103 {};
|
Chris@16
|
104
|
Chris@16
|
105
|
Chris@16
|
106
|
Chris@16
|
107
|
Chris@16
|
108
|
Chris@16
|
109
|
Chris@16
|
110
|
Chris@16
|
111 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
|
Chris@16
|
112 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
|
Chris@16
|
113 : proto::result_of::make_expr<
|
Chris@16
|
114 proto::tag::function
|
Chris@16
|
115 , phoenix_domain
|
Chris@16
|
116 , F
|
Chris@16
|
117 , A0 , A1 , A2 , A3 , A4 , A5 , A6
|
Chris@16
|
118 >
|
Chris@16
|
119 {};
|
Chris@16
|
120
|
Chris@16
|
121
|
Chris@16
|
122
|
Chris@16
|
123
|
Chris@16
|
124
|
Chris@16
|
125
|
Chris@16
|
126
|
Chris@16
|
127 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
|
Chris@16
|
128 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
|
Chris@16
|
129 : proto::result_of::make_expr<
|
Chris@16
|
130 proto::tag::function
|
Chris@16
|
131 , phoenix_domain
|
Chris@16
|
132 , F
|
Chris@16
|
133 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
|
Chris@16
|
134 >
|
Chris@16
|
135 {};
|
Chris@16
|
136
|
Chris@16
|
137
|
Chris@16
|
138
|
Chris@16
|
139
|
Chris@16
|
140
|
Chris@16
|
141
|
Chris@16
|
142
|
Chris@16
|
143 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
|
Chris@16
|
144 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
|
Chris@16
|
145 : proto::result_of::make_expr<
|
Chris@16
|
146 proto::tag::function
|
Chris@16
|
147 , phoenix_domain
|
Chris@16
|
148 , F
|
Chris@16
|
149 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
|
Chris@16
|
150 >
|
Chris@16
|
151 {};
|
Chris@16
|
152
|
Chris@16
|
153
|
Chris@16
|
154
|
Chris@16
|
155
|
Chris@16
|
156
|
Chris@16
|
157
|
Chris@16
|
158
|
Chris@16
|
159 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
|
Chris@16
|
160 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
|
Chris@16
|
161 : proto::result_of::make_expr<
|
Chris@16
|
162 proto::tag::function
|
Chris@16
|
163 , phoenix_domain
|
Chris@16
|
164 , F
|
Chris@16
|
165 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
|
Chris@16
|
166 >
|
Chris@16
|
167 {};
|
Chris@16
|
168
|
Chris@16
|
169
|
Chris@16
|
170
|
Chris@16
|
171
|
Chris@16
|
172
|
Chris@16
|
173
|
Chris@16
|
174
|
Chris@16
|
175 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
|
Chris@16
|
176 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
|
Chris@16
|
177 : proto::result_of::make_expr<
|
Chris@16
|
178 proto::tag::function
|
Chris@16
|
179 , phoenix_domain
|
Chris@16
|
180 , F
|
Chris@16
|
181 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
|
Chris@16
|
182 >
|
Chris@16
|
183 {};
|
Chris@16
|
184
|
Chris@16
|
185
|
Chris@16
|
186
|
Chris@16
|
187
|
Chris@16
|
188
|
Chris@16
|
189
|
Chris@16
|
190
|
Chris@16
|
191 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
|
Chris@16
|
192 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
|
Chris@16
|
193 : proto::result_of::make_expr<
|
Chris@16
|
194 proto::tag::function
|
Chris@16
|
195 , phoenix_domain
|
Chris@16
|
196 , F
|
Chris@16
|
197 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
|
Chris@16
|
198 >
|
Chris@16
|
199 {};
|
Chris@16
|
200
|
Chris@16
|
201
|
Chris@16
|
202
|
Chris@16
|
203
|
Chris@16
|
204
|
Chris@16
|
205
|
Chris@16
|
206
|
Chris@16
|
207 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
|
Chris@16
|
208 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
|
Chris@16
|
209 : proto::result_of::make_expr<
|
Chris@16
|
210 proto::tag::function
|
Chris@16
|
211 , phoenix_domain
|
Chris@16
|
212 , F
|
Chris@16
|
213 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
|
Chris@16
|
214 >
|
Chris@16
|
215 {};
|
Chris@16
|
216
|
Chris@16
|
217
|
Chris@16
|
218
|
Chris@16
|
219
|
Chris@16
|
220
|
Chris@16
|
221
|
Chris@16
|
222
|
Chris@16
|
223 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
|
Chris@16
|
224 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
|
Chris@16
|
225 : proto::result_of::make_expr<
|
Chris@16
|
226 proto::tag::function
|
Chris@16
|
227 , phoenix_domain
|
Chris@16
|
228 , F
|
Chris@16
|
229 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
|
Chris@16
|
230 >
|
Chris@16
|
231 {};
|
Chris@16
|
232
|
Chris@16
|
233
|
Chris@16
|
234
|
Chris@16
|
235
|
Chris@16
|
236
|
Chris@16
|
237
|
Chris@16
|
238
|
Chris@16
|
239 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
|
Chris@16
|
240 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
|
Chris@16
|
241 : proto::result_of::make_expr<
|
Chris@16
|
242 proto::tag::function
|
Chris@16
|
243 , phoenix_domain
|
Chris@16
|
244 , F
|
Chris@16
|
245 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
|
Chris@16
|
246 >
|
Chris@16
|
247 {};
|
Chris@16
|
248
|
Chris@16
|
249
|
Chris@16
|
250
|
Chris@16
|
251
|
Chris@16
|
252
|
Chris@16
|
253
|
Chris@16
|
254
|
Chris@16
|
255 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
|
Chris@16
|
256 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
|
Chris@16
|
257 : proto::result_of::make_expr<
|
Chris@16
|
258 proto::tag::function
|
Chris@16
|
259 , phoenix_domain
|
Chris@16
|
260 , F
|
Chris@16
|
261 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
|
Chris@16
|
262 >
|
Chris@16
|
263 {};
|
Chris@16
|
264
|
Chris@16
|
265
|
Chris@16
|
266
|
Chris@16
|
267
|
Chris@16
|
268
|
Chris@16
|
269
|
Chris@16
|
270
|
Chris@16
|
271 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
|
Chris@16
|
272 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
|
Chris@16
|
273 : proto::result_of::make_expr<
|
Chris@16
|
274 proto::tag::function
|
Chris@16
|
275 , phoenix_domain
|
Chris@16
|
276 , F
|
Chris@16
|
277 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
|
Chris@16
|
278 >
|
Chris@16
|
279 {};
|
Chris@16
|
280
|
Chris@16
|
281
|
Chris@16
|
282
|
Chris@16
|
283
|
Chris@16
|
284
|
Chris@16
|
285
|
Chris@16
|
286
|
Chris@16
|
287 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
|
Chris@16
|
288 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
|
Chris@16
|
289 : proto::result_of::make_expr<
|
Chris@16
|
290 proto::tag::function
|
Chris@16
|
291 , phoenix_domain
|
Chris@16
|
292 , F
|
Chris@16
|
293 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
|
Chris@16
|
294 >
|
Chris@16
|
295 {};
|
Chris@16
|
296
|
Chris@16
|
297
|
Chris@16
|
298
|
Chris@16
|
299
|
Chris@16
|
300
|
Chris@16
|
301
|
Chris@16
|
302
|
Chris@16
|
303 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
|
Chris@16
|
304 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
|
Chris@16
|
305 : proto::result_of::make_expr<
|
Chris@16
|
306 proto::tag::function
|
Chris@16
|
307 , phoenix_domain
|
Chris@16
|
308 , F
|
Chris@16
|
309 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
|
Chris@16
|
310 >
|
Chris@16
|
311 {};
|
Chris@16
|
312
|
Chris@16
|
313
|
Chris@16
|
314
|
Chris@16
|
315
|
Chris@16
|
316
|
Chris@16
|
317
|
Chris@16
|
318
|
Chris@16
|
319 template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
|
Chris@16
|
320 struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
|
Chris@16
|
321 : proto::result_of::make_expr<
|
Chris@16
|
322 proto::tag::function
|
Chris@16
|
323 , phoenix_domain
|
Chris@16
|
324 , F
|
Chris@16
|
325 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
|
Chris@16
|
326 >
|
Chris@16
|
327 {};
|