]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/bind/test/mem_fn_eq_test.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / bind / test / mem_fn_eq_test.cpp
1 #include <boost/config.hpp>
2
3 #if defined(BOOST_MSVC)
4 #pragma warning(disable: 4786) // identifier truncated in debug info
5 #pragma warning(disable: 4710) // function not inlined
6 #pragma warning(disable: 4711) // function selected for automatic inline expansion
7 #pragma warning(disable: 4514) // unreferenced inline removed
8 #endif
9
10 //
11 // mem_fn_eq_test.cpp - boost::mem_fn equality operator
12 //
13 // Copyright (c) 2004 Peter Dimov
14 //
15 // Distributed under the Boost Software License, Version 1.0. (See
16 // accompanying file LICENSE_1_0.txt or copy at
17 // http://www.boost.org/LICENSE_1_0.txt)
18 //
19
20 #include <boost/mem_fn.hpp>
21
22 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
23 #pragma warning(push, 3)
24 #endif
25
26 #include <iostream>
27
28 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
29 #pragma warning(pop)
30 #endif
31
32 #include <boost/detail/lightweight_test.hpp>
33
34 struct X
35 {
36 int dm_1;
37 int dm_2;
38
39 // 0
40
41 int mf0_1() { return 0; }
42 int mf0_2() { return 1; }
43
44 int cmf0_1() const { return 0; }
45 int cmf0_2() const { return 1; }
46
47 void mf0v_1() {}
48 void mf0v_2() { static int x; ++x; }
49
50 void cmf0v_1() const {}
51 void cmf0v_2() const { static int x; ++x; }
52
53 // 1
54
55 int mf1_1(int) { return 0; }
56 int mf1_2(int) { return 1; }
57
58 int cmf1_1(int) const { return 0; }
59 int cmf1_2(int) const { return 1; }
60
61 void mf1v_1(int) {}
62 void mf1v_2(int) { static int x; ++x; }
63
64 void cmf1v_1(int) const {}
65 void cmf1v_2(int) const { static int x; ++x; }
66
67 // 2
68
69 int mf2_1(int, int) { return 0; }
70 int mf2_2(int, int) { return 1; }
71
72 int cmf2_1(int, int) const { return 0; }
73 int cmf2_2(int, int) const { return 1; }
74
75 void mf2v_1(int, int) {}
76 void mf2v_2(int, int) { static int x; ++x; }
77
78 void cmf2v_1(int, int) const {}
79 void cmf2v_2(int, int) const { static int x; ++x; }
80
81 // 3
82
83 int mf3_1(int, int, int) { return 0; }
84 int mf3_2(int, int, int) { return 1; }
85
86 int cmf3_1(int, int, int) const { return 0; }
87 int cmf3_2(int, int, int) const { return 1; }
88
89 void mf3v_1(int, int, int) {}
90 void mf3v_2(int, int, int) { static int x; ++x; }
91
92 void cmf3v_1(int, int, int) const {}
93 void cmf3v_2(int, int, int) const { static int x; ++x; }
94
95 // 4
96
97 int mf4_1(int, int, int, int) { return 0; }
98 int mf4_2(int, int, int, int) { return 1; }
99
100 int cmf4_1(int, int, int, int) const { return 0; }
101 int cmf4_2(int, int, int, int) const { return 1; }
102
103 void mf4v_1(int, int, int, int) {}
104 void mf4v_2(int, int, int, int) { static int x; ++x; }
105
106 void cmf4v_1(int, int, int, int) const {}
107 void cmf4v_2(int, int, int, int) const { static int x; ++x; }
108
109 // 5
110
111 int mf5_1(int, int, int, int, int) { return 0; }
112 int mf5_2(int, int, int, int, int) { return 1; }
113
114 int cmf5_1(int, int, int, int, int) const { return 0; }
115 int cmf5_2(int, int, int, int, int) const { return 1; }
116
117 void mf5v_1(int, int, int, int, int) {}
118 void mf5v_2(int, int, int, int, int) { static int x; ++x; }
119
120 void cmf5v_1(int, int, int, int, int) const {}
121 void cmf5v_2(int, int, int, int, int) const { static int x; ++x; }
122
123 // 6
124
125 int mf6_1(int, int, int, int, int, int) { return 0; }
126 int mf6_2(int, int, int, int, int, int) { return 1; }
127
128 int cmf6_1(int, int, int, int, int, int) const { return 0; }
129 int cmf6_2(int, int, int, int, int, int) const { return 1; }
130
131 void mf6v_1(int, int, int, int, int, int) {}
132 void mf6v_2(int, int, int, int, int, int) { static int x; ++x; }
133
134 void cmf6v_1(int, int, int, int, int, int) const {}
135 void cmf6v_2(int, int, int, int, int, int) const { static int x; ++x; }
136
137 // 7
138
139 int mf7_1(int, int, int, int, int, int, int) { return 0; }
140 int mf7_2(int, int, int, int, int, int, int) { return 1; }
141
142 int cmf7_1(int, int, int, int, int, int, int) const { return 0; }
143 int cmf7_2(int, int, int, int, int, int, int) const { return 1; }
144
145 void mf7v_1(int, int, int, int, int, int, int) {}
146 void mf7v_2(int, int, int, int, int, int, int) { static int x; ++x; }
147
148 void cmf7v_1(int, int, int, int, int, int, int) const {}
149 void cmf7v_2(int, int, int, int, int, int, int) const { static int x; ++x; }
150
151 // 8
152
153 int mf8_1(int, int, int, int, int, int, int, int) { return 0; }
154 int mf8_2(int, int, int, int, int, int, int, int) { return 1; }
155
156 int cmf8_1(int, int, int, int, int, int, int, int) const { return 0; }
157 int cmf8_2(int, int, int, int, int, int, int, int) const { return 1; }
158
159 void mf8v_1(int, int, int, int, int, int, int, int) {}
160 void mf8v_2(int, int, int, int, int, int, int, int) { static int x; ++x; }
161
162 void cmf8v_1(int, int, int, int, int, int, int, int) const {}
163 void cmf8v_2(int, int, int, int, int, int, int, int) const { static int x; ++x; }
164
165 };
166
167 int main()
168 {
169 BOOST_TEST( boost::mem_fn(&X::dm_1) == boost::mem_fn(&X::dm_1) );
170 BOOST_TEST( boost::mem_fn(&X::dm_1) != boost::mem_fn(&X::dm_2) );
171
172 // 0
173
174 BOOST_TEST( boost::mem_fn(&X::mf0_1) == boost::mem_fn(&X::mf0_1) );
175 BOOST_TEST( boost::mem_fn(&X::mf0_1) != boost::mem_fn(&X::mf0_2) );
176
177 BOOST_TEST( boost::mem_fn(&X::cmf0_1) == boost::mem_fn(&X::cmf0_1) );
178 BOOST_TEST( boost::mem_fn(&X::cmf0_1) != boost::mem_fn(&X::cmf0_2) );
179
180 BOOST_TEST( boost::mem_fn(&X::mf0v_1) == boost::mem_fn(&X::mf0v_1) );
181 BOOST_TEST( boost::mem_fn(&X::mf0v_1) != boost::mem_fn(&X::mf0v_2) );
182
183 BOOST_TEST( boost::mem_fn(&X::cmf0v_1) == boost::mem_fn(&X::cmf0v_1) );
184 BOOST_TEST( boost::mem_fn(&X::cmf0v_1) != boost::mem_fn(&X::cmf0v_2) );
185
186 // 1
187
188 BOOST_TEST( boost::mem_fn(&X::mf1_1) == boost::mem_fn(&X::mf1_1) );
189 BOOST_TEST( boost::mem_fn(&X::mf1_1) != boost::mem_fn(&X::mf1_2) );
190
191 BOOST_TEST( boost::mem_fn(&X::cmf1_1) == boost::mem_fn(&X::cmf1_1) );
192 BOOST_TEST( boost::mem_fn(&X::cmf1_1) != boost::mem_fn(&X::cmf1_2) );
193
194 BOOST_TEST( boost::mem_fn(&X::mf1v_1) == boost::mem_fn(&X::mf1v_1) );
195 BOOST_TEST( boost::mem_fn(&X::mf1v_1) != boost::mem_fn(&X::mf1v_2) );
196
197 BOOST_TEST( boost::mem_fn(&X::cmf1v_1) == boost::mem_fn(&X::cmf1v_1) );
198 BOOST_TEST( boost::mem_fn(&X::cmf1v_1) != boost::mem_fn(&X::cmf1v_2) );
199
200 // 2
201
202 BOOST_TEST( boost::mem_fn(&X::mf2_1) == boost::mem_fn(&X::mf2_1) );
203 BOOST_TEST( boost::mem_fn(&X::mf2_1) != boost::mem_fn(&X::mf2_2) );
204
205 BOOST_TEST( boost::mem_fn(&X::cmf2_1) == boost::mem_fn(&X::cmf2_1) );
206 BOOST_TEST( boost::mem_fn(&X::cmf2_1) != boost::mem_fn(&X::cmf2_2) );
207
208 BOOST_TEST( boost::mem_fn(&X::mf2v_1) == boost::mem_fn(&X::mf2v_1) );
209 BOOST_TEST( boost::mem_fn(&X::mf2v_1) != boost::mem_fn(&X::mf2v_2) );
210
211 BOOST_TEST( boost::mem_fn(&X::cmf2v_1) == boost::mem_fn(&X::cmf2v_1) );
212 BOOST_TEST( boost::mem_fn(&X::cmf2v_1) != boost::mem_fn(&X::cmf2v_2) );
213
214 // 3
215
216 BOOST_TEST( boost::mem_fn(&X::mf3_1) == boost::mem_fn(&X::mf3_1) );
217 BOOST_TEST( boost::mem_fn(&X::mf3_1) != boost::mem_fn(&X::mf3_2) );
218
219 BOOST_TEST( boost::mem_fn(&X::cmf3_1) == boost::mem_fn(&X::cmf3_1) );
220 BOOST_TEST( boost::mem_fn(&X::cmf3_1) != boost::mem_fn(&X::cmf3_2) );
221
222 BOOST_TEST( boost::mem_fn(&X::mf3v_1) == boost::mem_fn(&X::mf3v_1) );
223 BOOST_TEST( boost::mem_fn(&X::mf3v_1) != boost::mem_fn(&X::mf3v_2) );
224
225 BOOST_TEST( boost::mem_fn(&X::cmf3v_1) == boost::mem_fn(&X::cmf3v_1) );
226 BOOST_TEST( boost::mem_fn(&X::cmf3v_1) != boost::mem_fn(&X::cmf3v_2) );
227
228 // 4
229
230 BOOST_TEST( boost::mem_fn(&X::mf4_1) == boost::mem_fn(&X::mf4_1) );
231 BOOST_TEST( boost::mem_fn(&X::mf4_1) != boost::mem_fn(&X::mf4_2) );
232
233 BOOST_TEST( boost::mem_fn(&X::cmf4_1) == boost::mem_fn(&X::cmf4_1) );
234 BOOST_TEST( boost::mem_fn(&X::cmf4_1) != boost::mem_fn(&X::cmf4_2) );
235
236 BOOST_TEST( boost::mem_fn(&X::mf4v_1) == boost::mem_fn(&X::mf4v_1) );
237 BOOST_TEST( boost::mem_fn(&X::mf4v_1) != boost::mem_fn(&X::mf4v_2) );
238
239 BOOST_TEST( boost::mem_fn(&X::cmf4v_1) == boost::mem_fn(&X::cmf4v_1) );
240 BOOST_TEST( boost::mem_fn(&X::cmf4v_1) != boost::mem_fn(&X::cmf4v_2) );
241
242 // 5
243
244 BOOST_TEST( boost::mem_fn(&X::mf5_1) == boost::mem_fn(&X::mf5_1) );
245 BOOST_TEST( boost::mem_fn(&X::mf5_1) != boost::mem_fn(&X::mf5_2) );
246
247 BOOST_TEST( boost::mem_fn(&X::cmf5_1) == boost::mem_fn(&X::cmf5_1) );
248 BOOST_TEST( boost::mem_fn(&X::cmf5_1) != boost::mem_fn(&X::cmf5_2) );
249
250 BOOST_TEST( boost::mem_fn(&X::mf5v_1) == boost::mem_fn(&X::mf5v_1) );
251 BOOST_TEST( boost::mem_fn(&X::mf5v_1) != boost::mem_fn(&X::mf5v_2) );
252
253 BOOST_TEST( boost::mem_fn(&X::cmf5v_1) == boost::mem_fn(&X::cmf5v_1) );
254 BOOST_TEST( boost::mem_fn(&X::cmf5v_1) != boost::mem_fn(&X::cmf5v_2) );
255
256 // 6
257
258 BOOST_TEST( boost::mem_fn(&X::mf6_1) == boost::mem_fn(&X::mf6_1) );
259 BOOST_TEST( boost::mem_fn(&X::mf6_1) != boost::mem_fn(&X::mf6_2) );
260
261 BOOST_TEST( boost::mem_fn(&X::cmf6_1) == boost::mem_fn(&X::cmf6_1) );
262 BOOST_TEST( boost::mem_fn(&X::cmf6_1) != boost::mem_fn(&X::cmf6_2) );
263
264 BOOST_TEST( boost::mem_fn(&X::mf6v_1) == boost::mem_fn(&X::mf6v_1) );
265 BOOST_TEST( boost::mem_fn(&X::mf6v_1) != boost::mem_fn(&X::mf6v_2) );
266
267 BOOST_TEST( boost::mem_fn(&X::cmf6v_1) == boost::mem_fn(&X::cmf6v_1) );
268 BOOST_TEST( boost::mem_fn(&X::cmf6v_1) != boost::mem_fn(&X::cmf6v_2) );
269
270 // 7
271
272 BOOST_TEST( boost::mem_fn(&X::mf7_1) == boost::mem_fn(&X::mf7_1) );
273 BOOST_TEST( boost::mem_fn(&X::mf7_1) != boost::mem_fn(&X::mf7_2) );
274
275 BOOST_TEST( boost::mem_fn(&X::cmf7_1) == boost::mem_fn(&X::cmf7_1) );
276 BOOST_TEST( boost::mem_fn(&X::cmf7_1) != boost::mem_fn(&X::cmf7_2) );
277
278 BOOST_TEST( boost::mem_fn(&X::mf7v_1) == boost::mem_fn(&X::mf7v_1) );
279 BOOST_TEST( boost::mem_fn(&X::mf7v_1) != boost::mem_fn(&X::mf7v_2) );
280
281 BOOST_TEST( boost::mem_fn(&X::cmf7v_1) == boost::mem_fn(&X::cmf7v_1) );
282 BOOST_TEST( boost::mem_fn(&X::cmf7v_1) != boost::mem_fn(&X::cmf7v_2) );
283
284 // 8
285
286 BOOST_TEST( boost::mem_fn(&X::mf8_1) == boost::mem_fn(&X::mf8_1) );
287 BOOST_TEST( boost::mem_fn(&X::mf8_1) != boost::mem_fn(&X::mf8_2) );
288
289 BOOST_TEST( boost::mem_fn(&X::cmf8_1) == boost::mem_fn(&X::cmf8_1) );
290 BOOST_TEST( boost::mem_fn(&X::cmf8_1) != boost::mem_fn(&X::cmf8_2) );
291
292 BOOST_TEST( boost::mem_fn(&X::mf8v_1) == boost::mem_fn(&X::mf8v_1) );
293 BOOST_TEST( boost::mem_fn(&X::mf8v_1) != boost::mem_fn(&X::mf8v_2) );
294
295 BOOST_TEST( boost::mem_fn(&X::cmf8v_1) == boost::mem_fn(&X::cmf8v_1) );
296 BOOST_TEST( boost::mem_fn(&X::cmf8v_1) != boost::mem_fn(&X::cmf8v_2) );
297
298
299 return boost::report_errors();
300 }