]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/vmd/include/boost/vmd/detail/recurse/data_equal/data_equal_10.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / vmd / include / boost / vmd / detail / recurse / data_equal / data_equal_10.hpp
CommitLineData
7c673cae
FG
1
2// (C) Copyright Edward Diener 2011-2015
3// Use, modification and distribution are subject to the Boost Software License,
4// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5// http://www.boost.org/LICENSE_1_0.txt).
6
7#if !defined(BOOST_VMD_DETAIL_DATA_EQUAL_10_HPP)
8#define BOOST_VMD_DETAIL_DATA_EQUAL_10_HPP
9
10#include <boost/vmd/detail/recurse/data_equal/data_equal_headers.hpp>
11
12#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_PARENS(d,em1,em2) \
13 BOOST_VMD_IDENTITY_RESULT \
14 ( \
15 BOOST_PP_IIF \
16 ( \
17 BOOST_VMD_DETAIL_DATA_EQUAL_IS_BOTH_COMPOSITE(em1,em2), \
18 BOOST_VMD_IDENTITY(2), \
19 BOOST_VMD_DETAIL_EQUAL_SIMPLE_D \
20 ) \
21 (d,em1,em2) \
22 ) \
23/**/
24
25#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_PARENS_D(d,em1,em2) \
26 BOOST_VMD_IDENTITY_RESULT \
27 ( \
28 BOOST_PP_IIF \
29 ( \
30 BOOST_VMD_DETAIL_DATA_EQUAL_IS_BOTH_COMPOSITE(em1,em2), \
31 BOOST_VMD_IDENTITY(2), \
32 BOOST_VMD_DETAIL_EQUAL_SIMPLE_D \
33 ) \
34 (d,em1,em2) \
35 ) \
36/**/
37
38#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP(d,state,em1,em2) \
39 BOOST_PP_IIF \
40 ( \
41 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_COMP_PROCESSING(d,state), \
42 BOOST_VMD_DETAIL_EQUAL_SIMPLE_D, \
43 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_PARENS \
44 ) \
45 (d,em1,em2) \
46/**/
47
48#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_D(d,state,em1,em2) \
49 BOOST_PP_IIF \
50 ( \
51 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_COMP_PROCESSING(d,state), \
52 BOOST_VMD_DETAIL_EQUAL_SIMPLE_D, \
53 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_PARENS_D \
54 ) \
55 (d,em1,em2) \
56/**/
57
58#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ(d,state) \
59 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP \
60 ( \
61 d, \
62 state, \
63 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_GET_FIRST_ELEMENT(d,state), \
64 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_GET_SECOND_ELEMENT(d,state) \
65 ) \
66/**/
67
68#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_D(d,state) \
69 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_CMP_D \
70 ( \
71 d, \
72 state, \
73 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_GET_FIRST_ELEMENT(d,state), \
74 BOOST_VMD_DETAIL_DATA_EQUAL_STATE_GET_SECOND_ELEMENT(d,state) \
75 ) \
76/**/
77
78#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP(d,state) \
79 BOOST_VMD_DETAIL_DATA_EQUAL_OP_RESULT \
80 ( \
81 d, \
82 state, \
83 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ(d,state) \
84 ) \
85/**/
86
87#define BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_D(d,state) \
88 BOOST_VMD_DETAIL_DATA_EQUAL_OP_RESULT \
89 ( \
90 d, \
91 state, \
92 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_TEQ_D(d,state) \
93 ) \
94/**/
95
96#define BOOST_VMD_DETAIL_DATA_EQUAL_10_LOOP(dataf,datas,sz,vtype) \
97 BOOST_PP_TUPLE_ELEM \
98 ( \
99 0, \
100 BOOST_PP_WHILE \
101 ( \
102 BOOST_VMD_DETAIL_DATA_EQUAL_PRED, \
103 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP, \
104 ( \
105 1, \
106 dataf, \
107 datas, \
108 sz, \
109 vtype, \
110 0, \
111 ) \
112 ) \
113 ) \
114/**/
115
116#define BOOST_VMD_DETAIL_DATA_EQUAL_10_LOOP_D(d,dataf,datas,sz,vtype) \
117 BOOST_PP_TUPLE_ELEM \
118 ( \
119 0, \
120 BOOST_PP_WHILE_ ## d \
121 ( \
122 BOOST_VMD_DETAIL_DATA_EQUAL_PRED, \
123 BOOST_VMD_DETAIL_DATA_EQUAL_10_OP_D, \
124 ( \
125 1, \
126 dataf, \
127 datas, \
128 sz, \
129 vtype, \
130 0, \
131 ) \
132 ) \
133 ) \
134/**/
135
136#define BOOST_VMD_DETAIL_DATA_EQUAL_10_SZ(dataf,datas,szf,szs,vtype) \
137 BOOST_VMD_IDENTITY_RESULT \
138 ( \
139 BOOST_PP_IIF \
140 ( \
141 BOOST_PP_EQUAL(szf,szs), \
142 BOOST_VMD_DETAIL_DATA_EQUAL_10_LOOP, \
143 BOOST_VMD_IDENTITY(0) \
144 ) \
145 (dataf,datas,szf,vtype) \
146 ) \
147/**/
148
149#define BOOST_VMD_DETAIL_DATA_EQUAL_10_SZ_D(d,dataf,datas,szf,szs,vtype) \
150 BOOST_VMD_IDENTITY_RESULT \
151 ( \
152 BOOST_PP_IIF \
153 ( \
154 BOOST_PP_EQUAL_D(d,szf,szs), \
155 BOOST_VMD_DETAIL_DATA_EQUAL_10_LOOP_D, \
156 BOOST_VMD_IDENTITY(0) \
157 ) \
158 (d,dataf,datas,szf,vtype) \
159 ) \
160/**/
161
162#define BOOST_VMD_DETAIL_DATA_EQUAL_10(dataf,datas,vtype) \
163 BOOST_VMD_DETAIL_DATA_EQUAL_10_SZ \
164 ( \
165 dataf, \
166 datas, \
167 BOOST_VMD_DETAIL_DATA_EQUAL_GET_SIZE(dataf,vtype), \
168 BOOST_VMD_DETAIL_DATA_EQUAL_GET_SIZE(datas,vtype), \
169 vtype \
170 ) \
171/**/
172
173#define BOOST_VMD_DETAIL_DATA_EQUAL_10_D(d,dataf,datas,vtype) \
174 BOOST_VMD_DETAIL_DATA_EQUAL_10_SZ_D \
175 ( \
176 d, \
177 dataf, \
178 datas, \
179 BOOST_VMD_DETAIL_DATA_EQUAL_GET_SIZE_D(d,dataf,vtype), \
180 BOOST_VMD_DETAIL_DATA_EQUAL_GET_SIZE_D(d,datas,vtype), \
181 vtype \
182 ) \
183/**/
184
185#endif /* BOOST_VMD_DETAIL_DATA_EQUAL_10_HPP */