Chris@16
|
1 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 /// \file generate_by_value.hpp
|
Chris@16
|
3 /// Contains definition of by_value_generator_\<\> class template.
|
Chris@16
|
4 //
|
Chris@16
|
5 // Copyright 2008 Eric Niebler. Distributed under the Boost
|
Chris@16
|
6 // Software License, Version 1.0. (See accompanying file
|
Chris@16
|
7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 template<typename Tag , typename Arg0 >
|
Chris@16
|
9 struct by_value_generator_<
|
Chris@16
|
10 proto::expr<Tag, list1<Arg0>, 1>
|
Chris@16
|
11 >
|
Chris@16
|
12 {
|
Chris@16
|
13 typedef
|
Chris@16
|
14 list1<Arg0>
|
Chris@16
|
15 src_args;
|
Chris@16
|
16 typedef
|
Chris@16
|
17 list1<
|
Chris@16
|
18 typename uncvref<Arg0 >::type
|
Chris@16
|
19 >
|
Chris@16
|
20 dst_args;
|
Chris@16
|
21 typedef proto::expr<Tag, src_args, 1> src_type;
|
Chris@16
|
22 typedef proto::expr<Tag, dst_args, 1> type;
|
Chris@16
|
23 BOOST_FORCEINLINE
|
Chris@16
|
24 static type const call(src_type const &e)
|
Chris@16
|
25 {
|
Chris@16
|
26 type that = {
|
Chris@16
|
27 e.child0
|
Chris@16
|
28 };
|
Chris@16
|
29 return that;
|
Chris@16
|
30 }
|
Chris@16
|
31 };
|
Chris@16
|
32 template<typename Tag , typename Arg0 >
|
Chris@16
|
33 struct by_value_generator_<
|
Chris@16
|
34 proto::basic_expr<Tag, list1<Arg0>, 1>
|
Chris@16
|
35 >
|
Chris@16
|
36 {
|
Chris@16
|
37 typedef
|
Chris@16
|
38 list1<Arg0>
|
Chris@16
|
39 src_args;
|
Chris@16
|
40 typedef
|
Chris@16
|
41 list1<
|
Chris@16
|
42 typename uncvref<Arg0 >::type
|
Chris@16
|
43 >
|
Chris@16
|
44 dst_args;
|
Chris@16
|
45 typedef proto::basic_expr<Tag, src_args, 1> src_type;
|
Chris@16
|
46 typedef proto::basic_expr<Tag, dst_args, 1> type;
|
Chris@16
|
47 BOOST_FORCEINLINE
|
Chris@16
|
48 static type const call(src_type const &e)
|
Chris@16
|
49 {
|
Chris@16
|
50 type that = {
|
Chris@16
|
51 e.child0
|
Chris@16
|
52 };
|
Chris@16
|
53 return that;
|
Chris@16
|
54 }
|
Chris@16
|
55 };
|
Chris@16
|
56 template<typename Tag , typename Arg0 , typename Arg1 >
|
Chris@16
|
57 struct by_value_generator_<
|
Chris@16
|
58 proto::expr<Tag, list2<Arg0 , Arg1>, 2>
|
Chris@16
|
59 >
|
Chris@16
|
60 {
|
Chris@16
|
61 typedef
|
Chris@16
|
62 list2<Arg0 , Arg1>
|
Chris@16
|
63 src_args;
|
Chris@16
|
64 typedef
|
Chris@16
|
65 list2<
|
Chris@16
|
66 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type
|
Chris@16
|
67 >
|
Chris@16
|
68 dst_args;
|
Chris@16
|
69 typedef proto::expr<Tag, src_args, 2> src_type;
|
Chris@16
|
70 typedef proto::expr<Tag, dst_args, 2> type;
|
Chris@16
|
71 BOOST_FORCEINLINE
|
Chris@16
|
72 static type const call(src_type const &e)
|
Chris@16
|
73 {
|
Chris@16
|
74 type that = {
|
Chris@16
|
75 e.child0 , e.child1
|
Chris@16
|
76 };
|
Chris@16
|
77 return that;
|
Chris@16
|
78 }
|
Chris@16
|
79 };
|
Chris@16
|
80 template<typename Tag , typename Arg0 , typename Arg1 >
|
Chris@16
|
81 struct by_value_generator_<
|
Chris@16
|
82 proto::basic_expr<Tag, list2<Arg0 , Arg1>, 2>
|
Chris@16
|
83 >
|
Chris@16
|
84 {
|
Chris@16
|
85 typedef
|
Chris@16
|
86 list2<Arg0 , Arg1>
|
Chris@16
|
87 src_args;
|
Chris@16
|
88 typedef
|
Chris@16
|
89 list2<
|
Chris@16
|
90 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type
|
Chris@16
|
91 >
|
Chris@16
|
92 dst_args;
|
Chris@16
|
93 typedef proto::basic_expr<Tag, src_args, 2> src_type;
|
Chris@16
|
94 typedef proto::basic_expr<Tag, dst_args, 2> type;
|
Chris@16
|
95 BOOST_FORCEINLINE
|
Chris@16
|
96 static type const call(src_type const &e)
|
Chris@16
|
97 {
|
Chris@16
|
98 type that = {
|
Chris@16
|
99 e.child0 , e.child1
|
Chris@16
|
100 };
|
Chris@16
|
101 return that;
|
Chris@16
|
102 }
|
Chris@16
|
103 };
|
Chris@16
|
104 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 >
|
Chris@16
|
105 struct by_value_generator_<
|
Chris@16
|
106 proto::expr<Tag, list3<Arg0 , Arg1 , Arg2>, 3>
|
Chris@16
|
107 >
|
Chris@16
|
108 {
|
Chris@16
|
109 typedef
|
Chris@16
|
110 list3<Arg0 , Arg1 , Arg2>
|
Chris@16
|
111 src_args;
|
Chris@16
|
112 typedef
|
Chris@16
|
113 list3<
|
Chris@16
|
114 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type
|
Chris@16
|
115 >
|
Chris@16
|
116 dst_args;
|
Chris@16
|
117 typedef proto::expr<Tag, src_args, 3> src_type;
|
Chris@16
|
118 typedef proto::expr<Tag, dst_args, 3> type;
|
Chris@16
|
119 BOOST_FORCEINLINE
|
Chris@16
|
120 static type const call(src_type const &e)
|
Chris@16
|
121 {
|
Chris@16
|
122 type that = {
|
Chris@16
|
123 e.child0 , e.child1 , e.child2
|
Chris@16
|
124 };
|
Chris@16
|
125 return that;
|
Chris@16
|
126 }
|
Chris@16
|
127 };
|
Chris@16
|
128 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 >
|
Chris@16
|
129 struct by_value_generator_<
|
Chris@16
|
130 proto::basic_expr<Tag, list3<Arg0 , Arg1 , Arg2>, 3>
|
Chris@16
|
131 >
|
Chris@16
|
132 {
|
Chris@16
|
133 typedef
|
Chris@16
|
134 list3<Arg0 , Arg1 , Arg2>
|
Chris@16
|
135 src_args;
|
Chris@16
|
136 typedef
|
Chris@16
|
137 list3<
|
Chris@16
|
138 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type
|
Chris@16
|
139 >
|
Chris@16
|
140 dst_args;
|
Chris@16
|
141 typedef proto::basic_expr<Tag, src_args, 3> src_type;
|
Chris@16
|
142 typedef proto::basic_expr<Tag, dst_args, 3> type;
|
Chris@16
|
143 BOOST_FORCEINLINE
|
Chris@16
|
144 static type const call(src_type const &e)
|
Chris@16
|
145 {
|
Chris@16
|
146 type that = {
|
Chris@16
|
147 e.child0 , e.child1 , e.child2
|
Chris@16
|
148 };
|
Chris@16
|
149 return that;
|
Chris@16
|
150 }
|
Chris@16
|
151 };
|
Chris@16
|
152 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 >
|
Chris@16
|
153 struct by_value_generator_<
|
Chris@16
|
154 proto::expr<Tag, list4<Arg0 , Arg1 , Arg2 , Arg3>, 4>
|
Chris@16
|
155 >
|
Chris@16
|
156 {
|
Chris@16
|
157 typedef
|
Chris@16
|
158 list4<Arg0 , Arg1 , Arg2 , Arg3>
|
Chris@16
|
159 src_args;
|
Chris@16
|
160 typedef
|
Chris@16
|
161 list4<
|
Chris@16
|
162 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type
|
Chris@16
|
163 >
|
Chris@16
|
164 dst_args;
|
Chris@16
|
165 typedef proto::expr<Tag, src_args, 4> src_type;
|
Chris@16
|
166 typedef proto::expr<Tag, dst_args, 4> type;
|
Chris@16
|
167 BOOST_FORCEINLINE
|
Chris@16
|
168 static type const call(src_type const &e)
|
Chris@16
|
169 {
|
Chris@16
|
170 type that = {
|
Chris@16
|
171 e.child0 , e.child1 , e.child2 , e.child3
|
Chris@16
|
172 };
|
Chris@16
|
173 return that;
|
Chris@16
|
174 }
|
Chris@16
|
175 };
|
Chris@16
|
176 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 >
|
Chris@16
|
177 struct by_value_generator_<
|
Chris@16
|
178 proto::basic_expr<Tag, list4<Arg0 , Arg1 , Arg2 , Arg3>, 4>
|
Chris@16
|
179 >
|
Chris@16
|
180 {
|
Chris@16
|
181 typedef
|
Chris@16
|
182 list4<Arg0 , Arg1 , Arg2 , Arg3>
|
Chris@16
|
183 src_args;
|
Chris@16
|
184 typedef
|
Chris@16
|
185 list4<
|
Chris@16
|
186 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type
|
Chris@16
|
187 >
|
Chris@16
|
188 dst_args;
|
Chris@16
|
189 typedef proto::basic_expr<Tag, src_args, 4> src_type;
|
Chris@16
|
190 typedef proto::basic_expr<Tag, dst_args, 4> type;
|
Chris@16
|
191 BOOST_FORCEINLINE
|
Chris@16
|
192 static type const call(src_type const &e)
|
Chris@16
|
193 {
|
Chris@16
|
194 type that = {
|
Chris@16
|
195 e.child0 , e.child1 , e.child2 , e.child3
|
Chris@16
|
196 };
|
Chris@16
|
197 return that;
|
Chris@16
|
198 }
|
Chris@16
|
199 };
|
Chris@16
|
200 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
|
Chris@16
|
201 struct by_value_generator_<
|
Chris@16
|
202 proto::expr<Tag, list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4>, 5>
|
Chris@16
|
203 >
|
Chris@16
|
204 {
|
Chris@16
|
205 typedef
|
Chris@16
|
206 list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4>
|
Chris@16
|
207 src_args;
|
Chris@16
|
208 typedef
|
Chris@16
|
209 list5<
|
Chris@16
|
210 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type
|
Chris@16
|
211 >
|
Chris@16
|
212 dst_args;
|
Chris@16
|
213 typedef proto::expr<Tag, src_args, 5> src_type;
|
Chris@16
|
214 typedef proto::expr<Tag, dst_args, 5> type;
|
Chris@16
|
215 BOOST_FORCEINLINE
|
Chris@16
|
216 static type const call(src_type const &e)
|
Chris@16
|
217 {
|
Chris@16
|
218 type that = {
|
Chris@16
|
219 e.child0 , e.child1 , e.child2 , e.child3 , e.child4
|
Chris@16
|
220 };
|
Chris@16
|
221 return that;
|
Chris@16
|
222 }
|
Chris@16
|
223 };
|
Chris@16
|
224 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
|
Chris@16
|
225 struct by_value_generator_<
|
Chris@16
|
226 proto::basic_expr<Tag, list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4>, 5>
|
Chris@16
|
227 >
|
Chris@16
|
228 {
|
Chris@16
|
229 typedef
|
Chris@16
|
230 list5<Arg0 , Arg1 , Arg2 , Arg3 , Arg4>
|
Chris@16
|
231 src_args;
|
Chris@16
|
232 typedef
|
Chris@16
|
233 list5<
|
Chris@16
|
234 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type
|
Chris@16
|
235 >
|
Chris@16
|
236 dst_args;
|
Chris@16
|
237 typedef proto::basic_expr<Tag, src_args, 5> src_type;
|
Chris@16
|
238 typedef proto::basic_expr<Tag, dst_args, 5> type;
|
Chris@16
|
239 BOOST_FORCEINLINE
|
Chris@16
|
240 static type const call(src_type const &e)
|
Chris@16
|
241 {
|
Chris@16
|
242 type that = {
|
Chris@16
|
243 e.child0 , e.child1 , e.child2 , e.child3 , e.child4
|
Chris@16
|
244 };
|
Chris@16
|
245 return that;
|
Chris@16
|
246 }
|
Chris@16
|
247 };
|
Chris@16
|
248 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
|
Chris@16
|
249 struct by_value_generator_<
|
Chris@16
|
250 proto::expr<Tag, list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5>, 6>
|
Chris@16
|
251 >
|
Chris@16
|
252 {
|
Chris@16
|
253 typedef
|
Chris@16
|
254 list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5>
|
Chris@16
|
255 src_args;
|
Chris@16
|
256 typedef
|
Chris@16
|
257 list6<
|
Chris@16
|
258 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type
|
Chris@16
|
259 >
|
Chris@16
|
260 dst_args;
|
Chris@16
|
261 typedef proto::expr<Tag, src_args, 6> src_type;
|
Chris@16
|
262 typedef proto::expr<Tag, dst_args, 6> type;
|
Chris@16
|
263 BOOST_FORCEINLINE
|
Chris@16
|
264 static type const call(src_type const &e)
|
Chris@16
|
265 {
|
Chris@16
|
266 type that = {
|
Chris@16
|
267 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5
|
Chris@16
|
268 };
|
Chris@16
|
269 return that;
|
Chris@16
|
270 }
|
Chris@16
|
271 };
|
Chris@16
|
272 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
|
Chris@16
|
273 struct by_value_generator_<
|
Chris@16
|
274 proto::basic_expr<Tag, list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5>, 6>
|
Chris@16
|
275 >
|
Chris@16
|
276 {
|
Chris@16
|
277 typedef
|
Chris@16
|
278 list6<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5>
|
Chris@16
|
279 src_args;
|
Chris@16
|
280 typedef
|
Chris@16
|
281 list6<
|
Chris@16
|
282 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type
|
Chris@16
|
283 >
|
Chris@16
|
284 dst_args;
|
Chris@16
|
285 typedef proto::basic_expr<Tag, src_args, 6> src_type;
|
Chris@16
|
286 typedef proto::basic_expr<Tag, dst_args, 6> type;
|
Chris@16
|
287 BOOST_FORCEINLINE
|
Chris@16
|
288 static type const call(src_type const &e)
|
Chris@16
|
289 {
|
Chris@16
|
290 type that = {
|
Chris@16
|
291 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5
|
Chris@16
|
292 };
|
Chris@16
|
293 return that;
|
Chris@16
|
294 }
|
Chris@16
|
295 };
|
Chris@16
|
296 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
|
Chris@16
|
297 struct by_value_generator_<
|
Chris@16
|
298 proto::expr<Tag, list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6>, 7>
|
Chris@16
|
299 >
|
Chris@16
|
300 {
|
Chris@16
|
301 typedef
|
Chris@16
|
302 list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6>
|
Chris@16
|
303 src_args;
|
Chris@16
|
304 typedef
|
Chris@16
|
305 list7<
|
Chris@16
|
306 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type
|
Chris@16
|
307 >
|
Chris@16
|
308 dst_args;
|
Chris@16
|
309 typedef proto::expr<Tag, src_args, 7> src_type;
|
Chris@16
|
310 typedef proto::expr<Tag, dst_args, 7> type;
|
Chris@16
|
311 BOOST_FORCEINLINE
|
Chris@16
|
312 static type const call(src_type const &e)
|
Chris@16
|
313 {
|
Chris@16
|
314 type that = {
|
Chris@16
|
315 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6
|
Chris@16
|
316 };
|
Chris@16
|
317 return that;
|
Chris@16
|
318 }
|
Chris@16
|
319 };
|
Chris@16
|
320 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
|
Chris@16
|
321 struct by_value_generator_<
|
Chris@16
|
322 proto::basic_expr<Tag, list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6>, 7>
|
Chris@16
|
323 >
|
Chris@16
|
324 {
|
Chris@16
|
325 typedef
|
Chris@16
|
326 list7<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6>
|
Chris@16
|
327 src_args;
|
Chris@16
|
328 typedef
|
Chris@16
|
329 list7<
|
Chris@16
|
330 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type
|
Chris@16
|
331 >
|
Chris@16
|
332 dst_args;
|
Chris@16
|
333 typedef proto::basic_expr<Tag, src_args, 7> src_type;
|
Chris@16
|
334 typedef proto::basic_expr<Tag, dst_args, 7> type;
|
Chris@16
|
335 BOOST_FORCEINLINE
|
Chris@16
|
336 static type const call(src_type const &e)
|
Chris@16
|
337 {
|
Chris@16
|
338 type that = {
|
Chris@16
|
339 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6
|
Chris@16
|
340 };
|
Chris@16
|
341 return that;
|
Chris@16
|
342 }
|
Chris@16
|
343 };
|
Chris@16
|
344 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
|
Chris@16
|
345 struct by_value_generator_<
|
Chris@16
|
346 proto::expr<Tag, list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7>, 8>
|
Chris@16
|
347 >
|
Chris@16
|
348 {
|
Chris@16
|
349 typedef
|
Chris@16
|
350 list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7>
|
Chris@16
|
351 src_args;
|
Chris@16
|
352 typedef
|
Chris@16
|
353 list8<
|
Chris@16
|
354 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type
|
Chris@16
|
355 >
|
Chris@16
|
356 dst_args;
|
Chris@16
|
357 typedef proto::expr<Tag, src_args, 8> src_type;
|
Chris@16
|
358 typedef proto::expr<Tag, dst_args, 8> type;
|
Chris@16
|
359 BOOST_FORCEINLINE
|
Chris@16
|
360 static type const call(src_type const &e)
|
Chris@16
|
361 {
|
Chris@16
|
362 type that = {
|
Chris@16
|
363 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7
|
Chris@16
|
364 };
|
Chris@16
|
365 return that;
|
Chris@16
|
366 }
|
Chris@16
|
367 };
|
Chris@16
|
368 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
|
Chris@16
|
369 struct by_value_generator_<
|
Chris@16
|
370 proto::basic_expr<Tag, list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7>, 8>
|
Chris@16
|
371 >
|
Chris@16
|
372 {
|
Chris@16
|
373 typedef
|
Chris@16
|
374 list8<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7>
|
Chris@16
|
375 src_args;
|
Chris@16
|
376 typedef
|
Chris@16
|
377 list8<
|
Chris@16
|
378 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type
|
Chris@16
|
379 >
|
Chris@16
|
380 dst_args;
|
Chris@16
|
381 typedef proto::basic_expr<Tag, src_args, 8> src_type;
|
Chris@16
|
382 typedef proto::basic_expr<Tag, dst_args, 8> type;
|
Chris@16
|
383 BOOST_FORCEINLINE
|
Chris@16
|
384 static type const call(src_type const &e)
|
Chris@16
|
385 {
|
Chris@16
|
386 type that = {
|
Chris@16
|
387 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7
|
Chris@16
|
388 };
|
Chris@16
|
389 return that;
|
Chris@16
|
390 }
|
Chris@16
|
391 };
|
Chris@16
|
392 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
|
Chris@16
|
393 struct by_value_generator_<
|
Chris@16
|
394 proto::expr<Tag, list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8>, 9>
|
Chris@16
|
395 >
|
Chris@16
|
396 {
|
Chris@16
|
397 typedef
|
Chris@16
|
398 list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8>
|
Chris@16
|
399 src_args;
|
Chris@16
|
400 typedef
|
Chris@16
|
401 list9<
|
Chris@16
|
402 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type , typename uncvref<Arg8 >::type
|
Chris@16
|
403 >
|
Chris@16
|
404 dst_args;
|
Chris@16
|
405 typedef proto::expr<Tag, src_args, 9> src_type;
|
Chris@16
|
406 typedef proto::expr<Tag, dst_args, 9> type;
|
Chris@16
|
407 BOOST_FORCEINLINE
|
Chris@16
|
408 static type const call(src_type const &e)
|
Chris@16
|
409 {
|
Chris@16
|
410 type that = {
|
Chris@16
|
411 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7 , e.child8
|
Chris@16
|
412 };
|
Chris@16
|
413 return that;
|
Chris@16
|
414 }
|
Chris@16
|
415 };
|
Chris@16
|
416 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
|
Chris@16
|
417 struct by_value_generator_<
|
Chris@16
|
418 proto::basic_expr<Tag, list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8>, 9>
|
Chris@16
|
419 >
|
Chris@16
|
420 {
|
Chris@16
|
421 typedef
|
Chris@16
|
422 list9<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8>
|
Chris@16
|
423 src_args;
|
Chris@16
|
424 typedef
|
Chris@16
|
425 list9<
|
Chris@16
|
426 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type , typename uncvref<Arg8 >::type
|
Chris@16
|
427 >
|
Chris@16
|
428 dst_args;
|
Chris@16
|
429 typedef proto::basic_expr<Tag, src_args, 9> src_type;
|
Chris@16
|
430 typedef proto::basic_expr<Tag, dst_args, 9> type;
|
Chris@16
|
431 BOOST_FORCEINLINE
|
Chris@16
|
432 static type const call(src_type const &e)
|
Chris@16
|
433 {
|
Chris@16
|
434 type that = {
|
Chris@16
|
435 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7 , e.child8
|
Chris@16
|
436 };
|
Chris@16
|
437 return that;
|
Chris@16
|
438 }
|
Chris@16
|
439 };
|
Chris@16
|
440 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 >
|
Chris@16
|
441 struct by_value_generator_<
|
Chris@16
|
442 proto::expr<Tag, list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9>, 10>
|
Chris@16
|
443 >
|
Chris@16
|
444 {
|
Chris@16
|
445 typedef
|
Chris@16
|
446 list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9>
|
Chris@16
|
447 src_args;
|
Chris@16
|
448 typedef
|
Chris@16
|
449 list10<
|
Chris@16
|
450 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type , typename uncvref<Arg8 >::type , typename uncvref<Arg9 >::type
|
Chris@16
|
451 >
|
Chris@16
|
452 dst_args;
|
Chris@16
|
453 typedef proto::expr<Tag, src_args, 10> src_type;
|
Chris@16
|
454 typedef proto::expr<Tag, dst_args, 10> type;
|
Chris@16
|
455 BOOST_FORCEINLINE
|
Chris@16
|
456 static type const call(src_type const &e)
|
Chris@16
|
457 {
|
Chris@16
|
458 type that = {
|
Chris@16
|
459 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7 , e.child8 , e.child9
|
Chris@16
|
460 };
|
Chris@16
|
461 return that;
|
Chris@16
|
462 }
|
Chris@16
|
463 };
|
Chris@16
|
464 template<typename Tag , typename Arg0 , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 >
|
Chris@16
|
465 struct by_value_generator_<
|
Chris@16
|
466 proto::basic_expr<Tag, list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9>, 10>
|
Chris@16
|
467 >
|
Chris@16
|
468 {
|
Chris@16
|
469 typedef
|
Chris@16
|
470 list10<Arg0 , Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9>
|
Chris@16
|
471 src_args;
|
Chris@16
|
472 typedef
|
Chris@16
|
473 list10<
|
Chris@16
|
474 typename uncvref<Arg0 >::type , typename uncvref<Arg1 >::type , typename uncvref<Arg2 >::type , typename uncvref<Arg3 >::type , typename uncvref<Arg4 >::type , typename uncvref<Arg5 >::type , typename uncvref<Arg6 >::type , typename uncvref<Arg7 >::type , typename uncvref<Arg8 >::type , typename uncvref<Arg9 >::type
|
Chris@16
|
475 >
|
Chris@16
|
476 dst_args;
|
Chris@16
|
477 typedef proto::basic_expr<Tag, src_args, 10> src_type;
|
Chris@16
|
478 typedef proto::basic_expr<Tag, dst_args, 10> type;
|
Chris@16
|
479 BOOST_FORCEINLINE
|
Chris@16
|
480 static type const call(src_type const &e)
|
Chris@16
|
481 {
|
Chris@16
|
482 type that = {
|
Chris@16
|
483 e.child0 , e.child1 , e.child2 , e.child3 , e.child4 , e.child5 , e.child6 , e.child7 , e.child8 , e.child9
|
Chris@16
|
484 };
|
Chris@16
|
485 return that;
|
Chris@16
|
486 }
|
Chris@16
|
487 };
|