Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:47:51

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003     Copyright (c) 2006 Dan Marsden
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 #ifndef BOOST_PP_IS_ITERATING
0009 #if !defined(FUSION_PP_MAP_TIE_20060814_1116)
0010 #define FUSION_PP_MAP_TIE_20060814_1116
0011 
0012 #include <boost/preprocessor/iterate.hpp>
0013 #include <boost/preprocessor/repetition/enum_params.hpp>
0014 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
0015 #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
0016 #include <boost/preprocessor/repetition/repeat_from_to.hpp>
0017 #include <boost/fusion/container/map/map.hpp>
0018 #include <boost/fusion/container/map/detail/cpp03/limits.hpp>
0019 #include <boost/fusion/support/pair.hpp>
0020 #include <boost/fusion/container/generation/pair_tie.hpp>
0021 #include <boost/type_traits/add_reference.hpp>
0022 
0023 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
0024 #include <boost/fusion/container/generation/detail/preprocessed/map_tie.hpp>
0025 #else
0026 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0027 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/map_tie" FUSION_MAX_MAP_SIZE_STR".hpp")
0028 #endif
0029 
0030 /*=============================================================================
0031     Copyright (c) 2001-2011 Joel de Guzman
0032 
0033     Distributed under the Boost Software License, Version 1.0. (See accompanying
0034     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0035 
0036     This is an auto-generated file. Do not edit!
0037 ==============================================================================*/
0038 
0039 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0040 #pragma wave option(preserve: 1)
0041 #endif
0042 
0043 namespace boost { namespace fusion
0044 {
0045     struct void_;
0046 
0047     namespace result_of
0048     {
0049         template <
0050             BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
0051                 FUSION_MAX_MAP_SIZE, typename K, void_)
0052           , BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
0053                 FUSION_MAX_MAP_SIZE, typename D, void_)
0054           , typename Extra = void_
0055         >
0056         struct map_tie;
0057 
0058         template <>
0059         struct map_tie<>
0060         {
0061             typedef map<> type;
0062         };
0063     }
0064 
0065     BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0066     inline map<>
0067     map_tie()
0068     {
0069         return map<>();
0070     }
0071 
0072 #define BOOST_FUSION_TIED_PAIR(z, n, data)                                                          \
0073     fusion::pair<                                                                                   \
0074         BOOST_PP_CAT(K, n)                                                                          \
0075       , typename add_reference<BOOST_PP_CAT(D, n)>::type>
0076 
0077 #define BOOST_FUSION_PAIR_TIE(z, n, _)                                         \
0078     fusion::pair_tie<BOOST_PP_CAT(K, n)>(BOOST_PP_CAT(_, n))                   \
0079 
0080 #define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/detail/pp_map_tie.hpp>
0081 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
0082 #include BOOST_PP_ITERATE()
0083 
0084 #undef BOOST_FUSION_PAIR
0085 #undef BOOST_FUSION_MAKE_PAIR
0086 
0087 }}
0088 
0089 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0090 #pragma wave option(output: null)
0091 #endif
0092 
0093 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
0094 
0095 #endif
0096 #else // defined(BOOST_PP_IS_ITERATING)
0097 ///////////////////////////////////////////////////////////////////////////////
0098 //
0099 //  Preprocessor vertical repetition code
0100 //
0101 ///////////////////////////////////////////////////////////////////////////////
0102 
0103 #define N BOOST_PP_ITERATION()
0104 
0105     namespace result_of
0106     {
0107         template <
0108             BOOST_PP_ENUM_PARAMS(N, typename K)
0109           , BOOST_PP_ENUM_PARAMS(N, typename D)
0110         >
0111         #define TEXT(z, n, text) , text
0112         struct map_tie<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D) BOOST_PP_REPEAT_FROM_TO(N, FUSION_MAX_MAP_SIZE, TEXT, void_) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_MAP_SIZE, TEXT, void_)>
0113         #undef TEXT
0114         {
0115             typedef map<BOOST_PP_ENUM(N, BOOST_FUSION_TIED_PAIR, _)> type;
0116         };
0117     }
0118 
0119     template <
0120         BOOST_PP_ENUM_PARAMS(N, typename K)
0121       , BOOST_PP_ENUM_PARAMS(N, typename D)
0122     >
0123     BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0124     inline map<BOOST_PP_ENUM(N, BOOST_FUSION_TIED_PAIR, _)>
0125     map_tie(BOOST_PP_ENUM_BINARY_PARAMS(N, D, & arg))
0126     {
0127         return map<BOOST_PP_ENUM(N, BOOST_FUSION_TIED_PAIR, _)>(
0128             BOOST_PP_ENUM(N, BOOST_FUSION_PAIR_TIE, arg));
0129     }
0130 
0131 #undef N
0132 #endif // defined(BOOST_PP_IS_ITERATING)
0133