Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2007 Joel de Guzman
|
Chris@16
|
3
|
Chris@16
|
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
6 ==============================================================================*/
|
Chris@16
|
7 #ifndef BOOST_PP_IS_ITERATING
|
Chris@16
|
8 #ifndef PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
|
Chris@16
|
9 #define PHOENIX_OBJECT_DETAIL_CONSTRUCT_HPP
|
Chris@16
|
10
|
Chris@16
|
11 #include <boost/preprocessor/iterate.hpp>
|
Chris@16
|
12 #include <boost/preprocessor/repetition/enum_params.hpp>
|
Chris@16
|
13 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
Chris@16
|
14
|
Chris@16
|
15 #define BOOST_PP_ITERATION_PARAMS_1 \
|
Chris@16
|
16 (3, (3, PHOENIX_COMPOSITE_LIMIT, \
|
Chris@16
|
17 "boost/spirit/home/phoenix/object/detail/construct.hpp"))
|
Chris@16
|
18 #include BOOST_PP_ITERATE()
|
Chris@16
|
19
|
Chris@16
|
20 #endif
|
Chris@16
|
21
|
Chris@16
|
22 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
23 //
|
Chris@16
|
24 // Preprocessor vertical repetition code
|
Chris@16
|
25 //
|
Chris@16
|
26 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
27 #else // defined(BOOST_PP_IS_ITERATING)
|
Chris@16
|
28
|
Chris@16
|
29 #define N BOOST_PP_ITERATION()
|
Chris@16
|
30
|
Chris@16
|
31 template <typename T, BOOST_PP_ENUM_PARAMS(N, typename A)>
|
Chris@16
|
32 inline actor<typename as_composite<detail::construct_eval<T>
|
Chris@16
|
33 , BOOST_PP_ENUM_PARAMS(N, A)>::type>
|
Chris@16
|
34 construct(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& _))
|
Chris@16
|
35 {
|
Chris@16
|
36 return compose<detail::construct_eval<T> >(BOOST_PP_ENUM_PARAMS(N, _));
|
Chris@16
|
37 }
|
Chris@16
|
38
|
Chris@16
|
39 #undef N
|
Chris@16
|
40 #endif // defined(BOOST_PP_IS_ITERATING)
|
Chris@16
|
41
|
Chris@16
|
42
|