Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:35:12

0001 /*=============================================================================
0002     Copyright (c) 2005-2012 Joel de Guzman
0003     Copyright (c) 2005-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 #if !defined(BOOST_FUSION_DEQUE_DETAIL_DEQUE_KEYED_VALUES_26112006_1330)
0009 #define BOOST_FUSION_DEQUE_DETAIL_DEQUE_KEYED_VALUES_26112006_1330
0010 
0011 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
0012 #error "C++03 only! This file should not have been included"
0013 #endif
0014 
0015 #include <boost/fusion/container/deque/detail/cpp03/limits.hpp>
0016 #include <boost/fusion/container/deque/detail/keyed_element.hpp>
0017 
0018 #include <boost/preprocessor/iterate.hpp>
0019 #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
0020 #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
0021 #include <boost/preprocessor/repetition/enum.hpp>
0022 #include <boost/preprocessor/repetition/enum_params.hpp>
0023 #include <boost/type_traits/add_reference.hpp>
0024 
0025 #include <boost/mpl/plus.hpp>
0026 #include <boost/mpl/int.hpp>
0027 
0028 #define FUSION_VOID(z, n, _) void_
0029 
0030 namespace boost { namespace fusion
0031 {
0032     struct void_;
0033 }}
0034 
0035 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
0036 #include <boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp>
0037 #else
0038 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0039 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque_keyed_values" FUSION_MAX_DEQUE_SIZE_STR ".hpp")
0040 #endif
0041 
0042 /*=============================================================================
0043     Copyright (c) 2001-2011 Joel de Guzman
0044 
0045     Distributed under the Boost Software License, Version 1.0. (See accompanying
0046     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0047 
0048     This is an auto-generated file. Do not edit!
0049 ==============================================================================*/
0050 
0051 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0052 #pragma wave option(preserve: 1)
0053 #endif
0054 
0055 namespace boost { namespace fusion { namespace detail
0056 {
0057     template<typename Key, typename Value, typename Rest>
0058     struct keyed_element;
0059 
0060     struct nil_keyed_element;
0061 
0062     template<typename N, BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(FUSION_MAX_DEQUE_SIZE, typename T, void_)>
0063     struct deque_keyed_values_impl;
0064 
0065     template<typename N>
0066     struct deque_keyed_values_impl<N, BOOST_PP_ENUM(FUSION_MAX_DEQUE_SIZE, FUSION_VOID, _)>
0067     {
0068         typedef nil_keyed_element type;
0069 
0070         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0071         static type construct()
0072         {
0073             return type();
0074         }
0075 
0076         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0077         static type forward_()
0078         {
0079             return type();
0080         }
0081     };
0082 
0083     template<typename N, BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename T)>
0084     struct deque_keyed_values_impl
0085     {
0086         typedef mpl::int_<mpl::plus<N, mpl::int_<1> >::value> next_index;
0087 
0088         typedef typename deque_keyed_values_impl<
0089             next_index,
0090             BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type tail;
0091         typedef keyed_element<N, T0, tail> type;
0092 
0093 #include <boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp>
0094 
0095     };
0096 
0097     template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(FUSION_MAX_DEQUE_SIZE, typename T, void_)>
0098     struct deque_keyed_values
0099         : deque_keyed_values_impl<mpl::int_<0>, BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>
0100     {};
0101 
0102 }}}
0103 
0104 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0105 #pragma wave option(output: null)
0106 #endif
0107 
0108 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
0109 
0110 #undef FUSION_VOID
0111 
0112 #endif