File indexing completed on 2025-01-18 09:44:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 template <typename Fun, typename Expr, typename State, typename Data>
0018 struct call_impl<Fun, Expr, State, Data, 1>
0019 : proto::transform_impl<Expr, State, Data>
0020 {
0021 typedef
0022 typename boost::phoenix::result_of::context<State, Data>::type
0023 context_type;
0024 typedef typename proto::result_of::child_c<Expr, 0>::type A0;
0025 typedef
0026 typename boost::result_of<
0027 Fun(A0, context_type)
0028 >::type
0029 result_type;
0030 result_type operator()(
0031 typename call_impl::expr_param e
0032 , typename call_impl::state_param s
0033 , typename call_impl::data_param d
0034 ) const
0035 {
0036 return
0037 Fun()(
0038 proto::child_c< 0>(e)
0039 , boost::phoenix::context(s, d)
0040 );
0041 }
0042 };
0043
0044
0045
0046
0047
0048
0049
0050
0051 template <typename Fun, typename Expr, typename State, typename Data>
0052 struct call_impl<Fun, Expr, State, Data, 2>
0053 : proto::transform_impl<Expr, State, Data>
0054 {
0055 typedef
0056 typename boost::phoenix::result_of::context<State, Data>::type
0057 context_type;
0058 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1;
0059 typedef
0060 typename boost::result_of<
0061 Fun(A0 , A1, context_type)
0062 >::type
0063 result_type;
0064 result_type operator()(
0065 typename call_impl::expr_param e
0066 , typename call_impl::state_param s
0067 , typename call_impl::data_param d
0068 ) const
0069 {
0070 return
0071 Fun()(
0072 proto::child_c< 0>(e) , proto::child_c< 1>(e)
0073 , boost::phoenix::context(s, d)
0074 );
0075 }
0076 };
0077
0078
0079
0080
0081
0082
0083
0084
0085 template <typename Fun, typename Expr, typename State, typename Data>
0086 struct call_impl<Fun, Expr, State, Data, 3>
0087 : proto::transform_impl<Expr, State, Data>
0088 {
0089 typedef
0090 typename boost::phoenix::result_of::context<State, Data>::type
0091 context_type;
0092 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2;
0093 typedef
0094 typename boost::result_of<
0095 Fun(A0 , A1 , A2, context_type)
0096 >::type
0097 result_type;
0098 result_type operator()(
0099 typename call_impl::expr_param e
0100 , typename call_impl::state_param s
0101 , typename call_impl::data_param d
0102 ) const
0103 {
0104 return
0105 Fun()(
0106 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e)
0107 , boost::phoenix::context(s, d)
0108 );
0109 }
0110 };
0111
0112
0113
0114
0115
0116
0117
0118
0119 template <typename Fun, typename Expr, typename State, typename Data>
0120 struct call_impl<Fun, Expr, State, Data, 4>
0121 : proto::transform_impl<Expr, State, Data>
0122 {
0123 typedef
0124 typename boost::phoenix::result_of::context<State, Data>::type
0125 context_type;
0126 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3;
0127 typedef
0128 typename boost::result_of<
0129 Fun(A0 , A1 , A2 , A3, context_type)
0130 >::type
0131 result_type;
0132 result_type operator()(
0133 typename call_impl::expr_param e
0134 , typename call_impl::state_param s
0135 , typename call_impl::data_param d
0136 ) const
0137 {
0138 return
0139 Fun()(
0140 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e)
0141 , boost::phoenix::context(s, d)
0142 );
0143 }
0144 };
0145
0146
0147
0148
0149
0150
0151
0152
0153 template <typename Fun, typename Expr, typename State, typename Data>
0154 struct call_impl<Fun, Expr, State, Data, 5>
0155 : proto::transform_impl<Expr, State, Data>
0156 {
0157 typedef
0158 typename boost::phoenix::result_of::context<State, Data>::type
0159 context_type;
0160 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4;
0161 typedef
0162 typename boost::result_of<
0163 Fun(A0 , A1 , A2 , A3 , A4, context_type)
0164 >::type
0165 result_type;
0166 result_type operator()(
0167 typename call_impl::expr_param e
0168 , typename call_impl::state_param s
0169 , typename call_impl::data_param d
0170 ) const
0171 {
0172 return
0173 Fun()(
0174 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e)
0175 , boost::phoenix::context(s, d)
0176 );
0177 }
0178 };
0179
0180
0181
0182
0183
0184
0185
0186
0187 template <typename Fun, typename Expr, typename State, typename Data>
0188 struct call_impl<Fun, Expr, State, Data, 6>
0189 : proto::transform_impl<Expr, State, Data>
0190 {
0191 typedef
0192 typename boost::phoenix::result_of::context<State, Data>::type
0193 context_type;
0194 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5;
0195 typedef
0196 typename boost::result_of<
0197 Fun(A0 , A1 , A2 , A3 , A4 , A5, context_type)
0198 >::type
0199 result_type;
0200 result_type operator()(
0201 typename call_impl::expr_param e
0202 , typename call_impl::state_param s
0203 , typename call_impl::data_param d
0204 ) const
0205 {
0206 return
0207 Fun()(
0208 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e)
0209 , boost::phoenix::context(s, d)
0210 );
0211 }
0212 };
0213
0214
0215
0216
0217
0218
0219
0220
0221 template <typename Fun, typename Expr, typename State, typename Data>
0222 struct call_impl<Fun, Expr, State, Data, 7>
0223 : proto::transform_impl<Expr, State, Data>
0224 {
0225 typedef
0226 typename boost::phoenix::result_of::context<State, Data>::type
0227 context_type;
0228 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6;
0229 typedef
0230 typename boost::result_of<
0231 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6, context_type)
0232 >::type
0233 result_type;
0234 result_type operator()(
0235 typename call_impl::expr_param e
0236 , typename call_impl::state_param s
0237 , typename call_impl::data_param d
0238 ) const
0239 {
0240 return
0241 Fun()(
0242 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e)
0243 , boost::phoenix::context(s, d)
0244 );
0245 }
0246 };
0247
0248
0249
0250
0251
0252
0253
0254
0255 template <typename Fun, typename Expr, typename State, typename Data>
0256 struct call_impl<Fun, Expr, State, Data, 8>
0257 : proto::transform_impl<Expr, State, Data>
0258 {
0259 typedef
0260 typename boost::phoenix::result_of::context<State, Data>::type
0261 context_type;
0262 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7;
0263 typedef
0264 typename boost::result_of<
0265 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7, context_type)
0266 >::type
0267 result_type;
0268 result_type operator()(
0269 typename call_impl::expr_param e
0270 , typename call_impl::state_param s
0271 , typename call_impl::data_param d
0272 ) const
0273 {
0274 return
0275 Fun()(
0276 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e)
0277 , boost::phoenix::context(s, d)
0278 );
0279 }
0280 };
0281
0282
0283
0284
0285
0286
0287
0288
0289 template <typename Fun, typename Expr, typename State, typename Data>
0290 struct call_impl<Fun, Expr, State, Data, 9>
0291 : proto::transform_impl<Expr, State, Data>
0292 {
0293 typedef
0294 typename boost::phoenix::result_of::context<State, Data>::type
0295 context_type;
0296 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8;
0297 typedef
0298 typename boost::result_of<
0299 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8, context_type)
0300 >::type
0301 result_type;
0302 result_type operator()(
0303 typename call_impl::expr_param e
0304 , typename call_impl::state_param s
0305 , typename call_impl::data_param d
0306 ) const
0307 {
0308 return
0309 Fun()(
0310 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e)
0311 , boost::phoenix::context(s, d)
0312 );
0313 }
0314 };
0315
0316
0317
0318
0319
0320
0321
0322
0323 template <typename Fun, typename Expr, typename State, typename Data>
0324 struct call_impl<Fun, Expr, State, Data, 10>
0325 : proto::transform_impl<Expr, State, Data>
0326 {
0327 typedef
0328 typename boost::phoenix::result_of::context<State, Data>::type
0329 context_type;
0330 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9;
0331 typedef
0332 typename boost::result_of<
0333 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9, context_type)
0334 >::type
0335 result_type;
0336 result_type operator()(
0337 typename call_impl::expr_param e
0338 , typename call_impl::state_param s
0339 , typename call_impl::data_param d
0340 ) const
0341 {
0342 return
0343 Fun()(
0344 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e)
0345 , boost::phoenix::context(s, d)
0346 );
0347 }
0348 };
0349
0350
0351
0352
0353
0354
0355
0356
0357 template <typename Fun, typename Expr, typename State, typename Data>
0358 struct call_impl<Fun, Expr, State, Data, 11>
0359 : proto::transform_impl<Expr, State, Data>
0360 {
0361 typedef
0362 typename boost::phoenix::result_of::context<State, Data>::type
0363 context_type;
0364 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10;
0365 typedef
0366 typename boost::result_of<
0367 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10, context_type)
0368 >::type
0369 result_type;
0370 result_type operator()(
0371 typename call_impl::expr_param e
0372 , typename call_impl::state_param s
0373 , typename call_impl::data_param d
0374 ) const
0375 {
0376 return
0377 Fun()(
0378 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e)
0379 , boost::phoenix::context(s, d)
0380 );
0381 }
0382 };
0383
0384
0385
0386
0387
0388
0389
0390
0391 template <typename Fun, typename Expr, typename State, typename Data>
0392 struct call_impl<Fun, Expr, State, Data, 12>
0393 : proto::transform_impl<Expr, State, Data>
0394 {
0395 typedef
0396 typename boost::phoenix::result_of::context<State, Data>::type
0397 context_type;
0398 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11;
0399 typedef
0400 typename boost::result_of<
0401 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11, context_type)
0402 >::type
0403 result_type;
0404 result_type operator()(
0405 typename call_impl::expr_param e
0406 , typename call_impl::state_param s
0407 , typename call_impl::data_param d
0408 ) const
0409 {
0410 return
0411 Fun()(
0412 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e)
0413 , boost::phoenix::context(s, d)
0414 );
0415 }
0416 };
0417
0418
0419
0420
0421
0422
0423
0424
0425 template <typename Fun, typename Expr, typename State, typename Data>
0426 struct call_impl<Fun, Expr, State, Data, 13>
0427 : proto::transform_impl<Expr, State, Data>
0428 {
0429 typedef
0430 typename boost::phoenix::result_of::context<State, Data>::type
0431 context_type;
0432 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12;
0433 typedef
0434 typename boost::result_of<
0435 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12, context_type)
0436 >::type
0437 result_type;
0438 result_type operator()(
0439 typename call_impl::expr_param e
0440 , typename call_impl::state_param s
0441 , typename call_impl::data_param d
0442 ) const
0443 {
0444 return
0445 Fun()(
0446 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e)
0447 , boost::phoenix::context(s, d)
0448 );
0449 }
0450 };
0451
0452
0453
0454
0455
0456
0457
0458
0459 template <typename Fun, typename Expr, typename State, typename Data>
0460 struct call_impl<Fun, Expr, State, Data, 14>
0461 : proto::transform_impl<Expr, State, Data>
0462 {
0463 typedef
0464 typename boost::phoenix::result_of::context<State, Data>::type
0465 context_type;
0466 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13;
0467 typedef
0468 typename boost::result_of<
0469 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13, context_type)
0470 >::type
0471 result_type;
0472 result_type operator()(
0473 typename call_impl::expr_param e
0474 , typename call_impl::state_param s
0475 , typename call_impl::data_param d
0476 ) const
0477 {
0478 return
0479 Fun()(
0480 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e)
0481 , boost::phoenix::context(s, d)
0482 );
0483 }
0484 };
0485
0486
0487
0488
0489
0490
0491
0492
0493 template <typename Fun, typename Expr, typename State, typename Data>
0494 struct call_impl<Fun, Expr, State, Data, 15>
0495 : proto::transform_impl<Expr, State, Data>
0496 {
0497 typedef
0498 typename boost::phoenix::result_of::context<State, Data>::type
0499 context_type;
0500 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14;
0501 typedef
0502 typename boost::result_of<
0503 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14, context_type)
0504 >::type
0505 result_type;
0506 result_type operator()(
0507 typename call_impl::expr_param e
0508 , typename call_impl::state_param s
0509 , typename call_impl::data_param d
0510 ) const
0511 {
0512 return
0513 Fun()(
0514 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e)
0515 , boost::phoenix::context(s, d)
0516 );
0517 }
0518 };
0519
0520
0521
0522
0523
0524
0525
0526
0527 template <typename Fun, typename Expr, typename State, typename Data>
0528 struct call_impl<Fun, Expr, State, Data, 16>
0529 : proto::transform_impl<Expr, State, Data>
0530 {
0531 typedef
0532 typename boost::phoenix::result_of::context<State, Data>::type
0533 context_type;
0534 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15;
0535 typedef
0536 typename boost::result_of<
0537 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15, context_type)
0538 >::type
0539 result_type;
0540 result_type operator()(
0541 typename call_impl::expr_param e
0542 , typename call_impl::state_param s
0543 , typename call_impl::data_param d
0544 ) const
0545 {
0546 return
0547 Fun()(
0548 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e)
0549 , boost::phoenix::context(s, d)
0550 );
0551 }
0552 };
0553
0554
0555
0556
0557
0558
0559
0560
0561 template <typename Fun, typename Expr, typename State, typename Data>
0562 struct call_impl<Fun, Expr, State, Data, 17>
0563 : proto::transform_impl<Expr, State, Data>
0564 {
0565 typedef
0566 typename boost::phoenix::result_of::context<State, Data>::type
0567 context_type;
0568 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16;
0569 typedef
0570 typename boost::result_of<
0571 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16, context_type)
0572 >::type
0573 result_type;
0574 result_type operator()(
0575 typename call_impl::expr_param e
0576 , typename call_impl::state_param s
0577 , typename call_impl::data_param d
0578 ) const
0579 {
0580 return
0581 Fun()(
0582 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e)
0583 , boost::phoenix::context(s, d)
0584 );
0585 }
0586 };
0587
0588
0589
0590
0591
0592
0593
0594
0595 template <typename Fun, typename Expr, typename State, typename Data>
0596 struct call_impl<Fun, Expr, State, Data, 18>
0597 : proto::transform_impl<Expr, State, Data>
0598 {
0599 typedef
0600 typename boost::phoenix::result_of::context<State, Data>::type
0601 context_type;
0602 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17;
0603 typedef
0604 typename boost::result_of<
0605 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17, context_type)
0606 >::type
0607 result_type;
0608 result_type operator()(
0609 typename call_impl::expr_param e
0610 , typename call_impl::state_param s
0611 , typename call_impl::data_param d
0612 ) const
0613 {
0614 return
0615 Fun()(
0616 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e)
0617 , boost::phoenix::context(s, d)
0618 );
0619 }
0620 };
0621
0622
0623
0624
0625
0626
0627
0628
0629 template <typename Fun, typename Expr, typename State, typename Data>
0630 struct call_impl<Fun, Expr, State, Data, 19>
0631 : proto::transform_impl<Expr, State, Data>
0632 {
0633 typedef
0634 typename boost::phoenix::result_of::context<State, Data>::type
0635 context_type;
0636 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18;
0637 typedef
0638 typename boost::result_of<
0639 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18, context_type)
0640 >::type
0641 result_type;
0642 result_type operator()(
0643 typename call_impl::expr_param e
0644 , typename call_impl::state_param s
0645 , typename call_impl::data_param d
0646 ) const
0647 {
0648 return
0649 Fun()(
0650 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e)
0651 , boost::phoenix::context(s, d)
0652 );
0653 }
0654 };
0655
0656
0657
0658
0659
0660
0661
0662
0663 template <typename Fun, typename Expr, typename State, typename Data>
0664 struct call_impl<Fun, Expr, State, Data, 20>
0665 : proto::transform_impl<Expr, State, Data>
0666 {
0667 typedef
0668 typename boost::phoenix::result_of::context<State, Data>::type
0669 context_type;
0670 typedef typename proto::result_of::child_c<Expr, 0>::type A0; typedef typename proto::result_of::child_c<Expr, 1>::type A1; typedef typename proto::result_of::child_c<Expr, 2>::type A2; typedef typename proto::result_of::child_c<Expr, 3>::type A3; typedef typename proto::result_of::child_c<Expr, 4>::type A4; typedef typename proto::result_of::child_c<Expr, 5>::type A5; typedef typename proto::result_of::child_c<Expr, 6>::type A6; typedef typename proto::result_of::child_c<Expr, 7>::type A7; typedef typename proto::result_of::child_c<Expr, 8>::type A8; typedef typename proto::result_of::child_c<Expr, 9>::type A9; typedef typename proto::result_of::child_c<Expr, 10>::type A10; typedef typename proto::result_of::child_c<Expr, 11>::type A11; typedef typename proto::result_of::child_c<Expr, 12>::type A12; typedef typename proto::result_of::child_c<Expr, 13>::type A13; typedef typename proto::result_of::child_c<Expr, 14>::type A14; typedef typename proto::result_of::child_c<Expr, 15>::type A15; typedef typename proto::result_of::child_c<Expr, 16>::type A16; typedef typename proto::result_of::child_c<Expr, 17>::type A17; typedef typename proto::result_of::child_c<Expr, 18>::type A18; typedef typename proto::result_of::child_c<Expr, 19>::type A19;
0671 typedef
0672 typename boost::result_of<
0673 Fun(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19, context_type)
0674 >::type
0675 result_type;
0676 result_type operator()(
0677 typename call_impl::expr_param e
0678 , typename call_impl::state_param s
0679 , typename call_impl::data_param d
0680 ) const
0681 {
0682 return
0683 Fun()(
0684 proto::child_c< 0>(e) , proto::child_c< 1>(e) , proto::child_c< 2>(e) , proto::child_c< 3>(e) , proto::child_c< 4>(e) , proto::child_c< 5>(e) , proto::child_c< 6>(e) , proto::child_c< 7>(e) , proto::child_c< 8>(e) , proto::child_c< 9>(e) , proto::child_c< 10>(e) , proto::child_c< 11>(e) , proto::child_c< 12>(e) , proto::child_c< 13>(e) , proto::child_c< 14>(e) , proto::child_c< 15>(e) , proto::child_c< 16>(e) , proto::child_c< 17>(e) , proto::child_c< 18>(e) , proto::child_c< 19>(e)
0685 , boost::phoenix::context(s, d)
0686 );
0687 }
0688 };