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_PP_IS_ITERATING)
0009 #if !defined(BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_KEYED_VALUES_CALL_04122006_2211)
0010 #define BOOST_FUSION_SEQUENCE_DEQUE_DETAIL_DEQUE_KEYED_VALUES_CALL_04122006_2211
0011 
0012 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
0013 #error "C++03 only! This file should not have been included"
0014 #endif
0015 
0016 #include <boost/preprocessor/iterate.hpp>
0017 #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
0018 #include <boost/preprocessor/repetition/enum_shifted.hpp>
0019 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
0020 
0021 #define FUSION_HASH #
0022 #define FUSION_DEQUE_KEYED_VALUES_FORWARD(z, n, _)    \
0023    BOOST_FUSION_FWD_ELEM(BOOST_PP_CAT(T_, n), BOOST_PP_CAT(t, n))
0024 
0025 #define BOOST_PP_FILENAME_1 \
0026     <boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp>
0027 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_DEQUE_SIZE)
0028 #include BOOST_PP_ITERATE()
0029 
0030 #undef FUSION_DEQUE_KEYED_VALUES_FORWARD
0031 #undef FUSION_HASH
0032 #endif
0033 #else
0034 
0035 #define N BOOST_PP_ITERATION()
0036 
0037         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0038         static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param<T, >::type t))
0039         {
0040             return type(t0,
0041                         deque_keyed_values_impl<
0042                         next_index
0043         #if N > 1
0044                         , BOOST_PP_ENUM_SHIFTED_PARAMS(N, T)
0045         #endif
0046                         >::construct(BOOST_PP_ENUM_SHIFTED_PARAMS(N, t)));
0047         }
0048 
0049 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0050 FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0051 #endif
0052 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
0053     (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
0054         template <BOOST_PP_ENUM_PARAMS(N, typename T_)>
0055         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0056         static type forward_(BOOST_PP_ENUM_BINARY_PARAMS(N, T_, && t))
0057         {
0058             return type(BOOST_FUSION_FWD_ELEM(T_0, t0),
0059                         deque_keyed_values_impl<
0060                         next_index
0061         #if N > 1
0062                         , BOOST_PP_ENUM_SHIFTED_PARAMS(N, T_)
0063         #endif
0064                         >::forward_(BOOST_PP_ENUM_SHIFTED(N, FUSION_DEQUE_KEYED_VALUES_FORWARD, _)));
0065         }
0066 #endif
0067 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0068 FUSION_HASH endif
0069 #endif
0070 
0071 #undef N
0072 #endif