1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/spirit/phoenix/new.hpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,1316 @@
1.4 +/*=============================================================================
1.5 + Phoenix V1.2.1
1.6 + Copyright (c) 2001-2003 Joel de Guzman
1.7 + Copyright (c) 2001-2003 Hartmut Kaiser
1.8 + Copyright (c) 2003 Vaclav Vesely
1.9 +
1.10 + Use, modification and distribution is subject to the Boost Software
1.11 + License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
1.12 + http://www.boost.org/LICENSE_1_0.txt)
1.13 +==============================================================================*/
1.14 +
1.15 +#ifndef PHOENIX_NEW_HPP
1.16 +#define PHOENIX_NEW_HPP
1.17 +
1.18 +///////////////////////////////////////////////////////////////////////////////
1.19 +#include <boost/spirit/phoenix/actor.hpp>
1.20 +#include <boost/spirit/phoenix/composite.hpp>
1.21 +#include <boost/static_assert.hpp>
1.22 +
1.23 +///////////////////////////////////////////////////////////////////////////////
1.24 +namespace phoenix {
1.25 +
1.26 +///////////////////////////////////////////////////////////////////////////////
1.27 +//
1.28 +// Phoenix predefined maximum new_ limit. This limit defines the maximum
1.29 +// number of parameters supported for calles to the set of new_ template
1.30 +// functions (lazy object construction, see below). This number defaults to 3.
1.31 +// The actual maximum is rounded up in multiples of 3. Thus, if this value
1.32 +// is 4, the actual limit is 6. The ultimate maximum limit in this
1.33 +// implementation is 15.
1.34 +// PHOENIX_CONSTRUCT_LIMIT should NOT be greater than PHOENIX_LIMIT!
1.35 +
1.36 +#if !defined(PHOENIX_CONSTRUCT_LIMIT)
1.37 +#define PHOENIX_CONSTRUCT_LIMIT PHOENIX_LIMIT
1.38 +#endif
1.39 +
1.40 +// ensure PHOENIX_CONSTRUCT_LIMIT <= PHOENIX_LIMIT
1.41 +BOOST_STATIC_ASSERT(PHOENIX_CONSTRUCT_LIMIT <= PHOENIX_LIMIT);
1.42 +
1.43 +// ensure PHOENIX_CONSTRUCT_LIMIT <= 15
1.44 +BOOST_STATIC_ASSERT(PHOENIX_CONSTRUCT_LIMIT <= 15);
1.45 +
1.46 +///////////////////////////////////////////////////////////////////////////////
1.47 +//
1.48 +// new_
1.49 +//
1.50 +// Lazy object construction
1.51 +//
1.52 +// The set of new_<> template classes and functions provide a way
1.53 +// of lazily constructing certain object from a arbitrary set of
1.54 +// actors during parsing.
1.55 +// The new_ templates are (syntactically) used very much like
1.56 +// the well known C++ casts:
1.57 +//
1.58 +// A *a = new_<A>(...arbitrary list of actors...);
1.59 +//
1.60 +// where the given parameters are submitted as parameters to the
1.61 +// contructor of the object of type A. (This certainly implies, that
1.62 +// type A has a constructor with a fitting set of parameter types
1.63 +// defined.)
1.64 +//
1.65 +// The maximum number of needed parameters is controlled through the
1.66 +// preprocessor constant PHOENIX_CONSTRUCT_LIMIT. Note though, that this
1.67 +// limit should not be greater than PHOENIX_LIMIT.
1.68 +//
1.69 +///////////////////////////////////////////////////////////////////////////////
1.70 +
1.71 +template <typename T>
1.72 +struct new_l_0
1.73 +{
1.74 + typedef T* result_type;
1.75 +
1.76 + T* operator()() const
1.77 + {
1.78 + return new T();
1.79 + }
1.80 +};
1.81 +
1.82 +template <typename T>
1.83 +struct new_l {
1.84 +
1.85 + template <
1.86 + typename A
1.87 + , typename B
1.88 + , typename C
1.89 +
1.90 +#if PHOENIX_CONSTRUCT_LIMIT > 3
1.91 + , typename D
1.92 + , typename E
1.93 + , typename F
1.94 +
1.95 +#if PHOENIX_CONSTRUCT_LIMIT > 6
1.96 + , typename G
1.97 + , typename H
1.98 + , typename I
1.99 +
1.100 +#if PHOENIX_CONSTRUCT_LIMIT > 9
1.101 + , typename J
1.102 + , typename K
1.103 + , typename L
1.104 +
1.105 +#if PHOENIX_CONSTRUCT_LIMIT > 12
1.106 + , typename M
1.107 + , typename N
1.108 + , typename O
1.109 +#endif
1.110 +#endif
1.111 +#endif
1.112 +#endif
1.113 + >
1.114 + struct result { typedef T* type; };
1.115 +
1.116 + T* operator()() const {
1.117 + return new T();
1.118 + }
1.119 +
1.120 + template <typename A>
1.121 + T* operator()(A const& a) const {
1.122 + return new T(a);
1.123 + }
1.124 +
1.125 + template <typename A, typename B>
1.126 + T* operator()(A const& a, B const& b) const {
1.127 + return new T(a, b);
1.128 + }
1.129 +
1.130 + template <typename A, typename B, typename C>
1.131 + T* operator()(A const& a, B const& b, C const& c) const {
1.132 + return new T(a, b, c);
1.133 + }
1.134 +
1.135 +#if PHOENIX_CONSTRUCT_LIMIT > 3
1.136 + template <
1.137 + typename A, typename B, typename C, typename D
1.138 + >
1.139 + T* operator()(
1.140 + A const& a, B const& b, C const& c, D const& d) const
1.141 + {
1.142 + return new T(a, b, c, d);
1.143 + }
1.144 +
1.145 + template <
1.146 + typename A, typename B, typename C, typename D, typename E
1.147 + >
1.148 + T* operator()(
1.149 + A const& a, B const& b, C const& c, D const& d, E const& e) const
1.150 + {
1.151 + return new T(a, b, c, d, e);
1.152 + }
1.153 +
1.154 + template <
1.155 + typename A, typename B, typename C, typename D, typename E,
1.156 + typename F
1.157 + >
1.158 + T* operator()(
1.159 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.160 + F const& f) const
1.161 + {
1.162 + return new T(a, b, c, d, e, f);
1.163 + }
1.164 +
1.165 +#if PHOENIX_CONSTRUCT_LIMIT > 6
1.166 + template <
1.167 + typename A, typename B, typename C, typename D, typename E,
1.168 + typename F, typename G
1.169 + >
1.170 + T* operator()(
1.171 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.172 + F const& f, G const& g) const
1.173 + {
1.174 + return new T(a, b, c, d, e, f, g);
1.175 + }
1.176 +
1.177 + template <
1.178 + typename A, typename B, typename C, typename D, typename E,
1.179 + typename F, typename G, typename H
1.180 + >
1.181 + T* operator()(
1.182 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.183 + F const& f, G const& g, H const& h) const
1.184 + {
1.185 + return new T(a, b, c, d, e, f, g, h);
1.186 + }
1.187 +
1.188 + template <
1.189 + typename A, typename B, typename C, typename D, typename E,
1.190 + typename F, typename G, typename H, typename I
1.191 + >
1.192 + T* operator()(
1.193 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.194 + F const& f, G const& g, H const& h, I const& i) const
1.195 + {
1.196 + return new T(a, b, c, d, e, f, g, h, i);
1.197 + }
1.198 +
1.199 +#if PHOENIX_CONSTRUCT_LIMIT > 9
1.200 + template <
1.201 + typename A, typename B, typename C, typename D, typename E,
1.202 + typename F, typename G, typename H, typename I, typename J
1.203 + >
1.204 + T* operator()(
1.205 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.206 + F const& f, G const& g, H const& h, I const& i, J const& j) const
1.207 + {
1.208 + return new T(a, b, c, d, e, f, g, h, i, j);
1.209 + }
1.210 +
1.211 + template <
1.212 + typename A, typename B, typename C, typename D, typename E,
1.213 + typename F, typename G, typename H, typename I, typename J,
1.214 + typename K
1.215 + >
1.216 + T* operator()(
1.217 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.218 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.219 + K const& k) const
1.220 + {
1.221 + return new T(a, b, c, d, e, f, g, h, i, j, k);
1.222 + }
1.223 +
1.224 + template <
1.225 + typename A, typename B, typename C, typename D, typename E,
1.226 + typename F, typename G, typename H, typename I, typename J,
1.227 + typename K, typename L
1.228 + >
1.229 + T* operator()(
1.230 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.231 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.232 + K const& k, L const& l) const
1.233 + {
1.234 + return new T(a, b, c, d, e, f, g, h, i, j, k, l);
1.235 + }
1.236 +
1.237 +#if PHOENIX_CONSTRUCT_LIMIT > 12
1.238 + template <
1.239 + typename A, typename B, typename C, typename D, typename E,
1.240 + typename F, typename G, typename H, typename I, typename J,
1.241 + typename K, typename L, typename M
1.242 + >
1.243 + T* operator()(
1.244 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.245 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.246 + K const& k, L const& l, M const& m) const
1.247 + {
1.248 + return new T(a, b, c, d, e, f, g, h, i, j, k, l, m);
1.249 + }
1.250 +
1.251 + template <
1.252 + typename A, typename B, typename C, typename D, typename E,
1.253 + typename F, typename G, typename H, typename I, typename J,
1.254 + typename K, typename L, typename M, typename N
1.255 + >
1.256 + T* operator()(
1.257 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.258 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.259 + K const& k, L const& l, M const& m, N const& n) const
1.260 + {
1.261 + return new T(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
1.262 + }
1.263 +
1.264 + template <
1.265 + typename A, typename B, typename C, typename D, typename E,
1.266 + typename F, typename G, typename H, typename I, typename J,
1.267 + typename K, typename L, typename M, typename N, typename O
1.268 + >
1.269 + T* operator()(
1.270 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.271 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.272 + K const& k, L const& l, M const& m, N const& n, O const& o) const
1.273 + {
1.274 + return new T(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
1.275 + }
1.276 +
1.277 +#endif
1.278 +#endif
1.279 +#endif
1.280 +#endif
1.281 +};
1.282 +
1.283 +template <typename T>
1.284 +struct new_1 {
1.285 +
1.286 + template <
1.287 + typename A
1.288 + >
1.289 + struct result { typedef T* type; };
1.290 +
1.291 + template <typename A>
1.292 + T* operator()(A const& a) const {
1.293 + return new T(a);
1.294 + }
1.295 +
1.296 +};
1.297 +
1.298 +template <typename T>
1.299 +struct new_2 {
1.300 +
1.301 + template <
1.302 + typename A
1.303 + , typename B
1.304 + >
1.305 + struct result { typedef T* type; };
1.306 +
1.307 + template <typename A, typename B>
1.308 + T* operator()(A const& a, B const& b) const {
1.309 + return new T(a, b);
1.310 + }
1.311 +
1.312 +};
1.313 +
1.314 +template <typename T>
1.315 +struct new_3 {
1.316 +
1.317 + template <
1.318 + typename A
1.319 + , typename B
1.320 + , typename C
1.321 + >
1.322 + struct result { typedef T* type; };
1.323 +
1.324 + template <typename A, typename B, typename C>
1.325 + T* operator()(A const& a, B const& b, C const& c) const {
1.326 + return new T(a, b, c);
1.327 + }
1.328 +};
1.329 +
1.330 +#if PHOENIX_CONSTRUCT_LIMIT > 3
1.331 +template <typename T>
1.332 +struct new_4 {
1.333 +
1.334 + template <
1.335 + typename A
1.336 + , typename B
1.337 + , typename C
1.338 + , typename D
1.339 + >
1.340 + struct result { typedef T* type; };
1.341 +
1.342 +
1.343 + template <
1.344 + typename A, typename B, typename C, typename D
1.345 + >
1.346 + T* operator()(
1.347 + A const& a, B const& b, C const& c, D const& d) const
1.348 + {
1.349 + return new T(a, b, c, d);
1.350 + }
1.351 +};
1.352 +
1.353 +
1.354 +template <typename T>
1.355 +struct new_5 {
1.356 +
1.357 + template <
1.358 + typename A
1.359 + , typename B
1.360 + , typename C
1.361 + , typename D
1.362 + , typename E
1.363 + >
1.364 + struct result { typedef T* type; };
1.365 +
1.366 + template <
1.367 + typename A, typename B, typename C, typename D, typename E
1.368 + >
1.369 + T* operator()(
1.370 + A const& a, B const& b, C const& c, D const& d, E const& e) const
1.371 + {
1.372 + return new T(a, b, c, d, e);
1.373 + }
1.374 +};
1.375 +
1.376 +
1.377 +template <typename T>
1.378 +struct new_6 {
1.379 +
1.380 + template <
1.381 + typename A
1.382 + , typename B
1.383 + , typename C
1.384 + , typename D
1.385 + , typename E
1.386 + , typename F
1.387 + >
1.388 + struct result { typedef T* type; };
1.389 +
1.390 + template <
1.391 + typename A, typename B, typename C, typename D, typename E,
1.392 + typename F
1.393 + >
1.394 + T* operator()(
1.395 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.396 + F const& f) const
1.397 + {
1.398 + return new T(a, b, c, d, e, f);
1.399 + }
1.400 +};
1.401 +#endif
1.402 +
1.403 +
1.404 +#if PHOENIX_CONSTRUCT_LIMIT > 6
1.405 +template <typename T>
1.406 +struct new_7 {
1.407 +
1.408 + template <
1.409 + typename A
1.410 + , typename B
1.411 + , typename C
1.412 + , typename D
1.413 + , typename E
1.414 + , typename F
1.415 + , typename G
1.416 + >
1.417 + struct result { typedef T* type; };
1.418 +
1.419 + template <
1.420 + typename A, typename B, typename C, typename D, typename E,
1.421 + typename F, typename G
1.422 + >
1.423 + T* operator()(
1.424 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.425 + F const& f, G const& g) const
1.426 + {
1.427 + return new T(a, b, c, d, e, f, g);
1.428 + }
1.429 +};
1.430 +
1.431 +template <typename T>
1.432 +struct new_8 {
1.433 +
1.434 + template <
1.435 + typename A
1.436 + , typename B
1.437 + , typename C
1.438 + , typename D
1.439 + , typename E
1.440 + , typename F
1.441 + , typename G
1.442 + , typename H
1.443 + >
1.444 + struct result { typedef T* type; };
1.445 +
1.446 + template <
1.447 + typename A, typename B, typename C, typename D, typename E,
1.448 + typename F, typename G, typename H
1.449 + >
1.450 + T* operator()(
1.451 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.452 + F const& f, G const& g, H const& h) const
1.453 + {
1.454 + return new T(a, b, c, d, e, f, g, h);
1.455 + }
1.456 +};
1.457 +
1.458 +template <typename T>
1.459 +struct new_9 {
1.460 +
1.461 + template <
1.462 + typename A
1.463 + , typename B
1.464 + , typename C
1.465 + , typename D
1.466 + , typename E
1.467 + , typename F
1.468 + , typename G
1.469 + , typename H
1.470 + , typename I
1.471 + >
1.472 + struct result { typedef T* type; };
1.473 +
1.474 + template <
1.475 + typename A, typename B, typename C, typename D, typename E,
1.476 + typename F, typename G, typename H, typename I
1.477 + >
1.478 + T* operator()(
1.479 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.480 + F const& f, G const& g, H const& h, I const& i) const
1.481 + {
1.482 + return new T(a, b, c, d, e, f, g, h, i);
1.483 + }
1.484 +};
1.485 +#endif
1.486 +
1.487 +
1.488 +#if PHOENIX_CONSTRUCT_LIMIT > 9
1.489 +template <typename T>
1.490 +struct new_10 {
1.491 +
1.492 + template <
1.493 + typename A
1.494 + , typename B
1.495 + , typename C
1.496 + , typename D
1.497 + , typename E
1.498 + , typename F
1.499 + , typename G
1.500 + , typename H
1.501 + , typename I
1.502 + , typename J
1.503 + >
1.504 + struct result { typedef T* type; };
1.505 +
1.506 +
1.507 + template <
1.508 + typename A, typename B, typename C, typename D, typename E,
1.509 + typename F, typename G, typename H, typename I, typename J
1.510 + >
1.511 + T* operator()(
1.512 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.513 + F const& f, G const& g, H const& h, I const& i, J const& j) const
1.514 + {
1.515 + return new T(a, b, c, d, e, f, g, h, i, j);
1.516 + }
1.517 +};
1.518 +
1.519 +template <typename T>
1.520 +struct new_11 {
1.521 +
1.522 + template <
1.523 + typename A
1.524 + , typename B
1.525 + , typename C
1.526 + , typename D
1.527 + , typename E
1.528 + , typename F
1.529 + , typename G
1.530 + , typename H
1.531 + , typename I
1.532 + , typename J
1.533 + , typename K
1.534 + >
1.535 + struct result { typedef T* type; };
1.536 +
1.537 +
1.538 + template <
1.539 + typename A, typename B, typename C, typename D, typename E,
1.540 + typename F, typename G, typename H, typename I, typename J,
1.541 + typename K
1.542 + >
1.543 + T* operator()(
1.544 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.545 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.546 + K const& k) const
1.547 + {
1.548 + return new T(a, b, c, d, e, f, g, h, i, j, k);
1.549 + }
1.550 +
1.551 +};
1.552 +
1.553 +template <typename T>
1.554 +struct new_12 {
1.555 +
1.556 + template <
1.557 + typename A
1.558 + , typename B
1.559 + , typename C
1.560 + , typename D
1.561 + , typename E
1.562 + , typename F
1.563 + , typename G
1.564 + , typename H
1.565 + , typename I
1.566 + , typename J
1.567 + , typename K
1.568 + , typename L
1.569 + >
1.570 + struct result { typedef T* type; };
1.571 +
1.572 +
1.573 + template <
1.574 + typename A, typename B, typename C, typename D, typename E,
1.575 + typename F, typename G, typename H, typename I, typename J,
1.576 + typename K, typename L
1.577 + >
1.578 + T* operator()(
1.579 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.580 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.581 + K const& k, L const& l) const
1.582 + {
1.583 + return new T(a, b, c, d, f, e, g, h, i, j, k, l);
1.584 + }
1.585 +};
1.586 +#endif
1.587 +
1.588 +#if PHOENIX_CONSTRUCT_LIMIT > 12
1.589 +template <typename T>
1.590 +struct new_13 {
1.591 +
1.592 + template <
1.593 + typename A
1.594 + , typename B
1.595 + , typename C
1.596 + , typename D
1.597 + , typename E
1.598 + , typename F
1.599 + , typename G
1.600 + , typename H
1.601 + , typename I
1.602 + , typename J
1.603 + , typename K
1.604 + , typename L
1.605 + , typename M
1.606 + >
1.607 + struct result { typedef T* type; };
1.608 +
1.609 +
1.610 + template <
1.611 + typename A, typename B, typename C, typename D, typename E,
1.612 + typename F, typename G, typename H, typename I, typename J,
1.613 + typename K, typename L, typename M
1.614 + >
1.615 + T* operator()(
1.616 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.617 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.618 + K const& k, L const& l, M const& m) const
1.619 + {
1.620 + return new T(a, b, c, d, e, f, g, h, i, j, k, l, m);
1.621 + }
1.622 +};
1.623 +
1.624 +template <typename T>
1.625 +struct new_14 {
1.626 +
1.627 + template <
1.628 + typename A
1.629 + , typename B
1.630 + , typename C
1.631 + , typename D
1.632 + , typename E
1.633 + , typename F
1.634 + , typename G
1.635 + , typename H
1.636 + , typename I
1.637 + , typename J
1.638 + , typename K
1.639 + , typename L
1.640 + , typename M
1.641 + , typename N
1.642 + >
1.643 + struct result { typedef T* type; };
1.644 +
1.645 +
1.646 + template <
1.647 + typename A, typename B, typename C, typename D, typename E,
1.648 + typename F, typename G, typename H, typename I, typename J,
1.649 + typename K, typename L, typename M, typename N
1.650 + >
1.651 + T* operator()(
1.652 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.653 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.654 + K const& k, L const& l, M const& m, N const& n) const
1.655 + {
1.656 + return new T(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
1.657 + }
1.658 +
1.659 +};
1.660 +
1.661 +template <typename T>
1.662 +struct new_15 {
1.663 +
1.664 + template <
1.665 + typename A
1.666 + , typename B
1.667 + , typename C
1.668 + , typename D
1.669 + , typename E
1.670 + , typename F
1.671 + , typename G
1.672 + , typename H
1.673 + , typename I
1.674 + , typename J
1.675 + , typename K
1.676 + , typename L
1.677 + , typename M
1.678 + , typename N
1.679 + , typename O
1.680 + >
1.681 + struct result { typedef T* type; };
1.682 +
1.683 +
1.684 + template <
1.685 + typename A, typename B, typename C, typename D, typename E,
1.686 + typename F, typename G, typename H, typename I, typename J,
1.687 + typename K, typename L, typename M, typename N, typename O
1.688 + >
1.689 + T* operator()(
1.690 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.691 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.692 + K const& k, L const& l, M const& m, N const& n, O const& o) const
1.693 + {
1.694 + return new T(a, b, c, d, f, e, g, h, i, j, k, l, m, n, o);
1.695 + }
1.696 +
1.697 +};
1.698 +#endif
1.699 +
1.700 +
1.701 +#if defined(__BORLANDC__) || (defined(__MWERKS__) && (__MWERKS__ <= 0x3002))
1.702 +
1.703 +///////////////////////////////////////////////////////////////////////////////
1.704 +//
1.705 +// The following specializations are needed because Borland and CodeWarrior
1.706 +// does not accept default template arguments in nested template classes in
1.707 +// classes (i.e new_l::result)
1.708 +//
1.709 +///////////////////////////////////////////////////////////////////////////////
1.710 +template <typename T, typename TupleT>
1.711 +struct composite0_result<new_l_0<T>, TupleT> {
1.712 +
1.713 + typedef T* type;
1.714 +};
1.715 +
1.716 +//////////////////////////////////
1.717 +template <typename T, typename TupleT,
1.718 + typename A>
1.719 +struct composite1_result<new_l<T>, TupleT, A> {
1.720 +
1.721 + typedef T* type;
1.722 +};
1.723 +
1.724 +//////////////////////////////////
1.725 +template <typename T, typename TupleT,
1.726 + typename A, typename B>
1.727 +struct composite2_result<new_l<T>, TupleT, A, B> {
1.728 +
1.729 + typedef T* type;
1.730 +};
1.731 +
1.732 +//////////////////////////////////
1.733 +template <typename T, typename TupleT,
1.734 + typename A, typename B, typename C>
1.735 +struct composite3_result<new_l<T>, TupleT, A, B, C> {
1.736 +
1.737 + typedef T* type;
1.738 +};
1.739 +
1.740 +#if PHOENIX_LIMIT > 3
1.741 +//////////////////////////////////
1.742 +template <typename T, typename TupleT,
1.743 + typename A, typename B, typename C, typename D>
1.744 +struct composite4_result<new_l<T>, TupleT,
1.745 + A, B, C, D> {
1.746 +
1.747 + typedef T* type;
1.748 +};
1.749 +
1.750 +//////////////////////////////////
1.751 +template <typename T, typename TupleT,
1.752 + typename A, typename B, typename C, typename D, typename E>
1.753 +struct composite5_result<new_l<T>, TupleT,
1.754 + A, B, C, D, E> {
1.755 +
1.756 + typedef T* type;
1.757 +};
1.758 +
1.759 +//////////////////////////////////
1.760 +template <typename T, typename TupleT,
1.761 + typename A, typename B, typename C, typename D, typename E,
1.762 + typename F>
1.763 +struct composite6_result<new_l<T>, TupleT,
1.764 + A, B, C, D, E, F> {
1.765 +
1.766 + typedef T* type;
1.767 +};
1.768 +
1.769 +#if PHOENIX_LIMIT > 6
1.770 +//////////////////////////////////
1.771 +template <typename T, typename TupleT,
1.772 + typename A, typename B, typename C, typename D, typename E,
1.773 + typename F, typename G>
1.774 +struct composite7_result<new_l<T>, TupleT,
1.775 + A, B, C, D, E, F, G> {
1.776 +
1.777 + typedef T* type;
1.778 +};
1.779 +
1.780 +//////////////////////////////////
1.781 +template <typename T, typename TupleT,
1.782 + typename A, typename B, typename C, typename D, typename E,
1.783 + typename F, typename G, typename H>
1.784 +struct composite8_result<new_l<T>, TupleT,
1.785 + A, B, C, D, E, F, G, H> {
1.786 +
1.787 + typedef T* type;
1.788 +};
1.789 +
1.790 +//////////////////////////////////
1.791 +template <typename T, typename TupleT,
1.792 + typename A, typename B, typename C, typename D, typename E,
1.793 + typename F, typename G, typename H, typename I>
1.794 +struct composite9_result<new_l<T>, TupleT,
1.795 + A, B, C, D, E, F, G, H, I> {
1.796 +
1.797 + typedef T* type;
1.798 +};
1.799 +
1.800 +#if PHOENIX_LIMIT > 9
1.801 +//////////////////////////////////
1.802 +template <typename T, typename TupleT,
1.803 + typename A, typename B, typename C, typename D, typename E,
1.804 + typename F, typename G, typename H, typename I, typename J>
1.805 +struct composite10_result<new_l<T>, TupleT,
1.806 + A, B, C, D, E, F, G, H, I, J> {
1.807 +
1.808 + typedef T* type;
1.809 +};
1.810 +
1.811 +//////////////////////////////////
1.812 +template <typename T, typename TupleT,
1.813 + typename A, typename B, typename C, typename D, typename E,
1.814 + typename F, typename G, typename H, typename I, typename J,
1.815 + typename K>
1.816 +struct composite11_result<new_l<T>, TupleT,
1.817 + A, B, C, D, E, F, G, H, I, J, K> {
1.818 +
1.819 + typedef T* type;
1.820 +};
1.821 +
1.822 +//////////////////////////////////
1.823 +template <typename T, typename TupleT,
1.824 + typename A, typename B, typename C, typename D, typename E,
1.825 + typename F, typename G, typename H, typename I, typename J,
1.826 + typename K, typename L>
1.827 +struct composite12_result<new_l<T>, TupleT,
1.828 + A, B, C, D, E, F, G, H, I, J, K, L> {
1.829 +
1.830 + typedef T* type;
1.831 +};
1.832 +
1.833 +#if PHOENIX_LIMIT > 12
1.834 +//////////////////////////////////
1.835 +template <typename T, typename TupleT,
1.836 + typename A, typename B, typename C, typename D, typename E,
1.837 + typename F, typename G, typename H, typename I, typename J,
1.838 + typename K, typename L, typename M>
1.839 +struct composite13_result<new_l<T>, TupleT,
1.840 + A, B, C, D, E, F, G, H, I, J, K, L, M> {
1.841 +
1.842 + typedef T* type;
1.843 +};
1.844 +
1.845 +//////////////////////////////////
1.846 +template <typename T, typename TupleT,
1.847 + typename A, typename B, typename C, typename D, typename E,
1.848 + typename F, typename G, typename H, typename I, typename J,
1.849 + typename K, typename L, typename M, typename N>
1.850 +struct composite14_result<new_l<T>, TupleT,
1.851 + A, B, C, D, E, F, G, H, I, J, K, L, M, N> {
1.852 +
1.853 + typedef T* type;
1.854 +};
1.855 +
1.856 +//////////////////////////////////
1.857 +template <typename T, typename TupleT,
1.858 + typename A, typename B, typename C, typename D, typename E,
1.859 + typename F, typename G, typename H, typename I, typename J,
1.860 + typename K, typename L, typename M, typename N, typename O>
1.861 +struct composite15_result<new_l<T>, TupleT,
1.862 + A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> {
1.863 +
1.864 + typedef T* type;
1.865 +};
1.866 +
1.867 +#endif
1.868 +#endif
1.869 +#endif
1.870 +#endif
1.871 +#endif
1.872 +
1.873 +//////////////////////////////////
1.874 +template <typename T>
1.875 +inline typename impl::make_composite<new_l_0<T> >::type
1.876 +new_()
1.877 +{
1.878 + typedef impl::make_composite<new_l_0<T> > make_composite_t;
1.879 + typedef typename make_composite_t::type type_t;
1.880 + typedef typename make_composite_t::composite_type composite_type_t;
1.881 +
1.882 + return type_t(composite_type_t(new_l_0<T>()));
1.883 +}
1.884 +
1.885 +//////////////////////////////////
1.886 +template <typename T, typename A>
1.887 +inline typename impl::make_composite<new_1<T>, A>::type
1.888 +new_(A const& a)
1.889 +{
1.890 + typedef impl::make_composite<new_1<T>, A> make_composite_t;
1.891 + typedef typename make_composite_t::type type_t;
1.892 + typedef typename make_composite_t::composite_type composite_type_t;
1.893 +
1.894 + return type_t(composite_type_t(new_1<T>(),
1.895 + as_actor<A>::convert(a)
1.896 + ));
1.897 +}
1.898 +
1.899 +//////////////////////////////////
1.900 +template <typename T, typename A, typename B>
1.901 +inline typename impl::make_composite<new_2<T>, A, B>::type
1.902 +new_(A const& a, B const& b)
1.903 +{
1.904 + typedef impl::make_composite<new_2<T>, A, B> make_composite_t;
1.905 + typedef typename make_composite_t::type type_t;
1.906 + typedef typename make_composite_t::composite_type composite_type_t;
1.907 +
1.908 + return type_t(composite_type_t(new_2<T>(),
1.909 + as_actor<A>::convert(a),
1.910 + as_actor<B>::convert(b)
1.911 + ));
1.912 +}
1.913 +
1.914 +//////////////////////////////////
1.915 +template <typename T, typename A, typename B, typename C>
1.916 +inline typename impl::make_composite<new_3<T>, A, B, C>::type
1.917 +new_(A const& a, B const& b, C const& c)
1.918 +{
1.919 + typedef impl::make_composite<new_3<T>, A, B, C> make_composite_t;
1.920 + typedef typename make_composite_t::type type_t;
1.921 + typedef typename make_composite_t::composite_type composite_type_t;
1.922 +
1.923 + return type_t(composite_type_t(new_3<T>(),
1.924 + as_actor<A>::convert(a),
1.925 + as_actor<B>::convert(b),
1.926 + as_actor<C>::convert(c)
1.927 + ));
1.928 +}
1.929 +
1.930 +#if PHOENIX_CONSTRUCT_LIMIT > 3
1.931 +//////////////////////////////////
1.932 +template <
1.933 + typename T, typename A, typename B, typename C, typename D
1.934 +>
1.935 +inline typename impl::make_composite<new_4<T>, A, B, C, D>::type
1.936 +new_(
1.937 + A const& a, B const& b, C const& c, D const& d)
1.938 +{
1.939 + typedef
1.940 + impl::make_composite<new_4<T>, A, B, C, D>
1.941 + make_composite_t;
1.942 + typedef typename make_composite_t::type type_t;
1.943 + typedef typename make_composite_t::composite_type composite_type_t;
1.944 +
1.945 + return type_t(composite_type_t(new_4<T>(),
1.946 + as_actor<A>::convert(a),
1.947 + as_actor<B>::convert(b),
1.948 + as_actor<C>::convert(c),
1.949 + as_actor<D>::convert(d)
1.950 + ));
1.951 +}
1.952 +
1.953 +//////////////////////////////////
1.954 +template <
1.955 + typename T, typename A, typename B, typename C, typename D, typename E
1.956 +>
1.957 +inline typename impl::make_composite<new_5<T>, A, B, C, D, E>::type
1.958 +new_(
1.959 + A const& a, B const& b, C const& c, D const& d, E const& e)
1.960 +{
1.961 + typedef
1.962 + impl::make_composite<new_5<T>, A, B, C, D, E>
1.963 + make_composite_t;
1.964 + typedef typename make_composite_t::type type_t;
1.965 + typedef typename make_composite_t::composite_type composite_type_t;
1.966 +
1.967 + return type_t(composite_type_t(new_5<T>(),
1.968 + as_actor<A>::convert(a),
1.969 + as_actor<B>::convert(b),
1.970 + as_actor<C>::convert(c),
1.971 + as_actor<D>::convert(d),
1.972 + as_actor<E>::convert(e)
1.973 + ));
1.974 +}
1.975 +
1.976 +//////////////////////////////////
1.977 +template <
1.978 + typename T, typename A, typename B, typename C, typename D, typename E,
1.979 + typename F
1.980 +>
1.981 +inline typename impl::make_composite<new_6<T>, A, B, C, D, E, F>::type
1.982 +new_(
1.983 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.984 + F const& f)
1.985 +{
1.986 + typedef
1.987 + impl::make_composite<new_6<T>, A, B, C, D, E, F>
1.988 + make_composite_t;
1.989 + typedef typename make_composite_t::type type_t;
1.990 + typedef typename make_composite_t::composite_type composite_type_t;
1.991 +
1.992 + return type_t(composite_type_t(new_6<T>(),
1.993 + as_actor<A>::convert(a),
1.994 + as_actor<B>::convert(b),
1.995 + as_actor<C>::convert(c),
1.996 + as_actor<D>::convert(d),
1.997 + as_actor<E>::convert(e),
1.998 + as_actor<F>::convert(f)
1.999 + ));
1.1000 +}
1.1001 +
1.1002 +#if PHOENIX_CONSTRUCT_LIMIT > 6
1.1003 +//////////////////////////////////
1.1004 +template <
1.1005 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1006 + typename F, typename G
1.1007 +>
1.1008 +inline typename impl::make_composite<new_7<T>, A, B, C, D, E, F, G>::type
1.1009 +new_(
1.1010 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1011 + F const& f, G const& g)
1.1012 +{
1.1013 + typedef
1.1014 + impl::make_composite<new_7<T>, A, B, C, D, E, F, G>
1.1015 + make_composite_t;
1.1016 + typedef typename make_composite_t::type type_t;
1.1017 + typedef typename make_composite_t::composite_type composite_type_t;
1.1018 +
1.1019 + return type_t(composite_type_t(new_7<T>(),
1.1020 + as_actor<A>::convert(a),
1.1021 + as_actor<B>::convert(b),
1.1022 + as_actor<C>::convert(c),
1.1023 + as_actor<D>::convert(d),
1.1024 + as_actor<E>::convert(e),
1.1025 + as_actor<F>::convert(f),
1.1026 + as_actor<G>::convert(g)
1.1027 + ));
1.1028 +}
1.1029 +
1.1030 +//////////////////////////////////
1.1031 +template <
1.1032 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1033 + typename F, typename G, typename H
1.1034 +>
1.1035 +inline typename impl::make_composite<new_8<T>, A, B, C, D, E, F, G, H>::type
1.1036 +new_(
1.1037 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1038 + F const& f, G const& g, H const& h)
1.1039 +{
1.1040 + typedef
1.1041 + impl::make_composite<new_8<T>, A, B, C, D, E, F, G, H>
1.1042 + make_composite_t;
1.1043 + typedef typename make_composite_t::type type_t;
1.1044 + typedef typename make_composite_t::composite_type composite_type_t;
1.1045 +
1.1046 + return type_t(composite_type_t(new_8<T>(),
1.1047 + as_actor<A>::convert(a),
1.1048 + as_actor<B>::convert(b),
1.1049 + as_actor<C>::convert(c),
1.1050 + as_actor<D>::convert(d),
1.1051 + as_actor<E>::convert(e),
1.1052 + as_actor<F>::convert(f),
1.1053 + as_actor<G>::convert(g),
1.1054 + as_actor<H>::convert(h)
1.1055 + ));
1.1056 +}
1.1057 +
1.1058 +//////////////////////////////////
1.1059 +template <
1.1060 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1061 + typename F, typename G, typename H, typename I
1.1062 +>
1.1063 +inline typename impl::make_composite<new_9<T>, A, B, C, D, E, F, G, H, I>::type
1.1064 +new_(
1.1065 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1066 + F const& f, G const& g, H const& h, I const& i)
1.1067 +{
1.1068 + typedef
1.1069 + impl::make_composite<new_9<T>, A, B, C, D, E, F, G, H, I>
1.1070 + make_composite_t;
1.1071 + typedef typename make_composite_t::type type_t;
1.1072 + typedef typename make_composite_t::composite_type composite_type_t;
1.1073 +
1.1074 + return type_t(composite_type_t(new_9<T>(),
1.1075 + as_actor<A>::convert(a),
1.1076 + as_actor<B>::convert(b),
1.1077 + as_actor<C>::convert(c),
1.1078 + as_actor<D>::convert(d),
1.1079 + as_actor<E>::convert(e),
1.1080 + as_actor<F>::convert(f),
1.1081 + as_actor<G>::convert(g),
1.1082 + as_actor<H>::convert(h),
1.1083 + as_actor<I>::convert(i)
1.1084 + ));
1.1085 +}
1.1086 +
1.1087 +#if PHOENIX_CONSTRUCT_LIMIT > 9
1.1088 +//////////////////////////////////
1.1089 +template <
1.1090 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1091 + typename F, typename G, typename H, typename I, typename J
1.1092 +>
1.1093 +inline typename impl::make_composite<
1.1094 + new_10<T>, A, B, C, D, E, F, G, H, I, J>::type
1.1095 +new_(
1.1096 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1097 + F const& f, G const& g, H const& h, I const& i, J const& j)
1.1098 +{
1.1099 + typedef
1.1100 + impl::make_composite<
1.1101 + new_10<T>, A, B, C, D, E, F, G, H, I, J
1.1102 + >
1.1103 + make_composite_t;
1.1104 + typedef typename make_composite_t::type type_t;
1.1105 + typedef typename make_composite_t::composite_type composite_type_t;
1.1106 +
1.1107 + return type_t(composite_type_t(new_10<T>(),
1.1108 + as_actor<A>::convert(a),
1.1109 + as_actor<B>::convert(b),
1.1110 + as_actor<C>::convert(c),
1.1111 + as_actor<D>::convert(d),
1.1112 + as_actor<E>::convert(e),
1.1113 + as_actor<F>::convert(f),
1.1114 + as_actor<G>::convert(g),
1.1115 + as_actor<H>::convert(h),
1.1116 + as_actor<I>::convert(i),
1.1117 + as_actor<J>::convert(j)
1.1118 + ));
1.1119 +}
1.1120 +
1.1121 +//////////////////////////////////
1.1122 +template <
1.1123 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1124 + typename F, typename G, typename H, typename I, typename J, typename K
1.1125 +>
1.1126 +inline typename impl::make_composite<
1.1127 + new_11<T>, A, B, C, D, E, F, G, H, I, J, K>::type
1.1128 +new_(
1.1129 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1130 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.1131 + K const& k)
1.1132 +{
1.1133 + typedef
1.1134 + impl::make_composite<
1.1135 + new_11<T>, A, B, C, D, E, F, G, H, I, J, K
1.1136 + >
1.1137 + make_composite_t;
1.1138 + typedef typename make_composite_t::type type_t;
1.1139 + typedef typename make_composite_t::composite_type composite_type_t;
1.1140 +
1.1141 + return type_t(composite_type_t(new_11<T>(),
1.1142 + as_actor<A>::convert(a),
1.1143 + as_actor<B>::convert(b),
1.1144 + as_actor<C>::convert(c),
1.1145 + as_actor<D>::convert(d),
1.1146 + as_actor<E>::convert(e),
1.1147 + as_actor<F>::convert(f),
1.1148 + as_actor<G>::convert(g),
1.1149 + as_actor<H>::convert(h),
1.1150 + as_actor<I>::convert(i),
1.1151 + as_actor<J>::convert(j),
1.1152 + as_actor<K>::convert(k)
1.1153 + ));
1.1154 +}
1.1155 +
1.1156 +//////////////////////////////////
1.1157 +template <
1.1158 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1159 + typename F, typename G, typename H, typename I, typename J, typename K,
1.1160 + typename L
1.1161 +>
1.1162 +inline typename impl::make_composite<
1.1163 + new_12<T>, A, B, C, D, E, F, G, H, I, J, K, L>::type
1.1164 +new_(
1.1165 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1166 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.1167 + K const& k, L const& l)
1.1168 +{
1.1169 + typedef
1.1170 + impl::make_composite<
1.1171 + new_12<T>, A, B, C, D, E, F, G, H, I, J, K, L
1.1172 + >
1.1173 + make_composite_t;
1.1174 + typedef typename make_composite_t::type type_t;
1.1175 + typedef typename make_composite_t::composite_type composite_type_t;
1.1176 +
1.1177 + return type_t(composite_type_t(new_12<T>(),
1.1178 + as_actor<A>::convert(a),
1.1179 + as_actor<B>::convert(b),
1.1180 + as_actor<C>::convert(c),
1.1181 + as_actor<D>::convert(d),
1.1182 + as_actor<E>::convert(e),
1.1183 + as_actor<F>::convert(f),
1.1184 + as_actor<G>::convert(g),
1.1185 + as_actor<H>::convert(h),
1.1186 + as_actor<I>::convert(i),
1.1187 + as_actor<J>::convert(j),
1.1188 + as_actor<K>::convert(k),
1.1189 + as_actor<L>::convert(l)
1.1190 + ));
1.1191 +}
1.1192 +
1.1193 +#if PHOENIX_CONSTRUCT_LIMIT > 12
1.1194 +//////////////////////////////////
1.1195 +template <
1.1196 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1197 + typename F, typename G, typename H, typename I, typename J, typename K,
1.1198 + typename L, typename M
1.1199 +>
1.1200 +inline typename impl::make_composite<
1.1201 + new_13<T>, A, B, C, D, E, F, G, H, I, J, K, L, M>::type
1.1202 +new_(
1.1203 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1204 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.1205 + K const& k, L const& l, M const& m)
1.1206 +{
1.1207 + typedef
1.1208 + impl::make_composite<
1.1209 + new_13<T>, A, B, C, D, E, F, G, H, I, J, K, L, M
1.1210 + >
1.1211 + make_composite_t;
1.1212 + typedef typename make_composite_t::type type_t;
1.1213 + typedef typename make_composite_t::composite_type composite_type_t;
1.1214 +
1.1215 + return type_t(composite_type_t(new_13<T>(),
1.1216 + as_actor<A>::convert(a),
1.1217 + as_actor<B>::convert(b),
1.1218 + as_actor<C>::convert(c),
1.1219 + as_actor<D>::convert(d),
1.1220 + as_actor<E>::convert(e),
1.1221 + as_actor<F>::convert(f),
1.1222 + as_actor<G>::convert(g),
1.1223 + as_actor<H>::convert(h),
1.1224 + as_actor<I>::convert(i),
1.1225 + as_actor<J>::convert(j),
1.1226 + as_actor<K>::convert(k),
1.1227 + as_actor<L>::convert(l),
1.1228 + as_actor<M>::convert(m)
1.1229 + ));
1.1230 +}
1.1231 +
1.1232 +//////////////////////////////////
1.1233 +template <
1.1234 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1235 + typename F, typename G, typename H, typename I, typename J, typename K,
1.1236 + typename L, typename M, typename N
1.1237 +>
1.1238 +inline typename impl::make_composite<
1.1239 + new_14<T>, A, B, C, D, E, F, G, H, I, J, K, L, M>::type
1.1240 +new_(
1.1241 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1242 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.1243 + K const& k, L const& l, M const& m, N const& n)
1.1244 +{
1.1245 + typedef
1.1246 + impl::make_composite<
1.1247 + new_14<T>, A, B, C, D, E, F, G, H, I, J, K, L, M, N
1.1248 + >
1.1249 + make_composite_t;
1.1250 + typedef typename make_composite_t::type type_t;
1.1251 + typedef typename make_composite_t::composite_type composite_type_t;
1.1252 +
1.1253 + return type_t(composite_type_t(new_14<T>(),
1.1254 + as_actor<A>::convert(a),
1.1255 + as_actor<B>::convert(b),
1.1256 + as_actor<C>::convert(c),
1.1257 + as_actor<D>::convert(d),
1.1258 + as_actor<E>::convert(e),
1.1259 + as_actor<F>::convert(f),
1.1260 + as_actor<G>::convert(g),
1.1261 + as_actor<H>::convert(h),
1.1262 + as_actor<I>::convert(i),
1.1263 + as_actor<J>::convert(j),
1.1264 + as_actor<K>::convert(k),
1.1265 + as_actor<L>::convert(l),
1.1266 + as_actor<M>::convert(m),
1.1267 + as_actor<N>::convert(n)
1.1268 + ));
1.1269 +}
1.1270 +
1.1271 +//////////////////////////////////
1.1272 +template <
1.1273 + typename T, typename A, typename B, typename C, typename D, typename E,
1.1274 + typename F, typename G, typename H, typename I, typename J, typename K,
1.1275 + typename L, typename M, typename N, typename O
1.1276 +>
1.1277 +inline typename impl::make_composite<
1.1278 + new_15<T>, A, B, C, D, E, F, G, H, I, J, K, L, M, O>::type
1.1279 +new_(
1.1280 + A const& a, B const& b, C const& c, D const& d, E const& e,
1.1281 + F const& f, G const& g, H const& h, I const& i, J const& j,
1.1282 + K const& k, L const& l, M const& m, N const& n, O const& o)
1.1283 +{
1.1284 + typedef
1.1285 + impl::make_composite<
1.1286 + new_15<T>, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O
1.1287 + >
1.1288 + make_composite_t;
1.1289 + typedef typename make_composite_t::type type_t;
1.1290 + typedef typename make_composite_t::composite_type composite_type_t;
1.1291 +
1.1292 + return type_t(composite_type_t(new_15<T>(),
1.1293 + as_actor<A>::convert(a),
1.1294 + as_actor<B>::convert(b),
1.1295 + as_actor<C>::convert(c),
1.1296 + as_actor<D>::convert(d),
1.1297 + as_actor<E>::convert(e),
1.1298 + as_actor<F>::convert(f),
1.1299 + as_actor<G>::convert(g),
1.1300 + as_actor<H>::convert(h),
1.1301 + as_actor<I>::convert(i),
1.1302 + as_actor<J>::convert(j),
1.1303 + as_actor<K>::convert(k),
1.1304 + as_actor<L>::convert(l),
1.1305 + as_actor<M>::convert(m),
1.1306 + as_actor<N>::convert(n),
1.1307 + as_actor<O>::convert(o)
1.1308 + ));
1.1309 +}
1.1310 +
1.1311 +#endif
1.1312 +#endif
1.1313 +#endif
1.1314 +#endif
1.1315 +
1.1316 +///////////////////////////////////////////////////////////////////////////////
1.1317 +} // namespace phoenix
1.1318 +
1.1319 +#endif // PHOENIX_NEW_HPP