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