Chris@16: /*============================================================================= Chris@16: Copyright (c) 2001-2011 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: #if !defined(FUSION_TUPLE_EXPAND_10032005_0815) Chris@16: #define FUSION_TUPLE_EXPAND_10032005_0815 Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #define BOOST_PP_FILENAME_1 \ Chris@16: Chris@16: #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE) Chris@16: #include BOOST_PP_ITERATE() Chris@16: Chris@16: #endif Chris@16: #else // defined(BOOST_PP_IS_ITERATING) Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: // Chris@16: // Preprocessor vertical repetition code Chris@16: // Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: Chris@16: #define N BOOST_PP_ITERATION() Chris@16: Chris@101: BOOST_FUSION_GPU_ENABLED Chris@16: #if N == 1 Chris@16: explicit Chris@16: #endif Chris@16: tuple(BOOST_PP_ENUM_BINARY_PARAMS( Chris@101: N, typename detail::call_param::type arg)) Chris@101: : base_type(BOOST_PP_ENUM_PARAMS(N, arg)) {} Chris@16: Chris@16: template Chris@101: BOOST_FUSION_GPU_ENABLED Chris@16: tuple(tuple const& rhs) Chris@16: : base_type(rhs) {} Chris@16: Chris@16: template Chris@101: BOOST_FUSION_GPU_ENABLED Chris@16: tuple& operator=(tuple const& rhs) Chris@16: { Chris@16: base_type::operator=(rhs); Chris@16: return *this; Chris@16: } Chris@16: Chris@16: #undef N Chris@16: #endif // defined(BOOST_PP_IS_ITERATING) Chris@16: