]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/fusion/include/boost/fusion/container/map/detail/cpp03/map.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / fusion / include / boost / fusion / container / map / detail / cpp03 / map.hpp
CommitLineData
7c673cae
FG
1/*=============================================================================
2 Copyright (c) 2001-2011 Joel de Guzman
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6==============================================================================*/
7#if !defined(FUSION_MAP_07212005_1106)
8#define FUSION_MAP_07212005_1106
9
10#include <boost/fusion/support/config.hpp>
11#include <boost/fusion/support/pair.hpp>
12#include <boost/fusion/support/category_of.hpp>
13#include <boost/fusion/support/detail/access.hpp>
14#include <boost/fusion/container/map/detail/cpp03/map_fwd.hpp>
15#include <boost/fusion/container/map/detail/cpp03/at_impl.hpp>
16#include <boost/fusion/container/map/detail/cpp03/value_at_impl.hpp>
17#include <boost/fusion/container/map/detail/cpp03/begin_impl.hpp>
18#include <boost/fusion/container/map/detail/cpp03/end_impl.hpp>
19#include <boost/fusion/container/map/detail/cpp03/value_of_impl.hpp>
20#include <boost/fusion/container/map/detail/cpp03/deref_data_impl.hpp>
21#include <boost/fusion/container/map/detail/cpp03/deref_impl.hpp>
22#include <boost/fusion/container/map/detail/cpp03/key_of_impl.hpp>
23#include <boost/fusion/container/map/detail/cpp03/value_of_data_impl.hpp>
24#include <boost/fusion/container/vector/vector.hpp>
25#include <boost/mpl/identity.hpp>
26#include <boost/mpl/bool.hpp>
27#include <boost/preprocessor/iterate.hpp>
28#include <boost/preprocessor/repetition/enum_params.hpp>
29#include <boost/preprocessor/repetition/enum_binary_params.hpp>
30#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \
31 defined(BOOST_MSVC) && (BOOST_MSVC == 1700)
32// see map_forward_ctor.hpp
33#include <boost/core/enable_if.hpp>
34#include <boost/type_traits/is_same.hpp>
35#endif
36
37#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
38#include <boost/fusion/container/map/detail/cpp03/preprocessed/map.hpp>
39#else
40#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
41#pragma wave option(preserve: 2, line: 0, output: "preprocessed/map" FUSION_MAX_MAP_SIZE_STR ".hpp")
42#endif
43
44/*=============================================================================
45 Copyright (c) 2001-2011 Joel de Guzman
46
47 Distributed under the Boost Software License, Version 1.0. (See accompanying
48 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
49
50 This is an auto-generated file. Do not edit!
51==============================================================================*/
52
53#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
54#pragma wave option(preserve: 1)
55#endif
56
57#define FUSION_HASH #
58
59namespace boost { namespace fusion
60{
61 struct void_;
62 struct fusion_sequence_tag;
63
64 template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)>
65 struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> >
66 {
67 struct category : random_access_traversal_tag, associative_tag {};
68
69 typedef map_tag fusion_tag;
70 typedef fusion_sequence_tag tag; // this gets picked up by MPL
71 typedef mpl::false_ is_view;
72
73 typedef vector<
74 BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)>
75 storage_type;
76
77 typedef typename storage_type::size size;
78
79 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
80 map()
81 : data() {}
82
83 BOOST_FUSION_GPU_ENABLED
84 map(map const& rhs)
85 : data(rhs.data) {}
86
87 template <typename Sequence>
88 BOOST_FUSION_GPU_ENABLED
89 map(Sequence const& rhs)
90 : data(rhs) {}
91
92 #include <boost/fusion/container/map/detail/cpp03/map_forward_ctor.hpp>
93
94 template <typename T>
95 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
96 map& operator=(T const& rhs)
97 {
98 data = rhs;
99 return *this;
100 }
101
102 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
103 map& operator=(map const& rhs)
104 {
105 data = rhs.data;
106 return *this;
107 }
108
109#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
110FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
111#endif
112#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
113 (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
114 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
115 map(map&& rhs)
116 : data(std::move(rhs.data)) {}
117
118 template <typename T>
119 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
120 map& operator=(T&& rhs)
121 {
122 data = BOOST_FUSION_FWD_ELEM(T, rhs);
123 return *this;
124 }
125
126 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
127 map& operator=(map&& rhs)
128 {
129 data = std::move(rhs.data);
130 return *this;
131 }
132#endif
133#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
134FUSION_HASH endif
135#endif
136
137 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
138 storage_type& get_data() { return data; }
139 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
140 storage_type const& get_data() const { return data; }
141
142 private:
143
144 storage_type data;
145 };
146}}
147
148#undef FUSION_HASH
149
150#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
151#pragma wave option(output: null)
152#endif
153
154#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
155
156#endif