]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/fusion/include/boost/fusion/container/generation/detail/pp_make_set.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / fusion / include / boost / fusion / container / generation / detail / pp_make_set.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#ifndef BOOST_PP_IS_ITERATING
8#if !defined(FUSION_MAKE_SET_09162005_1125)
9#define FUSION_MAKE_SET_09162005_1125
10
11#include <boost/preprocessor/iterate.hpp>
12#include <boost/preprocessor/repetition/enum_params.hpp>
13#include <boost/preprocessor/repetition/enum_binary_params.hpp>
14#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
15#include <boost/preprocessor/repetition/repeat_from_to.hpp>
16#include <boost/fusion/support/config.hpp>
17#include <boost/fusion/container/set/set.hpp>
18#include <boost/fusion/support/detail/as_fusion_element.hpp>
19#include <boost/fusion/support/pair.hpp>
20
21#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
22#include <boost/fusion/container/generation/detail/preprocessed/make_set.hpp>
23#else
24#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
25#pragma wave option(preserve: 2, line: 0, output: "preprocessed/make_set" FUSION_MAX_SET_SIZE_STR".hpp")
26#endif
27
28/*=============================================================================
29 Copyright (c) 2001-2011 Joel de Guzman
30
31 Distributed under the Boost Software License, Version 1.0. (See accompanying
32 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
33
34 This is an auto-generated file. Do not edit!
35==============================================================================*/
36
37#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
38#pragma wave option(preserve: 1)
39#define FUSION_HASH #
40#endif
41
42namespace boost { namespace fusion
43{
44 struct void_;
45
46 namespace result_of
47 {
48 template <
49 BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
50 FUSION_MAX_VECTOR_SIZE, typename T, void_)
51 , typename Extra = void_
52 >
53 struct make_set;
54
55 template <>
56 struct make_set<>
57 {
58 typedef set<> type;
59 };
60 }
61
62 // XXX:
63#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
64FUSION_HASH if defined(BOOST_CLANG)
65 BOOST_CXX14_CONSTEXPR
66FUSION_HASH else
67 BOOST_CONSTEXPR
68FUSION_HASH endif
69#else
70#if defined(BOOST_CLANG)
71 BOOST_CXX14_CONSTEXPR
72#else
73 BOOST_CONSTEXPR
74#endif
75#endif
76 BOOST_FUSION_GPU_ENABLED
77 inline set<>
78 make_set()
79 {
80 return set<>();
81 }
82
83#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
84 typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
85
86#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/detail/pp_make_set.hpp>
87#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
88#include BOOST_PP_ITERATE()
89
90#undef BOOST_FUSION_ELEMENT
91#undef BOOST_FUSION_AS_ELEMENT
92
93}}
94
95#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
96#undef FUSION_HASH
97#pragma wave option(output: null)
98#endif
99
100#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
101
102#endif
103#else // defined(BOOST_PP_IS_ITERATING)
104///////////////////////////////////////////////////////////////////////////////
105//
106// Preprocessor vertical repetition code
107//
108///////////////////////////////////////////////////////////////////////////////
109
110#define N BOOST_PP_ITERATION()
111
112 namespace result_of
113 {
114 template <BOOST_PP_ENUM_PARAMS(N, typename T)>
115 #define TEXT(z, n, text) , text
116 struct make_set< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_SET_SIZE, TEXT, void_) >
117 #undef TEXT
118 {
119 typedef set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
120 };
121 }
122
123 template <BOOST_PP_ENUM_PARAMS(N, typename T)>
124 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
125 inline set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
126 make_set(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
127 {
128 return set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
129 BOOST_PP_ENUM_PARAMS(N, arg));
130 }
131
132#undef N
133#endif // defined(BOOST_PP_IS_ITERATING)
134