1 /*============================================================================= 2 Copyright (c) 2001-2011 Joel de Guzman 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 ==============================================================================*/ 7 #ifndef BOOST_PP_IS_ITERATING 8 #if !defined(FUSION_MAKE_TUPLE_10032005_0843) 9 #define FUSION_MAKE_TUPLE_10032005_0843 10 11 #include <boost/preprocessor/iterate.hpp> 12 #include <boost/preprocessor/repetition/enum_params.hpp> 13 #include <boost/preprocessor/repetition/enum_binary_params.hpp> 14 #include <boost/fusion/tuple/detail/tuple.hpp> 15 #include <boost/fusion/support/detail/as_fusion_element.hpp> 16 17 namespace boost { namespace fusion 18 { 19 BOOST_FUSION_GPU_ENABLED inline tuple<> make_tuple()20 make_tuple() 21 { 22 return tuple<>(); 23 } 24 }} 25 26 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) 27 #include <boost/fusion/tuple/detail/preprocessed/make_tuple.hpp> 28 #else 29 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) 30 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/make_tuple" FUSION_MAX_VECTOR_SIZE_STR ".hpp") 31 #endif 32 33 /*============================================================================= 34 Copyright (c) 2001-2011 Joel de Guzman 35 36 Distributed under the Boost Software License, Version 1.0. (See accompanying 37 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 38 39 This is an auto-generated file. Do not edit! 40 ==============================================================================*/ 41 42 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) 43 #pragma wave option(preserve: 1) 44 #endif 45 46 namespace boost { namespace fusion 47 { 48 #define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \ 49 typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type 50 51 #define BOOST_PP_FILENAME_1 <boost/fusion/tuple/detail/make_tuple.hpp> 52 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE) 53 #include BOOST_PP_ITERATE() 54 55 #undef BOOST_FUSION_AS_FUSION_ELEMENT 56 57 }} 58 59 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) 60 #pragma wave option(output: null) 61 #endif 62 63 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES 64 65 #endif 66 #else // defined(BOOST_PP_IS_ITERATING) 67 /////////////////////////////////////////////////////////////////////////////// 68 // 69 // Preprocessor vertical repetition code 70 // 71 /////////////////////////////////////////////////////////////////////////////// 72 73 #define N BOOST_PP_ITERATION() 74 75 template <BOOST_PP_ENUM_PARAMS(N, typename T)> 76 BOOST_FUSION_GPU_ENABLED 77 inline tuple<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> make_tuple(BOOST_PP_ENUM_BINARY_PARAMS (N,T,const & arg))78 make_tuple(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg)) 79 { 80 return tuple<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>( 81 BOOST_PP_ENUM_PARAMS(N, arg)); 82 } 83 84 #undef N 85 #endif // defined(BOOST_PP_IS_ITERATING) 86 87