1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 
9 
10 
11 
12 
13 
14 
15         template <typename This, typename A0>
16         struct result<This(A0)>
17             : result<This(typename detail::result_type_deduction_helper<A0>::type)>
18         {};
operator ()(A0 & a0)19         template <typename This, typename A0> struct result<This(A0 &)> : result_of::actor<proto_base_expr, A0 &> {}; template <typename A0> typename result_of::actor<proto_base_expr, A0 &>::type operator()(A0 & a0) const { typedef vector2< const actor<Expr> *, A0 & > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0> typename result_of::actor<proto_base_expr, A0 &>::type operator()(A0 & a0) { typedef vector2< const actor<Expr> *, A0 & > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0> struct result<This(A0 const&)> : result_of::actor<proto_base_expr, A0 const&> {}; template <typename A0> typename result_of::actor<proto_base_expr, A0 const&>::type operator()(A0 const& a0) const { typedef vector2< const actor<Expr> *, A0 const& > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0> typename result_of::actor<proto_base_expr, A0 const&>::type operator()(A0 const& a0) { typedef vector2< const actor<Expr> *, A0 const& > env_type; env_type env = {this, a0}; return phoenix::eval(*this, phoenix::context(env, default_actions())); }
20 
21 
22 
23 
24 
25 
26 
27         template <typename This, typename A0 , typename A1>
28         struct result<This(A0 , A1)>
29             : result<This(typename detail::result_type_deduction_helper<A0>::type , typename detail::result_type_deduction_helper<A1>::type)>
30         {};
operator ()(A0 & a0,A1 & a1) const31         template <typename This, typename A0 , typename A1> struct result<This(A0 & , A1 &)> : result_of::actor<proto_base_expr, A0 & , A1 &> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) const { typedef vector3< const actor<Expr> *, A0 & , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 &>::type operator()(A0 & a0 , A1 & a1) { typedef vector3< const actor<Expr> *, A0 & , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 & , A1 const&)> : result_of::actor<proto_base_expr, A0 & , A1 const&> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) const { typedef vector3< const actor<Expr> *, A0 & , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 & , A1 const&>::type operator()(A0 & a0 , A1 const& a1) { typedef vector3< const actor<Expr> *, A0 & , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 const& , A1 &)> : result_of::actor<proto_base_expr, A0 const& , A1 &> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) const { typedef vector3< const actor<Expr> *, A0 const& , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 &>::type operator()(A0 const& a0 , A1 & a1) { typedef vector3< const actor<Expr> *, A0 const& , A1 & > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename This, typename A0 , typename A1> struct result<This(A0 const& , A1 const&)> : result_of::actor<proto_base_expr, A0 const& , A1 const&> {}; template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) const { typedef vector3< const actor<Expr> *, A0 const& , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); } template <typename A0 , typename A1> typename result_of::actor<proto_base_expr, A0 const& , A1 const&>::type operator()(A0 const& a0 , A1 const& a1) { typedef vector3< const actor<Expr> *, A0 const& , A1 const& > env_type; env_type env = {this, a0 , a1}; return phoenix::eval(*this, phoenix::context(env, default_actions())); }
32 
33 
34 
35 
36 
37 
38 
39         template <typename This, typename A0 , typename A1 , typename A2>
40         struct result<This(A0 , A1 , A2)>
41             : result<This(A0 const& , A1 const& , A2 const&)>
42         {};
43         template <typename This, typename A0 , typename A1 , typename A2>
44         struct result<This(A0 & , A1 & , A2 &)>
45             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>
46         {};
47         template <typename A0 , typename A1 , typename A2>
48         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2)49         operator()(A0 & a0 , A1 & a1 , A2 & a2)
50         {
51             typedef
52                 vector4<
53                     const actor<Expr> *, A0 & , A1 & , A2 &
54                 >
55                 env_type;
56             env_type env = {this, a0 , a1 , a2};
57 
58             return phoenix::eval(*this, phoenix::context(env, default_actions()));
59         }
60         template <typename A0 , typename A1 , typename A2>
61         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2) const62         operator()(A0 & a0 , A1 & a1 , A2 & a2) const
63         {
64             typedef
65                 vector4<
66                     const actor<Expr> *, A0 & , A1 & , A2 &
67                 >
68                 env_type;
69             env_type env = {this, a0 , a1 , a2};
70 
71             return phoenix::eval(*this, phoenix::context(env, default_actions()));
72         }
73         template <typename A0 , typename A1 , typename A2>
74         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2)75         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2)
76         {
77             typedef
78                 vector4<
79                     const actor<Expr> *, A0 const& , A1 const& , A2 const&
80                 >
81                 env_type;
82             env_type env = {this, a0 , a1 , a2};
83 
84             return phoenix::eval(*this, phoenix::context(env, default_actions()));
85         }
86         template <typename A0 , typename A1 , typename A2>
87         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2) const88         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
89         {
90             typedef
91                 vector4<
92                     const actor<Expr> *, A0 const& , A1 const& , A2 const&
93                 >
94                 env_type;
95             env_type env = {this, a0 , a1 , a2};
96 
97             return phoenix::eval(*this, phoenix::context(env, default_actions()));
98         }
99 
100 
101 
102 
103 
104 
105 
106         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
107         struct result<This(A0 , A1 , A2 , A3)>
108             : result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
109         {};
110         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
111         struct result<This(A0 & , A1 & , A2 & , A3 &)>
112             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>
113         {};
114         template <typename A0 , typename A1 , typename A2 , typename A3>
115         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3)116         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3)
117         {
118             typedef
119                 vector5<
120                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 &
121                 >
122                 env_type;
123             env_type env = {this, a0 , a1 , a2 , a3};
124 
125             return phoenix::eval(*this, phoenix::context(env, default_actions()));
126         }
127         template <typename A0 , typename A1 , typename A2 , typename A3>
128         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3) const129         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
130         {
131             typedef
132                 vector5<
133                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 &
134                 >
135                 env_type;
136             env_type env = {this, a0 , a1 , a2 , a3};
137 
138             return phoenix::eval(*this, phoenix::context(env, default_actions()));
139         }
140         template <typename A0 , typename A1 , typename A2 , typename A3>
141         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3)142         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
143         {
144             typedef
145                 vector5<
146                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const&
147                 >
148                 env_type;
149             env_type env = {this, a0 , a1 , a2 , a3};
150 
151             return phoenix::eval(*this, phoenix::context(env, default_actions()));
152         }
153         template <typename A0 , typename A1 , typename A2 , typename A3>
154         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3) const155         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
156         {
157             typedef
158                 vector5<
159                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const&
160                 >
161                 env_type;
162             env_type env = {this, a0 , a1 , a2 , a3};
163 
164             return phoenix::eval(*this, phoenix::context(env, default_actions()));
165         }
166 
167 
168 
169 
170 
171 
172 
173         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
174         struct result<This(A0 , A1 , A2 , A3 , A4)>
175             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
176         {};
177         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
178         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 &)>
179             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>
180         {};
181         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
182         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4)183         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4)
184         {
185             typedef
186                 vector6<
187                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 &
188                 >
189                 env_type;
190             env_type env = {this, a0 , a1 , a2 , a3 , a4};
191 
192             return phoenix::eval(*this, phoenix::context(env, default_actions()));
193         }
194         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
195         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4) const196         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
197         {
198             typedef
199                 vector6<
200                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 &
201                 >
202                 env_type;
203             env_type env = {this, a0 , a1 , a2 , a3 , a4};
204 
205             return phoenix::eval(*this, phoenix::context(env, default_actions()));
206         }
207         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
208         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4)209         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
210         {
211             typedef
212                 vector6<
213                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
214                 >
215                 env_type;
216             env_type env = {this, a0 , a1 , a2 , a3 , a4};
217 
218             return phoenix::eval(*this, phoenix::context(env, default_actions()));
219         }
220         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
221         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4) const222         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
223         {
224             typedef
225                 vector6<
226                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const&
227                 >
228                 env_type;
229             env_type env = {this, a0 , a1 , a2 , a3 , a4};
230 
231             return phoenix::eval(*this, phoenix::context(env, default_actions()));
232         }
233 
234 
235 
236 
237 
238 
239 
240         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
241         struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
242             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
243         {};
244         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
245         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 &)>
246             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>
247         {};
248         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
249         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5)250         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5)
251         {
252             typedef
253                 vector7<
254                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
255                 >
256                 env_type;
257             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
258 
259             return phoenix::eval(*this, phoenix::context(env, default_actions()));
260         }
261         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
262         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5) const263         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
264         {
265             typedef
266                 vector7<
267                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &
268                 >
269                 env_type;
270             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
271 
272             return phoenix::eval(*this, phoenix::context(env, default_actions()));
273         }
274         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
275         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5)276         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
277         {
278             typedef
279                 vector7<
280                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
281                 >
282                 env_type;
283             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
284 
285             return phoenix::eval(*this, phoenix::context(env, default_actions()));
286         }
287         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
288         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5) const289         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
290         {
291             typedef
292                 vector7<
293                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&
294                 >
295                 env_type;
296             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
297 
298             return phoenix::eval(*this, phoenix::context(env, default_actions()));
299         }
300 
301 
302 
303 
304 
305 
306 
307         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
308         struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
309             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
310         {};
311         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
312         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &)>
313             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>
314         {};
315         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
316         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6)317         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6)
318         {
319             typedef
320                 vector8<
321                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
322                 >
323                 env_type;
324             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
325 
326             return phoenix::eval(*this, phoenix::context(env, default_actions()));
327         }
328         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
329         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6) const330         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
331         {
332             typedef
333                 vector8<
334                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &
335                 >
336                 env_type;
337             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
338 
339             return phoenix::eval(*this, phoenix::context(env, default_actions()));
340         }
341         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
342         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6)343         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
344         {
345             typedef
346                 vector8<
347                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
348                 >
349                 env_type;
350             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
351 
352             return phoenix::eval(*this, phoenix::context(env, default_actions()));
353         }
354         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
355         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6) const356         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
357         {
358             typedef
359                 vector8<
360                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&
361                 >
362                 env_type;
363             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
364 
365             return phoenix::eval(*this, phoenix::context(env, default_actions()));
366         }
367 
368 
369 
370 
371 
372 
373 
374         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
375         struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
376             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
377         {};
378         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
379         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &)>
380             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>
381         {};
382         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
383         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7)384         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7)
385         {
386             typedef
387                 vector9<
388                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
389                 >
390                 env_type;
391             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
392 
393             return phoenix::eval(*this, phoenix::context(env, default_actions()));
394         }
395         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
396         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7) const397         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
398         {
399             typedef
400                 vector9<
401                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &
402                 >
403                 env_type;
404             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
405 
406             return phoenix::eval(*this, phoenix::context(env, default_actions()));
407         }
408         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
409         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7)410         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
411         {
412             typedef
413                 vector9<
414                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
415                 >
416                 env_type;
417             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
418 
419             return phoenix::eval(*this, phoenix::context(env, default_actions()));
420         }
421         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
422         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7) const423         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
424         {
425             typedef
426                 vector9<
427                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&
428                 >
429                 env_type;
430             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
431 
432             return phoenix::eval(*this, phoenix::context(env, default_actions()));
433         }
434 
435 
436 
437 
438 
439 
440 
441         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
442         struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
443             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
444         {};
445         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
446         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &)>
447             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>
448         {};
449         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
450         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7,A8 & a8)451         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8)
452         {
453             typedef
454                 vector10<
455                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
456                 >
457                 env_type;
458             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
459 
460             return phoenix::eval(*this, phoenix::context(env, default_actions()));
461         }
462         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
463         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7,A8 & a8) const464         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
465         {
466             typedef
467                 vector10<
468                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &
469                 >
470                 env_type;
471             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
472 
473             return phoenix::eval(*this, phoenix::context(env, default_actions()));
474         }
475         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
476         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8)477         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
478         {
479             typedef
480                 vector10<
481                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
482                 >
483                 env_type;
484             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
485 
486             return phoenix::eval(*this, phoenix::context(env, default_actions()));
487         }
488         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
489         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8) const490         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
491         {
492             typedef
493                 vector10<
494                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&
495                 >
496                 env_type;
497             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
498 
499             return phoenix::eval(*this, phoenix::context(env, default_actions()));
500         }
501 
502 
503 
504 
505 
506 
507 
508         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
509         struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
510             : result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
511         {};
512         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
513         struct result<This(A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &)>
514             : result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>
515         {};
516         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
517         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7,A8 & a8,A9 & a9)518         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9)
519         {
520             typedef
521                 vector11<
522                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
523                 >
524                 env_type;
525             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
526 
527             return phoenix::eval(*this, phoenix::context(env, default_actions()));
528         }
529         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
530         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
operator ()(A0 & a0,A1 & a1,A2 & a2,A3 & a3,A4 & a4,A5 & a5,A6 & a6,A7 & a7,A8 & a8,A9 & a9) const531         operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
532         {
533             typedef
534                 vector11<
535                     const actor<Expr> *, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &
536                 >
537                 env_type;
538             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
539 
540             return phoenix::eval(*this, phoenix::context(env, default_actions()));
541         }
542         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
543         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8,A9 const & a9)544         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
545         {
546             typedef
547                 vector11<
548                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
549                 >
550                 env_type;
551             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
552 
553             return phoenix::eval(*this, phoenix::context(env, default_actions()));
554         }
555         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
556         typename result_of::actor<proto_base_expr, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&>::type
operator ()(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8,A9 const & a9) const557         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
558         {
559             typedef
560                 vector11<
561                     const actor<Expr> *, A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&
562                 >
563                 env_type;
564             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
565 
566             return phoenix::eval(*this, phoenix::context(env, default_actions()));
567         }
568