Back to home page

EIC code displayed by LXR

 
 

    


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

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_SET_09162005_1104)
0008 #define FUSION_SET_09162005_1104
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/support/is_sequence.hpp>
0014 #include <boost/fusion/support/sequence_base.hpp>
0015 #include <boost/fusion/support/category_of.hpp>
0016 #include <boost/fusion/support/detail/access.hpp>
0017 #include <boost/fusion/container/set/set_fwd.hpp>
0018 #include <boost/fusion/container/set/detail/begin_impl.hpp>
0019 #include <boost/fusion/container/set/detail/end_impl.hpp>
0020 #include <boost/fusion/container/set/detail/value_of_impl.hpp>
0021 #include <boost/fusion/container/set/detail/deref_data_impl.hpp>
0022 #include <boost/fusion/container/set/detail/deref_impl.hpp>
0023 #include <boost/fusion/container/set/detail/key_of_impl.hpp>
0024 #include <boost/fusion/container/set/detail/value_of_data_impl.hpp>
0025 #include <boost/fusion/container/vector/vector.hpp>
0026 #include <boost/mpl/identity.hpp>
0027 #include <boost/mpl/bool.hpp>
0028 #include <boost/core/enable_if.hpp>
0029 
0030 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
0031 #include <boost/fusion/container/set/detail/cpp03/preprocessed/set.hpp>
0032 #else
0033 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0034 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/set" FUSION_MAX_SET_SIZE_STR ".hpp")
0035 #endif
0036 
0037 /*=============================================================================
0038     Copyright (c) 2001-2011 Joel de Guzman
0039 
0040     Distributed under the Boost Software License, Version 1.0. (See accompanying
0041     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0042 
0043     This is an auto-generated file. Do not edit!
0044 ==============================================================================*/
0045 
0046 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0047 #pragma wave option(preserve: 1)
0048 #endif
0049 
0050 namespace boost { namespace fusion
0051 {
0052     struct fusion_sequence_tag;
0053 
0054     template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, typename T)>
0055     struct set : sequence_base<set<BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)> >
0056     {
0057         struct category : forward_traversal_tag, associative_tag {};
0058 
0059         typedef set_tag fusion_tag;
0060         typedef fusion_sequence_tag tag; // this gets picked up by MPL
0061         typedef mpl::false_ is_view;
0062 
0063         typedef vector<
0064             BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)>
0065         storage_type;
0066 
0067         typedef typename storage_type::size size;
0068 
0069         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0070         set()
0071             : data() {}
0072 
0073         template <typename Sequence>
0074         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0075         set(Sequence const& rhs
0076             , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
0077             : data(rhs) {}
0078 
0079         #include <boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp>
0080 
0081         template <typename T>
0082         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0083         set&
0084         operator=(T const& rhs)
0085         {
0086             data = rhs;
0087             return *this;
0088         }
0089 
0090         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0091         storage_type& get_data() { return data; }
0092         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0093         storage_type const& get_data() const { return data; }
0094 
0095     private:
0096 
0097         storage_type data;
0098     };
0099 }}
0100 
0101 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
0102 #pragma wave option(output: null)
0103 #endif
0104 
0105 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
0106 
0107 #endif