Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:33:19

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 ==============================================================================*/
0007 #if !defined(FUSION_LIST_07172005_1153)
0008 #define FUSION_LIST_07172005_1153
0009 
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/fusion/support/void.hpp>
0012 #include <boost/fusion/support/detail/enabler.hpp>
0013 #include <boost/fusion/container/list/detail/cpp03/list_fwd.hpp>
0014 #include <boost/fusion/container/list/detail/cpp03/list_to_cons.hpp>
0015 #include <boost/fusion/support/is_sequence.hpp>
0016 #include <boost/core/enable_if.hpp>
0017 
0018 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
0019 #include <boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp>
0020 #else
0021 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0022 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/list" FUSION_MAX_LIST_SIZE_STR ".hpp")
0023 #endif
0024 
0025 /*=============================================================================
0026     Copyright (c) 2001-2011 Joel de Guzman
0027 
0028     Distributed under the Boost Software License, Version 1.0. (See accompanying
0029     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0030 
0031     This is an auto-generated file. Do not edit!
0032 ==============================================================================*/
0033 
0034 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0035 #pragma wave option(preserve: 1)
0036 #endif
0037 
0038 namespace boost { namespace fusion
0039 {
0040     struct nil_;
0041     struct void_;
0042 
0043     template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)>
0044     struct list
0045         : detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>::type
0046     {
0047     private:
0048         typedef
0049             detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>
0050         list_to_cons;
0051         typedef typename list_to_cons::type inherited_type;
0052 
0053     public:
0054         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0055         list()
0056             : inherited_type() {}
0057 
0058         template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
0059         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0060         list(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
0061             : inherited_type(rhs) {}
0062 
0063         template <typename Sequence>
0064         BOOST_FUSION_GPU_ENABLED
0065         list(Sequence const& rhs
0066             , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
0067             : inherited_type(rhs) {}
0068 
0069         //  Expand a couple of forwarding constructors for arguments
0070         //  of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple:
0071         //
0072         //  list(
0073         //      typename detail::call_param<T0>::type arg0
0074         //    , typename detail::call_param<T1>::type arg1)
0075         //    : inherited_type(list_to_cons::call(arg0, arg1)) {}
0076         #include <boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp>
0077 
0078         template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
0079         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0080         list&
0081         operator=(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
0082         {
0083             inherited_type::operator=(rhs);
0084             return *this;
0085         }
0086 
0087         template <typename Sequence>
0088         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0089         typename boost::enable_if<traits::is_sequence<Sequence>, list&>::type
0090         operator=(Sequence const& rhs)
0091         {
0092             inherited_type::operator=(rhs);
0093             return *this;
0094         }
0095     };
0096 }}
0097 
0098 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0099 #pragma wave option(output: null)
0100 #endif
0101 
0102 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
0103 
0104 #endif