File indexing completed on 2025-01-18 09:44:34
0001
0002
0003
0004
0005
0006
0007
0008
0009 template <
0010 template <typename> class Actor
0011 , typename Tag
0012 , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void
0013 , typename Dummy = void>
0014 struct expr_ext;
0015 template <
0016 typename Tag
0017 , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void
0018 , typename Dummy = void
0019 >
0020 struct expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> {};
0021
0022
0023
0024
0025
0026
0027
0028 template <template <typename> class Actor, typename Tag, typename A0>
0029 struct expr_ext<Actor, Tag, A0>
0030 : proto::transform<expr_ext<Actor, Tag, A0>, int>
0031 {
0032 typedef
0033 typename proto::result_of::make_expr<
0034 Tag
0035 , phoenix_default_domain
0036 , typename proto::detail::uncvref<A0>::type
0037 >::type
0038 base_type;
0039 typedef Actor<base_type> type;
0040 typedef
0041 typename proto::nary_expr<Tag, A0>::proto_grammar
0042 proto_grammar;
0043 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0)
0044 {
0045
0046 actor<base_type> const e =
0047 {
0048 proto::make_expr<
0049 Tag
0050 , phoenix_default_domain
0051 >(a0)
0052 };
0053 return e;
0054 }
0055 template<typename Expr, typename State, typename Data>
0056 struct impl
0057 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0058 {};
0059 typedef Tag proto_tag;
0060 typedef A0 proto_child0;
0061 };
0062
0063
0064
0065
0066
0067
0068
0069 template <template <typename> class Actor, typename Tag, typename A0 , typename A1>
0070 struct expr_ext<Actor, Tag, A0 , A1>
0071 : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int>
0072 {
0073 typedef
0074 typename proto::result_of::make_expr<
0075 Tag
0076 , phoenix_default_domain
0077 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type
0078 >::type
0079 base_type;
0080 typedef Actor<base_type> type;
0081 typedef
0082 typename proto::nary_expr<Tag, A0 , A1>::proto_grammar
0083 proto_grammar;
0084 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1)
0085 {
0086
0087 actor<base_type> const e =
0088 {
0089 proto::make_expr<
0090 Tag
0091 , phoenix_default_domain
0092 >(a0 , a1)
0093 };
0094 return e;
0095 }
0096 template<typename Expr, typename State, typename Data>
0097 struct impl
0098 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0099 {};
0100 typedef Tag proto_tag;
0101 typedef A0 proto_child0; typedef A1 proto_child1;
0102 };
0103
0104
0105
0106
0107
0108
0109
0110 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2>
0111 struct expr_ext<Actor, Tag, A0 , A1 , A2>
0112 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int>
0113 {
0114 typedef
0115 typename proto::result_of::make_expr<
0116 Tag
0117 , phoenix_default_domain
0118 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type
0119 >::type
0120 base_type;
0121 typedef Actor<base_type> type;
0122 typedef
0123 typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar
0124 proto_grammar;
0125 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2)
0126 {
0127
0128 actor<base_type> const e =
0129 {
0130 proto::make_expr<
0131 Tag
0132 , phoenix_default_domain
0133 >(a0 , a1 , a2)
0134 };
0135 return e;
0136 }
0137 template<typename Expr, typename State, typename Data>
0138 struct impl
0139 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0140 {};
0141 typedef Tag proto_tag;
0142 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2;
0143 };
0144
0145
0146
0147
0148
0149
0150
0151 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3>
0152 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3>
0153 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int>
0154 {
0155 typedef
0156 typename proto::result_of::make_expr<
0157 Tag
0158 , phoenix_default_domain
0159 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type
0160 >::type
0161 base_type;
0162 typedef Actor<base_type> type;
0163 typedef
0164 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar
0165 proto_grammar;
0166 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3)
0167 {
0168
0169 actor<base_type> const e =
0170 {
0171 proto::make_expr<
0172 Tag
0173 , phoenix_default_domain
0174 >(a0 , a1 , a2 , a3)
0175 };
0176 return e;
0177 }
0178 template<typename Expr, typename State, typename Data>
0179 struct impl
0180 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0181 {};
0182 typedef Tag proto_tag;
0183 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3;
0184 };
0185
0186
0187
0188
0189
0190
0191
0192 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
0193 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>
0194 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int>
0195 {
0196 typedef
0197 typename proto::result_of::make_expr<
0198 Tag
0199 , phoenix_default_domain
0200 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type
0201 >::type
0202 base_type;
0203 typedef Actor<base_type> type;
0204 typedef
0205 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar
0206 proto_grammar;
0207 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4)
0208 {
0209
0210 actor<base_type> const e =
0211 {
0212 proto::make_expr<
0213 Tag
0214 , phoenix_default_domain
0215 >(a0 , a1 , a2 , a3 , a4)
0216 };
0217 return e;
0218 }
0219 template<typename Expr, typename State, typename Data>
0220 struct impl
0221 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0222 {};
0223 typedef Tag proto_tag;
0224 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4;
0225 };
0226
0227
0228
0229
0230
0231
0232
0233 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
0234 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>
0235 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int>
0236 {
0237 typedef
0238 typename proto::result_of::make_expr<
0239 Tag
0240 , phoenix_default_domain
0241 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type
0242 >::type
0243 base_type;
0244 typedef Actor<base_type> type;
0245 typedef
0246 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar
0247 proto_grammar;
0248 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5)
0249 {
0250
0251 actor<base_type> const e =
0252 {
0253 proto::make_expr<
0254 Tag
0255 , phoenix_default_domain
0256 >(a0 , a1 , a2 , a3 , a4 , a5)
0257 };
0258 return e;
0259 }
0260 template<typename Expr, typename State, typename Data>
0261 struct impl
0262 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0263 {};
0264 typedef Tag proto_tag;
0265 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5;
0266 };
0267
0268
0269
0270
0271
0272
0273
0274 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
0275 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>
0276 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int>
0277 {
0278 typedef
0279 typename proto::result_of::make_expr<
0280 Tag
0281 , phoenix_default_domain
0282 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type
0283 >::type
0284 base_type;
0285 typedef Actor<base_type> type;
0286 typedef
0287 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar
0288 proto_grammar;
0289 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6)
0290 {
0291
0292 actor<base_type> const e =
0293 {
0294 proto::make_expr<
0295 Tag
0296 , phoenix_default_domain
0297 >(a0 , a1 , a2 , a3 , a4 , a5 , a6)
0298 };
0299 return e;
0300 }
0301 template<typename Expr, typename State, typename Data>
0302 struct impl
0303 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0304 {};
0305 typedef Tag proto_tag;
0306 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6;
0307 };
0308
0309
0310
0311
0312
0313
0314
0315 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
0316 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
0317 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int>
0318 {
0319 typedef
0320 typename proto::result_of::make_expr<
0321 Tag
0322 , phoenix_default_domain
0323 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type
0324 >::type
0325 base_type;
0326 typedef Actor<base_type> type;
0327 typedef
0328 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar
0329 proto_grammar;
0330 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7)
0331 {
0332
0333 actor<base_type> const e =
0334 {
0335 proto::make_expr<
0336 Tag
0337 , phoenix_default_domain
0338 >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7)
0339 };
0340 return e;
0341 }
0342 template<typename Expr, typename State, typename Data>
0343 struct impl
0344 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0345 {};
0346 typedef Tag proto_tag;
0347 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7;
0348 };
0349
0350
0351
0352
0353
0354
0355
0356 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
0357 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
0358 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int>
0359 {
0360 typedef
0361 typename proto::result_of::make_expr<
0362 Tag
0363 , phoenix_default_domain
0364 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type
0365 >::type
0366 base_type;
0367 typedef Actor<base_type> type;
0368 typedef
0369 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar
0370 proto_grammar;
0371 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8)
0372 {
0373
0374 actor<base_type> const e =
0375 {
0376 proto::make_expr<
0377 Tag
0378 , phoenix_default_domain
0379 >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8)
0380 };
0381 return e;
0382 }
0383 template<typename Expr, typename State, typename Data>
0384 struct impl
0385 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0386 {};
0387 typedef Tag proto_tag;
0388 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8;
0389 };
0390
0391
0392
0393
0394
0395
0396
0397 template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
0398 struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
0399 : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int>
0400 {
0401 typedef
0402 typename proto::result_of::make_expr<
0403 Tag
0404 , phoenix_default_domain
0405 , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type
0406 >::type
0407 base_type;
0408 typedef Actor<base_type> type;
0409 typedef
0410 typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar
0411 proto_grammar;
0412 static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9)
0413 {
0414
0415 actor<base_type> const e =
0416 {
0417 proto::make_expr<
0418 Tag
0419 , phoenix_default_domain
0420 >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9)
0421 };
0422 return e;
0423 }
0424 template<typename Expr, typename State, typename Data>
0425 struct impl
0426 : proto::pass_through<expr_ext>::template impl<Expr, State, Data>
0427 {};
0428 typedef Tag proto_tag;
0429 typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9;
0430 };