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