Chris@16: /*============================================================================= Chris@16: Copyright (c) 2001-2007 Joel de Guzman Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: ==============================================================================*/ Chris@16: #ifndef BOOST_PP_IS_ITERATING Chris@16: #ifndef PHOENIX_OBJECT_DETAIL_NEW_HPP Chris@16: #define PHOENIX_OBJECT_DETAIL_NEW_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #define BOOST_PP_ITERATION_PARAMS_1 \ Chris@16: (3, (3, PHOENIX_COMPOSITE_LIMIT, \ Chris@16: "boost/spirit/home/phoenix/object/detail/new.hpp")) Chris@16: #include BOOST_PP_ITERATE() Chris@16: Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Chris@16: // Preprocessor vertical repetition code Chris@16: // Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #else // defined(BOOST_PP_IS_ITERATING) Chris@16: Chris@16: #define N BOOST_PP_ITERATION() Chris@16: Chris@16: template Chris@16: inline actor Chris@16: , BOOST_PP_ENUM_PARAMS(N, A)>::type> Chris@16: new_(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& _)) Chris@16: { Chris@16: return compose >(BOOST_PP_ENUM_PARAMS(N, _)); Chris@16: } Chris@16: Chris@16: #undef N Chris@16: #endif // defined(BOOST_PP_IS_ITERATING) Chris@16: Chris@16: