]>
Commit | Line | Data |
---|---|---|
4415f7a5 | 1 | // { dg-options "-std=gnu++11" } |
f263981a PC |
2 | // { dg-do compile } |
3 | ||
5624e564 | 4 | // Copyright (C) 2011-2015 Free Software Foundation, Inc. |
f263981a PC |
5 | // |
6 | // This file is part of the GNU ISO C++ Library. This library is free | |
7 | // software; you can redistribute it and/or modify it under the | |
8 | // terms of the GNU General Public License as published by the | |
9 | // Free Software Foundation; either version 3, or (at your option) | |
10 | // any later version. | |
11 | // | |
12 | // This library is distributed in the hope that it will be useful, | |
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | // GNU General Public License for more details. | |
16 | // | |
17 | // You should have received a copy of the GNU General Public License along | |
18 | // with this library; see the file COPYING3. If not see | |
19 | // <http://www.gnu.org/licenses/>. | |
20 | ||
21 | #include <type_traits> | |
22 | #include <initializer_list> | |
23 | #include <testsuite_tr1.h> | |
24 | ||
25 | using namespace __gnu_test::assign; | |
26 | ||
27 | static_assert(std::is_assignable<int&, int>::value, "Error"); | |
28 | static_assert(std::is_assignable<int&, const int>::value, "Error"); | |
29 | static_assert(std::is_assignable<int&, int&>::value, "Error"); | |
30 | static_assert(std::is_assignable<int&, const int&>::value, "Error"); | |
31 | ||
32 | static_assert(!std::is_assignable<int, int>::value, "Error"); | |
33 | static_assert(!std::is_assignable<int, const int>::value, "Error"); | |
34 | static_assert(!std::is_assignable<int, int&>::value, "Error"); | |
35 | static_assert(!std::is_assignable<int, const int&>::value, "Error"); | |
36 | ||
37 | static_assert(!std::is_assignable<const int, int>::value, "Error"); | |
38 | static_assert(!std::is_assignable<const int, const int>::value, "Error"); | |
39 | static_assert(!std::is_assignable<const int, int&>::value, "Error"); | |
40 | static_assert(!std::is_assignable<const int, const int&>::value, "Error"); | |
41 | ||
42 | static_assert(!std::is_assignable<const int&, int>::value, "Error"); | |
43 | static_assert(!std::is_assignable<const int&, const int>::value, "Error"); | |
44 | static_assert(!std::is_assignable<const int&, int&>::value, "Error"); | |
45 | static_assert(!std::is_assignable<const int&, const int&>::value, "Error"); | |
46 | ||
47 | static_assert(std::is_assignable<Empty&, Empty>::value, "Error"); | |
48 | static_assert(std::is_assignable<Empty&, const Empty>::value, "Error"); | |
49 | static_assert(std::is_assignable<Empty&, Empty&>::value, "Error"); | |
50 | static_assert(std::is_assignable<Empty&, const Empty&>::value, "Error"); | |
51 | static_assert(std::is_assignable<Empty, Empty>::value, "Error"); | |
52 | static_assert(std::is_assignable<Empty, const Empty>::value, "Error"); | |
53 | static_assert(std::is_assignable<Empty, Empty&>::value, "Error"); | |
54 | static_assert(std::is_assignable<Empty, const Empty&>::value, "Error"); | |
55 | ||
56 | static_assert(std::is_assignable<B&, B>::value, "Error"); | |
57 | static_assert(std::is_assignable<B&, const B>::value, "Error"); | |
58 | static_assert(std::is_assignable<B&, B&>::value, "Error"); | |
59 | static_assert(std::is_assignable<B&, const B&>::value, "Error"); | |
60 | static_assert(std::is_assignable<B, B>::value, "Error"); | |
61 | static_assert(std::is_assignable<B, const B>::value, "Error"); | |
62 | static_assert(std::is_assignable<B, B&>::value, "Error"); | |
63 | static_assert(std::is_assignable<B, const B&>::value, "Error"); | |
64 | ||
65 | static_assert(std::is_assignable<bool&, bool>::value, "Error"); | |
66 | static_assert(std::is_assignable<bool&, const bool>::value, "Error"); | |
67 | static_assert(std::is_assignable<bool&, bool&>::value, "Error"); | |
68 | static_assert(std::is_assignable<bool&, const bool&>::value, "Error"); | |
69 | ||
70 | // bool is a fundamental type that does not allow assignment to an rvalue: | |
71 | static_assert(!std::is_assignable<bool, bool>::value, "Error"); | |
72 | static_assert(!std::is_assignable<bool, const bool>::value, "Error"); | |
73 | static_assert(!std::is_assignable<bool, bool&>::value, "Error"); | |
74 | static_assert(!std::is_assignable<bool, const bool&>::value, "Error"); | |
75 | ||
76 | static_assert(std::is_assignable<std::nullptr_t&, | |
77 | std::nullptr_t>::value, "Error"); | |
78 | static_assert(std::is_assignable<std::nullptr_t&, const | |
79 | std::nullptr_t>::value, "Error"); | |
80 | static_assert(std::is_assignable<std::nullptr_t&, | |
81 | std::nullptr_t&>::value, "Error"); | |
82 | static_assert(std::is_assignable<std::nullptr_t&, const | |
83 | std::nullptr_t&>::value, "Error"); | |
84 | ||
85 | // std::nullptr_t is a fundamental type that does not allow | |
86 | // assignment to an rvalue: | |
87 | static_assert(!std::is_assignable<std::nullptr_t, | |
88 | std::nullptr_t>::value, "Error"); | |
89 | static_assert(!std::is_assignable<std::nullptr_t, const | |
90 | std::nullptr_t>::value, "Error"); | |
91 | static_assert(!std::is_assignable<std::nullptr_t, | |
92 | std::nullptr_t&>::value, "Error"); | |
93 | static_assert(!std::is_assignable<std::nullptr_t, const | |
94 | std::nullptr_t&>::value, "Error"); | |
95 | ||
96 | static_assert(std::is_assignable<E&, E>::value, "Error"); | |
97 | static_assert(std::is_assignable<E&, const E>::value, "Error"); | |
98 | static_assert(std::is_assignable<E&, E&>::value, "Error"); | |
99 | static_assert(std::is_assignable<E&, const E&>::value, "Error"); | |
100 | ||
101 | static_assert(std::is_assignable<int&, E>::value, "Error"); | |
102 | static_assert(std::is_assignable<int&, const E>::value, "Error"); | |
103 | static_assert(std::is_assignable<int&, E&>::value, "Error"); | |
104 | static_assert(std::is_assignable<int&, const E&>::value, "Error"); | |
105 | ||
106 | static_assert(!std::is_assignable<E&, int>::value, "Error"); | |
107 | static_assert(!std::is_assignable<E&, const int>::value, "Error"); | |
108 | static_assert(!std::is_assignable<E&, int&>::value, "Error"); | |
109 | static_assert(!std::is_assignable<E&, const int&>::value, "Error"); | |
110 | ||
111 | static_assert(!std::is_assignable<E&, E2>::value, "Error"); | |
112 | static_assert(!std::is_assignable<E&, const E2>::value, "Error"); | |
113 | static_assert(!std::is_assignable<E&, E2&>::value, "Error"); | |
114 | static_assert(!std::is_assignable<E&, const E2&>::value, "Error"); | |
115 | ||
116 | // E is not a class type and thus does not allow assignment to an rvalue: | |
117 | static_assert(!std::is_assignable<E, E>::value, "Error"); | |
118 | static_assert(!std::is_assignable<E, const E>::value, "Error"); | |
119 | static_assert(!std::is_assignable<E, E&>::value, "Error"); | |
120 | static_assert(!std::is_assignable<E, const E&>::value, "Error"); | |
121 | ||
122 | static_assert(std::is_assignable<SE&, SE>::value, "Error"); | |
123 | static_assert(std::is_assignable<SE&, const SE>::value, "Error"); | |
124 | static_assert(std::is_assignable<SE&, SE&>::value, "Error"); | |
125 | static_assert(std::is_assignable<SE&, const SE&>::value, "Error"); | |
126 | ||
127 | static_assert(!std::is_assignable<int&, SE>::value, "Error"); | |
128 | static_assert(!std::is_assignable<int&, const SE>::value, "Error"); | |
129 | static_assert(!std::is_assignable<int&, SE&>::value, "Error"); | |
130 | static_assert(!std::is_assignable<int&, const SE&>::value, "Error"); | |
131 | ||
132 | static_assert(!std::is_assignable<SE&, int>::value, "Error"); | |
133 | static_assert(!std::is_assignable<SE&, const int>::value, "Error"); | |
134 | static_assert(!std::is_assignable<SE&, int&>::value, "Error"); | |
135 | static_assert(!std::is_assignable<SE&, const int&>::value, "Error"); | |
136 | ||
137 | // SE is not a class type and thus does not allow assignment to an rvalue: | |
138 | static_assert(!std::is_assignable<SE, SE>::value, "Error"); | |
139 | static_assert(!std::is_assignable<SE, const SE>::value, "Error"); | |
140 | static_assert(!std::is_assignable<SE, SE&>::value, "Error"); | |
141 | static_assert(!std::is_assignable<SE, const SE&>::value, "Error"); | |
142 | ||
143 | static_assert(std::is_assignable<AnyAssign&, int>::value, "Error"); | |
144 | static_assert(std::is_assignable<AnyAssign&, std::nullptr_t>::value, "Error"); | |
145 | static_assert(std::is_assignable<AnyAssign&, E>::value, "Error"); | |
146 | static_assert(std::is_assignable<AnyAssign&, SE>::value, "Error"); | |
147 | static_assert(std::is_assignable<AnyAssign&, Empty>::value, "Error"); | |
148 | static_assert(std::is_assignable<AnyAssign&, U>::value, "Error"); | |
149 | static_assert(std::is_assignable<AnyAssign&, int&>::value, "Error"); | |
150 | static_assert(std::is_assignable<AnyAssign&, std::nullptr_t&>::value, "Error"); | |
151 | static_assert(std::is_assignable<AnyAssign&, E&>::value, "Error"); | |
152 | static_assert(std::is_assignable<AnyAssign&, SE&>::value, "Error"); | |
153 | static_assert(std::is_assignable<AnyAssign&, Empty&>::value, "Error"); | |
154 | static_assert(std::is_assignable<AnyAssign&, U&>::value, "Error"); | |
155 | static_assert(std::is_assignable<AnyAssign&, AnyAssign>::value, "Error"); | |
156 | static_assert(std::is_assignable<AnyAssign&, | |
157 | std::initializer_list<int>>::value, "Error"); | |
158 | ||
159 | static_assert(std::is_assignable<AnyAssign&, int[1]>::value, "Error"); | |
160 | static_assert(std::is_assignable<AnyAssign&, | |
161 | std::nullptr_t[1]>::value, "Error"); | |
162 | static_assert(std::is_assignable<AnyAssign&, E[1]>::value, "Error"); | |
163 | static_assert(std::is_assignable<AnyAssign&, SE[1]>::value, "Error"); | |
164 | static_assert(std::is_assignable<AnyAssign&, int(&)[1]>::value, "Error"); | |
165 | static_assert(std::is_assignable<AnyAssign&, | |
166 | std::nullptr_t(&)[1]>::value, "Error"); | |
167 | static_assert(std::is_assignable<AnyAssign&, E(&)[1]>::value, "Error"); | |
168 | static_assert(std::is_assignable<AnyAssign&, SE(&)[1]>::value, "Error"); | |
169 | ||
170 | static_assert(std::is_assignable<int&, E>::value, "Error"); | |
171 | static_assert(!std::is_assignable<int&, SE>::value, "Error"); | |
172 | static_assert(std::is_assignable<bool&, E>::value, "Error"); | |
173 | static_assert(!std::is_assignable<bool&, SE>::value, "Error"); | |
174 | static_assert(std::is_assignable<bool&, void*>::value, "Error"); | |
175 | static_assert(std::is_assignable<bool&, int B::*>::value, "Error"); | |
176 | static_assert(std::is_assignable<bool&, void*>::value, "Error"); | |
3c61a5ba | 177 | static_assert(!std::is_assignable<bool&, std::nullptr_t>::value, "Error"); |
f263981a PC |
178 | |
179 | static_assert(std::is_assignable<std::nullptr_t&, | |
180 | std::nullptr_t>::value, "Error"); | |
181 | static_assert(std::is_assignable<void*&, std::nullptr_t>::value, "Error"); | |
182 | static_assert(std::is_assignable<int*&, std::nullptr_t>::value, "Error"); | |
183 | static_assert(std::is_assignable<int B::*&, std::nullptr_t>::value, "Error"); | |
184 | static_assert(!std::is_assignable<std::nullptr_t&, bool>::value, "Error"); | |
185 | static_assert(!std::is_assignable<void*&, bool>::value, "Error"); | |
186 | static_assert(!std::is_assignable<E&, bool>::value, "Error"); | |
187 | static_assert(!std::is_assignable<SE&, bool>::value, "Error"); | |
188 | ||
189 | static_assert(std::is_assignable<std::initializer_list<int>&, | |
190 | std::initializer_list<int>>::value, "Error"); | |
191 | static_assert(std::is_assignable<std::initializer_list<int>&, | |
192 | std::initializer_list<int>&&>::value, "Error"); | |
193 | static_assert(std::is_assignable<std::initializer_list<int>&, const | |
194 | std::initializer_list<int>&&>::value, "Error"); | |
195 | static_assert(std::is_assignable<std::initializer_list<int>&, | |
196 | std::initializer_list<int>&>::value, "Error"); | |
197 | static_assert(std::is_assignable<std::initializer_list<int>&, const | |
198 | std::initializer_list<int>&>::value, "Error"); | |
199 | static_assert(!std::is_assignable<const std::initializer_list<int>&, | |
200 | std::initializer_list<int>>::value, "Error"); | |
201 | ||
202 | static_assert(!std::is_assignable<const AnyAssign&, int>::value, "Error"); | |
203 | static_assert(!std::is_assignable<AnyAssign&, void>::value, "Error"); | |
204 | ||
205 | static_assert(!std::is_assignable<void, int>::value, "Error"); | |
206 | static_assert(!std::is_assignable<const void, int>::value, "Error"); | |
207 | static_assert(!std::is_assignable<int, void>::value, "Error"); | |
208 | static_assert(!std::is_assignable<int, const void>::value, "Error"); | |
209 | static_assert(!std::is_assignable<const int, void>::value, "Error"); | |
210 | static_assert(!std::is_assignable<const int, const void>::value, "Error"); | |
211 | static_assert(!std::is_assignable<int&, void>::value, "Error"); | |
212 | static_assert(!std::is_assignable<int&, const void>::value, "Error"); | |
213 | static_assert(!std::is_assignable<const int&, void>::value, "Error"); | |
214 | static_assert(!std::is_assignable<const int&, const void>::value, "Error"); | |
215 | static_assert(!std::is_assignable<void, void>::value, "Error"); | |
216 | static_assert(!std::is_assignable<const void, void>::value, "Error"); | |
217 | static_assert(!std::is_assignable<const void, const void>::value, "Error"); | |
218 | ||
219 | static_assert(!std::is_assignable<int[1], int[1]>::value, "Error"); | |
220 | static_assert(!std::is_assignable<int(&)[1], int[1]>::value, "Error"); | |
221 | static_assert(!std::is_assignable<int(&)[1], int(&)[1]>::value, "Error"); | |
222 | static_assert(!std::is_assignable<int[2], int[1]>::value, "Error"); | |
223 | static_assert(!std::is_assignable<int(&)[2], int[1]>::value, "Error"); | |
224 | static_assert(!std::is_assignable<int(&)[2], int(&)[1]>::value, "Error"); | |
225 | static_assert(!std::is_assignable<int[1], void>::value, "Error"); | |
226 | static_assert(!std::is_assignable<int(&)[1], void>::value, "Error"); | |
227 | static_assert(!std::is_assignable<void, int[1]>::value, "Error"); | |
228 | static_assert(!std::is_assignable<void, int(&)[1]>::value, "Error"); | |
229 | ||
230 | static_assert(!std::is_assignable<int[], int[]>::value, "Error"); | |
231 | static_assert(!std::is_assignable<int(&)[], int[]>::value, "Error"); | |
232 | static_assert(!std::is_assignable<int(&)[], int(&)[]>::value, "Error"); | |
233 | static_assert(!std::is_assignable<int[1], int[]>::value, "Error"); | |
234 | static_assert(!std::is_assignable<int(&)[1], int[]>::value, "Error"); | |
235 | static_assert(!std::is_assignable<int(&)[1], int(&)[]>::value, "Error"); | |
236 | static_assert(!std::is_assignable<int[], int[1]>::value, "Error"); | |
237 | static_assert(!std::is_assignable<int(&)[], int[1]>::value, "Error"); | |
238 | static_assert(!std::is_assignable<int(&)[], int(&)[1]>::value, "Error"); | |
239 | static_assert(!std::is_assignable<int[], void>::value, "Error"); | |
240 | static_assert(!std::is_assignable<int(&)[], void>::value, "Error"); | |
241 | static_assert(!std::is_assignable<void, int[]>::value, "Error"); | |
242 | static_assert(!std::is_assignable<void, int(&)[]>::value, "Error"); | |
243 | ||
244 | static_assert(std::is_assignable<DelCopyAssign&, | |
245 | DelCopyAssign>::value, "Error"); | |
246 | static_assert(!std::is_assignable<DelCopyAssign&, const | |
247 | DelCopyAssign>::value, "Error"); | |
248 | static_assert(!std::is_assignable<DelCopyAssign&, | |
249 | DelCopyAssign&>::value, "Error"); | |
250 | static_assert(!std::is_assignable<DelCopyAssign&, const | |
251 | DelCopyAssign&>::value, "Error"); | |
252 | static_assert(!std::is_assignable<DelCopyAssign&, void>::value, "Error"); | |
253 | static_assert(!std::is_assignable<DelCopyAssign&, void()>::value, "Error"); | |
254 | static_assert(!std::is_assignable<DelCopyAssign&, void(&)()>::value, "Error"); | |
255 | static_assert(!std::is_assignable<DelCopyAssign&, int>::value, "Error"); | |
256 | ||
257 | static_assert(std::is_assignable<DelAnyAssign&, | |
258 | DelAnyAssign&&>::value, "Error"); | |
259 | static_assert(std::is_assignable<DelAnyAssign&, const | |
260 | DelAnyAssign&>::value, "Error"); | |
261 | static_assert(std::is_assignable<DelAnyAssign, | |
262 | DelAnyAssign&&>::value, "Error"); | |
263 | static_assert(std::is_assignable<DelAnyAssign, const | |
264 | DelAnyAssign&>::value, "Error"); | |
265 | ||
266 | static_assert(!std::is_assignable<const DelAnyAssign&, | |
267 | DelAnyAssign&&>::value, "Error"); | |
268 | static_assert(!std::is_assignable<const DelAnyAssign&, const | |
269 | DelAnyAssign&>::value, "Error"); | |
270 | static_assert(!std::is_assignable<const DelAnyAssign, | |
271 | DelAnyAssign&&>::value, "Error"); | |
272 | static_assert(!std::is_assignable<const DelAnyAssign, const | |
273 | DelAnyAssign&>::value, "Error"); | |
274 | ||
275 | static_assert(!std::is_assignable<DelAnyAssign&, int>::value, "Error"); | |
276 | static_assert(!std::is_assignable<DelAnyAssign&, int&>::value, "Error"); | |
277 | static_assert(!std::is_assignable<DelAnyAssign&, const int&>::value, "Error"); | |
278 | static_assert(!std::is_assignable<DelAnyAssign&, void>::value, "Error"); | |
279 | static_assert(!std::is_assignable<DelAnyAssign&, void()>::value, "Error"); | |
89898034 DK |
280 | static_assert(!std::is_assignable<DelAnyAssign&, |
281 | void() const>::value, "Error"); | |
f263981a PC |
282 | static_assert(!std::is_assignable<DelAnyAssign&, void(&)()>::value, "Error"); |
283 | static_assert(!std::is_assignable<DelAnyAssign&, void(&&)()>::value, "Error"); | |
284 | static_assert(!std::is_assignable<DelAnyAssign&, | |
285 | std::nullptr_t>::value, "Error"); | |
286 | static_assert(!std::is_assignable<DelAnyAssign&, | |
287 | std::nullptr_t&>::value, "Error"); | |
288 | static_assert(!std::is_assignable<DelAnyAssign&, | |
289 | std::initializer_list<int>>::value, "Error"); | |
290 | static_assert(!std::is_assignable<DelAnyAssign&, | |
291 | std::initializer_list<int>&>::value, "Error"); | |
292 | static_assert(!std::is_assignable<DelAnyAssign&, bool>::value, "Error"); | |
293 | static_assert(!std::is_assignable<DelAnyAssign&, bool&>::value, "Error"); | |
294 | static_assert(!std::is_assignable<DelAnyAssign&, E>::value, "Error"); | |
295 | static_assert(!std::is_assignable<DelAnyAssign&, E&>::value, "Error"); | |
296 | static_assert(!std::is_assignable<DelAnyAssign&, SE>::value, "Error"); | |
297 | static_assert(!std::is_assignable<DelAnyAssign&, SE&>::value, "Error"); | |
298 | static_assert(!std::is_assignable<DelAnyAssign&, Empty>::value, "Error"); | |
299 | static_assert(!std::is_assignable<DelAnyAssign&, Empty&>::value, "Error"); | |
300 | static_assert(!std::is_assignable<DelAnyAssign&, B>::value, "Error"); | |
301 | static_assert(!std::is_assignable<DelAnyAssign&, B&>::value, "Error"); | |
302 | static_assert(!std::is_assignable<DelAnyAssign&, U>::value, "Error"); | |
303 | static_assert(!std::is_assignable<DelAnyAssign&, U&>::value, "Error"); | |
304 | static_assert(!std::is_assignable<DelAnyAssign&, void*>::value, "Error"); | |
305 | static_assert(!std::is_assignable<DelAnyAssign&, int*>::value, "Error"); | |
306 | static_assert(!std::is_assignable<DelAnyAssign&, B*>::value, "Error"); | |
307 | static_assert(!std::is_assignable<DelAnyAssign&, D*>::value, "Error"); | |
308 | static_assert(!std::is_assignable<DelAnyAssign&, int B::*>::value, "Error"); | |
309 | static_assert(!std::is_assignable<DelAnyAssign&, int D::*>::value, "Error"); | |
310 | static_assert(!std::is_assignable<DelAnyAssign&, int[]>::value, "Error"); | |
311 | static_assert(!std::is_assignable<DelAnyAssign&, int[1]>::value, "Error"); | |
312 | static_assert(!std::is_assignable<DelAnyAssign&, int(&)[]>::value, "Error"); | |
313 | static_assert(!std::is_assignable<DelAnyAssign&, int(&)[1]>::value, "Error"); | |
314 | ||
315 | static_assert(!std::is_assignable<void(), void>::value, "Error"); | |
316 | static_assert(!std::is_assignable<void, void()>::value, "Error"); | |
317 | static_assert(!std::is_assignable<void(), void()>::value, "Error"); | |
318 | ||
319 | static_assert(!std::is_assignable<void(&)(), void>::value, "Error"); | |
320 | static_assert(!std::is_assignable<void, void(&)()>::value, "Error"); | |
321 | static_assert(!std::is_assignable<void(&)(), void(&)()>::value, "Error"); | |
322 | static_assert(!std::is_assignable<void(&)(), void()>::value, "Error"); | |
323 | static_assert(!std::is_assignable<void(), void(&)()>::value, "Error"); | |
324 | ||
325 | static_assert(std::is_assignable<int&, ImplicitTo<int>>::value, "Error"); | |
326 | static_assert(!std::is_assignable<int&, ExplicitTo<int>>::value, "Error"); | |
327 | static_assert(!std::is_assignable<int, ImplicitTo<int>>::value, "Error"); | |
328 | static_assert(!std::is_assignable<int, ExplicitTo<int>>::value, "Error"); | |
329 | static_assert(!std::is_assignable<const int, ImplicitTo<int>>::value, "Error"); | |
330 | static_assert(!std::is_assignable<const int, ExplicitTo<int>>::value, "Error"); | |
331 | static_assert(!std::is_assignable<const int&, | |
332 | ImplicitTo<int>>::value, "Error"); | |
333 | static_assert(!std::is_assignable<const int&, | |
334 | ExplicitTo<int>>::value, "Error"); | |
335 | ||
336 | static_assert(std::is_assignable<DelImplicitTo<int>&, | |
337 | DelImplicitTo<int>>::value, "Error"); | |
338 | static_assert(std::is_assignable<DelImplicitTo<int>, | |
339 | DelImplicitTo<int>>::value, "Error"); | |
340 | static_assert(!std::is_assignable<int&, DelImplicitTo<int>>::value, "Error"); | |
341 | static_assert(!std::is_assignable<int, DelImplicitTo<int>>::value, "Error"); | |
342 | static_assert(!std::is_assignable<const int&, | |
343 | DelImplicitTo<int>>::value, "Error"); | |
344 | static_assert(!std::is_assignable<const int, | |
345 | DelImplicitTo<int>>::value, "Error"); | |
346 | static_assert(!std::is_assignable<int&, DelExplicitTo<int>>::value, "Error"); | |
347 | static_assert(!std::is_assignable<int, DelExplicitTo<int>>::value, "Error"); | |
348 | static_assert(!std::is_assignable<const int&, | |
349 | DelExplicitTo<int>>::value, "Error"); | |
350 | static_assert(!std::is_assignable<const int, | |
351 | DelExplicitTo<int>>::value, "Error"); | |
352 | ||
353 | static_assert(std::is_assignable<B&, B>::value, "Error"); | |
354 | static_assert(std::is_assignable<B&, D>::value, "Error"); | |
355 | static_assert(std::is_assignable<B&, B&>::value, "Error"); | |
356 | static_assert(std::is_assignable<B&, D&>::value, "Error"); | |
357 | static_assert(!std::is_assignable<const B&, B&>::value, "Error"); | |
358 | static_assert(!std::is_assignable<const B&, D&>::value, "Error"); | |
359 | static_assert(!std::is_assignable<D&, B>::value, "Error"); | |
360 | static_assert(!std::is_assignable<D&, B&>::value, "Error"); | |
361 | ||
362 | static_assert(std::is_assignable<B*&, B*>::value, "Error"); | |
363 | static_assert(std::is_assignable<B*&, D*>::value, "Error"); | |
364 | static_assert(std::is_assignable<const B*&, D*>::value, "Error"); | |
365 | static_assert(std::is_assignable<const B*&, const D*>::value, "Error"); | |
366 | static_assert(std::is_assignable<B*&, B*&>::value, "Error"); | |
367 | static_assert(std::is_assignable<B*&, D*&>::value, "Error"); | |
368 | static_assert(std::is_assignable<const B*&, B*&>::value, "Error"); | |
369 | static_assert(std::is_assignable<const B*&, D*&>::value, "Error"); | |
370 | static_assert(!std::is_assignable<B* const&, B*&>::value, "Error"); | |
371 | static_assert(!std::is_assignable<B* const&, D*&>::value, "Error"); | |
372 | static_assert(!std::is_assignable<D*&, B*>::value, "Error"); | |
373 | static_assert(!std::is_assignable<D*&, B*&>::value, "Error"); | |
374 | ||
375 | static_assert(std::is_assignable<MO&, MO>::value, "Error"); | |
376 | static_assert(std::is_assignable<MO&, MO&&>::value, "Error"); | |
377 | static_assert(std::is_assignable<MO, MO>::value, "Error"); | |
378 | static_assert(std::is_assignable<MO, MO&&>::value, "Error"); | |
379 | ||
380 | static_assert(!std::is_assignable<const MO&, MO>::value, "Error"); | |
381 | static_assert(!std::is_assignable<const MO&, MO&&>::value, "Error"); | |
382 | static_assert(!std::is_assignable<MO&, const MO&&>::value, "Error"); | |
383 | static_assert(!std::is_assignable<MO&, MO&>::value, "Error"); | |
384 | static_assert(!std::is_assignable<MO&, const MO&>::value, "Error"); | |
385 | static_assert(!std::is_assignable<const MO, MO>::value, "Error"); | |
386 | static_assert(!std::is_assignable<const MO, MO&&>::value, "Error"); | |
387 | static_assert(!std::is_assignable<MO, const MO&&>::value, "Error"); | |
388 | static_assert(!std::is_assignable<MO, MO&>::value, "Error"); | |
389 | static_assert(!std::is_assignable<MO, const MO&>::value, "Error"); | |
390 | ||
391 | static_assert(!std::is_assignable<NontrivialUnion&, | |
392 | NontrivialUnion>::value, "Error"); | |
393 | static_assert(!std::is_assignable<NontrivialUnion&, | |
394 | NontrivialUnion&&>::value, "Error"); | |
395 | static_assert(!std::is_assignable<NontrivialUnion&, | |
396 | NontrivialUnion&>::value, "Error"); | |
397 | static_assert(!std::is_assignable<NontrivialUnion&, const | |
398 | NontrivialUnion&>::value, "Error"); | |
399 | static_assert(!std::is_assignable<NontrivialUnion&, const | |
400 | NontrivialUnion&&>::value, "Error"); | |
401 | ||
402 | static_assert(std::is_assignable<Abstract&, Abstract>::value, "Error"); | |
403 | static_assert(std::is_assignable<Abstract&, Abstract&&>::value, "Error"); | |
404 | static_assert(std::is_assignable<Abstract&, Abstract&>::value, "Error"); | |
405 | static_assert(std::is_assignable<Abstract&, const Abstract&>::value, "Error"); | |
406 | static_assert(std::is_assignable<Abstract&, const Abstract&&>::value, "Error"); | |
407 | static_assert(std::is_assignable<Abstract&&, Abstract>::value, "Error"); | |
408 | static_assert(std::is_assignable<Abstract&&, Abstract&&>::value, "Error"); | |
409 | static_assert(std::is_assignable<Abstract&&, Abstract&>::value, "Error"); | |
410 | static_assert(std::is_assignable<Abstract&&, const Abstract&>::value, "Error"); | |
411 | static_assert(std::is_assignable<Abstract&&, const | |
412 | Abstract&&>::value, "Error"); | |
413 | ||
414 | static_assert(std::is_assignable<AbstractDelDtor&, | |
415 | AbstractDelDtor>::value, "Error"); | |
416 | static_assert(std::is_assignable<AbstractDelDtor&, | |
417 | AbstractDelDtor&&>::value, "Error"); | |
418 | static_assert(std::is_assignable<AbstractDelDtor&, | |
419 | AbstractDelDtor&>::value, "Error"); | |
420 | static_assert(std::is_assignable<AbstractDelDtor&, const | |
421 | AbstractDelDtor&>::value, "Error"); | |
422 | static_assert(std::is_assignable<AbstractDelDtor&, const | |
423 | AbstractDelDtor&&>::value, "Error"); | |
424 | static_assert(std::is_assignable<AbstractDelDtor&&, | |
425 | AbstractDelDtor>::value, "Error"); | |
426 | static_assert(std::is_assignable<AbstractDelDtor&&, | |
427 | AbstractDelDtor&&>::value, "Error"); | |
428 | static_assert(std::is_assignable<AbstractDelDtor&&, | |
429 | AbstractDelDtor&>::value, "Error"); | |
430 | static_assert(std::is_assignable<AbstractDelDtor&&, const | |
431 | AbstractDelDtor&>::value, "Error"); | |
432 | static_assert(std::is_assignable<AbstractDelDtor&&, const | |
433 | AbstractDelDtor&&>::value, "Error"); | |
434 | ||
435 | static_assert(std::is_assignable<DelDef&, DelDef>::value, "Error"); | |
436 | static_assert(std::is_assignable<DelDef&, DelDef&&>::value, "Error"); | |
437 | static_assert(std::is_assignable<DelDef&, DelDef&>::value, "Error"); | |
438 | static_assert(std::is_assignable<DelDef&, const DelDef&>::value, "Error"); | |
439 | static_assert(std::is_assignable<DelDef&, const DelDef&&>::value, "Error"); | |
440 | static_assert(std::is_assignable<DelDef&&, DelDef>::value, "Error"); | |
441 | static_assert(std::is_assignable<DelDef&&, DelDef&&>::value, "Error"); | |
442 | static_assert(std::is_assignable<DelDef&&, DelDef&>::value, "Error"); | |
443 | static_assert(std::is_assignable<DelDef&&, const DelDef&>::value, "Error"); | |
444 | static_assert(std::is_assignable<DelDef&&, const DelDef&&>::value, "Error"); | |
445 | ||
446 | static_assert(std::is_assignable<Ellipsis&, Ellipsis>::value, "Error"); | |
447 | static_assert(std::is_assignable<Ellipsis&, const Ellipsis>::value, "Error"); | |
448 | static_assert(std::is_assignable<Ellipsis&, Ellipsis&>::value, "Error"); | |
449 | static_assert(std::is_assignable<Ellipsis&, const Ellipsis&>::value, "Error"); | |
450 | static_assert(std::is_assignable<Ellipsis, Ellipsis>::value, "Error"); | |
451 | static_assert(std::is_assignable<Ellipsis, const Ellipsis>::value, "Error"); | |
452 | static_assert(std::is_assignable<Ellipsis, Ellipsis&>::value, "Error"); | |
453 | static_assert(std::is_assignable<Ellipsis, const Ellipsis&>::value, "Error"); | |
454 | ||
455 | static_assert(!std::is_assignable<Ellipsis&, void>::value, "Error"); | |
456 | ||
457 | static_assert(std::is_assignable<Ellipsis&, int>::value, "Error"); | |
458 | static_assert(std::is_assignable<Ellipsis&, const int>::value, "Error"); | |
459 | static_assert(std::is_assignable<Ellipsis&, int&>::value, "Error"); | |
460 | static_assert(std::is_assignable<Ellipsis&, const int&>::value, "Error"); | |
461 | static_assert(std::is_assignable<Ellipsis&, Empty>::value, "Error"); | |
462 | static_assert(std::is_assignable<Ellipsis&, const Empty>::value, "Error"); | |
463 | static_assert(std::is_assignable<Ellipsis&, Empty&>::value, "Error"); | |
464 | static_assert(std::is_assignable<Ellipsis&, const Empty&>::value, "Error"); | |
465 | static_assert(std::is_assignable<Ellipsis&, E>::value, "Error"); | |
466 | static_assert(std::is_assignable<Ellipsis&, const E>::value, "Error"); | |
467 | static_assert(std::is_assignable<Ellipsis&, E&>::value, "Error"); | |
468 | static_assert(std::is_assignable<Ellipsis&, const E&>::value, "Error"); | |
469 | static_assert(std::is_assignable<Ellipsis&, SE>::value, "Error"); | |
470 | static_assert(std::is_assignable<Ellipsis&, const SE>::value, "Error"); | |
471 | static_assert(std::is_assignable<Ellipsis&, SE&>::value, "Error"); | |
472 | static_assert(std::is_assignable<Ellipsis&, const SE&>::value, "Error"); | |
473 | static_assert(std::is_assignable<Ellipsis&, bool>::value, "Error"); | |
474 | static_assert(std::is_assignable<Ellipsis&, const bool>::value, "Error"); | |
475 | static_assert(std::is_assignable<Ellipsis&, bool&>::value, "Error"); | |
476 | static_assert(std::is_assignable<Ellipsis&, const bool&>::value, "Error"); | |
477 | static_assert(std::is_assignable<Ellipsis&, std::nullptr_t>::value, "Error"); | |
478 | static_assert(std::is_assignable<Ellipsis&, const | |
479 | std::nullptr_t>::value, "Error"); | |
480 | static_assert(std::is_assignable<Ellipsis&, std::nullptr_t&>::value, "Error"); | |
481 | static_assert(std::is_assignable<Ellipsis&, const | |
482 | std::nullptr_t&>::value, "Error"); | |
483 | static_assert(std::is_assignable<Ellipsis&, void*>::value, "Error"); | |
484 | static_assert(std::is_assignable<Ellipsis&, const void*>::value, "Error"); | |
485 | static_assert(std::is_assignable<Ellipsis&, void*&>::value, "Error"); | |
486 | static_assert(std::is_assignable<Ellipsis&, const void*&>::value, "Error"); | |
487 | static_assert(std::is_assignable<Ellipsis&, void()>::value, "Error"); | |
488 | static_assert(std::is_assignable<Ellipsis&, void(&)()>::value, "Error"); | |
489 | ||
490 | static_assert(std::is_assignable<DelEllipsis&, DelEllipsis>::value, "Error"); | |
491 | static_assert(std::is_assignable<DelEllipsis&, const | |
492 | DelEllipsis>::value, "Error"); | |
493 | static_assert(std::is_assignable<DelEllipsis&, DelEllipsis&>::value, "Error"); | |
494 | static_assert(std::is_assignable<DelEllipsis&, const | |
495 | DelEllipsis&>::value, "Error"); | |
496 | static_assert(std::is_assignable<DelEllipsis, DelEllipsis>::value, "Error"); | |
497 | static_assert(std::is_assignable<DelEllipsis, const | |
498 | DelEllipsis>::value, "Error"); | |
499 | static_assert(std::is_assignable<DelEllipsis, DelEllipsis&>::value, "Error"); | |
500 | static_assert(std::is_assignable<DelEllipsis, const | |
501 | DelEllipsis&>::value, "Error"); | |
502 | ||
503 | static_assert(!std::is_assignable<DelEllipsis&, void>::value, "Error"); | |
504 | static_assert(!std::is_assignable<DelEllipsis&, int>::value, "Error"); | |
505 | static_assert(!std::is_assignable<DelEllipsis&, const int>::value, "Error"); | |
506 | static_assert(!std::is_assignable<DelEllipsis&, int&>::value, "Error"); | |
507 | static_assert(!std::is_assignable<DelEllipsis&, const int&>::value, "Error"); | |
508 | static_assert(!std::is_assignable<DelEllipsis&, Empty>::value, "Error"); | |
509 | static_assert(!std::is_assignable<DelEllipsis&, const Empty>::value, "Error"); | |
510 | static_assert(!std::is_assignable<DelEllipsis&, Empty&>::value, "Error"); | |
511 | static_assert(!std::is_assignable<DelEllipsis&, const Empty&>::value, "Error"); | |
512 | static_assert(!std::is_assignable<DelEllipsis&, E>::value, "Error"); | |
513 | static_assert(!std::is_assignable<DelEllipsis&, const E>::value, "Error"); | |
514 | static_assert(!std::is_assignable<DelEllipsis&, E&>::value, "Error"); | |
515 | static_assert(!std::is_assignable<DelEllipsis&, const E&>::value, "Error"); | |
516 | static_assert(!std::is_assignable<DelEllipsis&, SE>::value, "Error"); | |
517 | static_assert(!std::is_assignable<DelEllipsis&, const SE>::value, "Error"); | |
518 | static_assert(!std::is_assignable<DelEllipsis&, SE&>::value, "Error"); | |
519 | static_assert(!std::is_assignable<DelEllipsis&, const SE&>::value, "Error"); | |
520 | static_assert(!std::is_assignable<DelEllipsis&, bool>::value, "Error"); | |
521 | static_assert(!std::is_assignable<DelEllipsis&, const bool>::value, "Error"); | |
522 | static_assert(!std::is_assignable<DelEllipsis&, bool&>::value, "Error"); | |
523 | static_assert(!std::is_assignable<DelEllipsis&, const bool&>::value, "Error"); | |
524 | static_assert(!std::is_assignable<DelEllipsis&, | |
525 | std::nullptr_t>::value, "Error"); | |
526 | static_assert(!std::is_assignable<DelEllipsis&, const | |
527 | std::nullptr_t>::value, "Error"); | |
528 | static_assert(!std::is_assignable<DelEllipsis&, | |
529 | std::nullptr_t&>::value, "Error"); | |
530 | static_assert(!std::is_assignable<DelEllipsis&, const | |
531 | std::nullptr_t&>::value, "Error"); | |
532 | static_assert(!std::is_assignable<DelEllipsis&, void*>::value, "Error"); | |
533 | static_assert(!std::is_assignable<DelEllipsis&, const void*>::value, "Error"); | |
534 | static_assert(!std::is_assignable<DelEllipsis&, void*&>::value, "Error"); | |
535 | static_assert(!std::is_assignable<DelEllipsis&, const void*&>::value, "Error"); | |
536 | static_assert(!std::is_assignable<DelEllipsis&, void()>::value, "Error"); | |
537 | static_assert(!std::is_assignable<DelEllipsis&, void(&)()>::value, "Error"); | |
538 | ||
539 | static_assert(std::is_assignable<FromArgs<int>&, int>::value, "Error"); | |
540 | static_assert(std::is_assignable<FromArgs<int>&, const int>::value, "Error"); | |
541 | static_assert(!std::is_assignable<FromArgs<int>&, | |
542 | ImplicitTo<int>>::value, "Error"); | |
543 | static_assert(!std::is_assignable<FromArgs<int>&, ImplicitTo<const | |
544 | int>>::value, "Error"); | |
545 | static_assert(!std::is_assignable<FromArgs<int>&, | |
546 | ExplicitTo<int>>::value, "Error"); | |
547 | static_assert(!std::is_assignable<FromArgs<int>&, ExplicitTo<const | |
548 | int>>::value, "Error"); | |
549 | ||
550 | static_assert(!std::is_assignable<DelFromArgs<int>&, int>::value, "Error"); | |
551 | static_assert(!std::is_assignable<DelFromArgs<int>&, const | |
552 | int>::value, "Error"); | |
553 | ||
554 | static_assert(std::is_assignable<void(*&)(), | |
555 | ImplicitTo<void(*)()>>::value, "Error"); | |
556 | static_assert(!std::is_assignable<void(*&)(), | |
557 | ExplicitTo<void(*)()>>::value, "Error"); | |
558 | ||
559 | static_assert(std::is_assignable<UAssignAll&, UAssignAll>::value, "Error"); | |
560 | static_assert(std::is_assignable<UAssignAll&, const | |
561 | UAssignAll>::value, "Error"); | |
562 | static_assert(std::is_assignable<UAssignAll&, UAssignAll&>::value, "Error"); | |
563 | static_assert(std::is_assignable<UAssignAll&, const | |
564 | UAssignAll&>::value, "Error"); | |
565 | ||
566 | static_assert(std::is_assignable<UAssignAll, UAssignAll>::value, "Error"); | |
567 | static_assert(std::is_assignable<UAssignAll, const | |
568 | UAssignAll>::value, "Error"); | |
569 | static_assert(std::is_assignable<UAssignAll, UAssignAll&>::value, "Error"); | |
570 | static_assert(std::is_assignable<UAssignAll, const | |
571 | UAssignAll&>::value, "Error"); | |
572 | ||
573 | static_assert(!std::is_assignable<UAssignAll&, void>::value, "Error"); | |
574 | static_assert(!std::is_assignable<const UAssignAll&, void>::value, "Error"); | |
575 | static_assert(!std::is_assignable<const UAssignAll&, | |
576 | UAssignAll>::value, "Error"); | |
577 | static_assert(!std::is_assignable<const UAssignAll&, const | |
578 | UAssignAll>::value, "Error"); | |
579 | static_assert(!std::is_assignable<const UAssignAll&, | |
580 | UAssignAll&>::value, "Error"); | |
581 | static_assert(!std::is_assignable<const UAssignAll&, const | |
582 | UAssignAll&>::value, "Error"); | |
89898034 DK |
583 | static_assert(!std::is_assignable<UAssignAll&, void() const>::value, "Error"); |
584 | static_assert(!std::is_assignable<UAssignAll&, void() &>::value, "Error"); | |
585 | static_assert(!std::is_assignable<UAssignAll&, void() const volatile &&>::value, "Error"); | |
f263981a PC |
586 | |
587 | static_assert(std::is_assignable<UAssignAll&, int>::value, "Error"); | |
588 | static_assert(std::is_assignable<UAssignAll&, int&>::value, "Error"); | |
589 | static_assert(std::is_assignable<UAssignAll&, E>::value, "Error"); | |
590 | static_assert(std::is_assignable<UAssignAll&, E&>::value, "Error"); | |
591 | static_assert(std::is_assignable<UAssignAll&, SE>::value, "Error"); | |
592 | static_assert(std::is_assignable<UAssignAll&, SE&>::value, "Error"); | |
593 | static_assert(std::is_assignable<UAssignAll&, double>::value, "Error"); | |
594 | static_assert(std::is_assignable<UAssignAll&, double&>::value, "Error"); | |
595 | static_assert(std::is_assignable<UAssignAll&, Empty>::value, "Error"); | |
596 | static_assert(std::is_assignable<UAssignAll&, Empty&>::value, "Error"); | |
597 | static_assert(std::is_assignable<UAssignAll&, B>::value, "Error"); | |
598 | static_assert(std::is_assignable<UAssignAll&, B&>::value, "Error"); | |
599 | static_assert(std::is_assignable<UAssignAll&, U>::value, "Error"); | |
600 | static_assert(std::is_assignable<UAssignAll&, U&>::value, "Error"); | |
601 | static_assert(std::is_assignable<UAssignAll&, std::nullptr_t>::value, "Error"); | |
602 | static_assert(std::is_assignable<UAssignAll&, | |
603 | std::nullptr_t&>::value, "Error"); | |
604 | static_assert(std::is_assignable<UAssignAll&, void()>::value, "Error"); | |
605 | static_assert(std::is_assignable<UAssignAll&, void(&)()>::value, "Error"); | |
f263981a PC |
606 | static_assert(std::is_assignable<UAssignAll&, void(*)()>::value, "Error"); |
607 | static_assert(std::is_assignable<UAssignAll&, void(*&)()>::value, "Error"); | |
608 | static_assert(std::is_assignable<UAssignAll&, int*>::value, "Error"); | |
609 | static_assert(std::is_assignable<UAssignAll&, int*&>::value, "Error"); | |
610 | static_assert(std::is_assignable<UAssignAll&, void*>::value, "Error"); | |
611 | static_assert(std::is_assignable<UAssignAll&, void*&>::value, "Error"); | |
612 | static_assert(std::is_assignable<UAssignAll&, const int*>::value, "Error"); | |
613 | static_assert(std::is_assignable<UAssignAll&, const int*&>::value, "Error"); | |
614 | static_assert(std::is_assignable<UAssignAll&, const void*>::value, "Error"); | |
615 | static_assert(std::is_assignable<UAssignAll&, const void*&>::value, "Error"); | |
616 | static_assert(std::is_assignable<UAssignAll&, int[1]>::value, "Error"); | |
617 | static_assert(std::is_assignable<UAssignAll&, int(&)[1]>::value, "Error"); | |
618 | static_assert(std::is_assignable<UAssignAll&, int[]>::value, "Error"); | |
619 | static_assert(std::is_assignable<UAssignAll&, int(&)[]>::value, "Error"); | |
620 | ||
621 | static_assert(!std::is_assignable<UDelAssignAll&, int>::value, "Error"); | |
622 | static_assert(!std::is_assignable<UDelAssignAll&, int&>::value, "Error"); | |
623 | static_assert(!std::is_assignable<UDelAssignAll&, E>::value, "Error"); | |
624 | static_assert(!std::is_assignable<UDelAssignAll&, E&>::value, "Error"); | |
625 | static_assert(!std::is_assignable<UDelAssignAll&, SE>::value, "Error"); | |
626 | static_assert(!std::is_assignable<UDelAssignAll&, SE&>::value, "Error"); | |
627 | static_assert(!std::is_assignable<UDelAssignAll&, double>::value, "Error"); | |
628 | static_assert(!std::is_assignable<UDelAssignAll&, double&>::value, "Error"); | |
629 | static_assert(!std::is_assignable<UDelAssignAll&, Empty>::value, "Error"); | |
630 | static_assert(!std::is_assignable<UDelAssignAll&, Empty&>::value, "Error"); | |
631 | static_assert(!std::is_assignable<UDelAssignAll&, B>::value, "Error"); | |
632 | static_assert(!std::is_assignable<UDelAssignAll&, B&>::value, "Error"); | |
633 | static_assert(!std::is_assignable<UDelAssignAll&, U>::value, "Error"); | |
634 | static_assert(!std::is_assignable<UDelAssignAll&, U&>::value, "Error"); | |
635 | static_assert(!std::is_assignable<UDelAssignAll&, | |
636 | std::nullptr_t>::value, "Error"); | |
637 | static_assert(!std::is_assignable<UDelAssignAll&, | |
638 | std::nullptr_t&>::value, "Error"); | |
639 | static_assert(!std::is_assignable<UDelAssignAll&, void()>::value, "Error"); | |
640 | static_assert(!std::is_assignable<UDelAssignAll&, void(&)()>::value, "Error"); | |
89898034 DK |
641 | static_assert(!std::is_assignable<UDelAssignAll&, void() |
642 | const>::value, "Error"); | |
f263981a PC |
643 | static_assert(!std::is_assignable<UDelAssignAll&, void(*)()>::value, "Error"); |
644 | static_assert(!std::is_assignable<UDelAssignAll&, void(*&)()>::value, "Error"); | |
645 | static_assert(!std::is_assignable<UDelAssignAll&, int*>::value, "Error"); | |
646 | static_assert(!std::is_assignable<UDelAssignAll&, int*&>::value, "Error"); | |
647 | static_assert(!std::is_assignable<UDelAssignAll&, void*>::value, "Error"); | |
648 | static_assert(!std::is_assignable<UDelAssignAll&, void*&>::value, "Error"); | |
649 | static_assert(!std::is_assignable<UDelAssignAll&, const int*>::value, "Error"); | |
650 | static_assert(!std::is_assignable<UDelAssignAll&, const | |
651 | int*&>::value, "Error"); | |
652 | static_assert(!std::is_assignable<UDelAssignAll&, const | |
653 | void*>::value, "Error"); | |
654 | static_assert(!std::is_assignable<UDelAssignAll&, const | |
655 | void*&>::value, "Error"); | |
656 | static_assert(!std::is_assignable<UDelAssignAll&, int[1]>::value, "Error"); | |
657 | static_assert(!std::is_assignable<UDelAssignAll&, int(&)[1]>::value, "Error"); | |
658 | static_assert(!std::is_assignable<UDelAssignAll&, int[]>::value, "Error"); | |
659 | static_assert(!std::is_assignable<UDelAssignAll&, int(&)[]>::value, "Error"); | |
660 | ||
661 | static_assert(!std::is_assignable<void(&)(), std::nullptr_t>::value, "Error"); | |
662 | static_assert(!std::is_assignable<std::nullptr_t, void(&)()>::value, "Error"); | |
663 | static_assert(!std::is_assignable<void(&)(), int[]>::value, "Error"); | |
664 | static_assert(!std::is_assignable<int[], void(&)()>::value, "Error"); | |
665 | static_assert(!std::is_assignable<int[], std::nullptr_t>::value, "Error"); | |
666 | static_assert(!std::is_assignable<std::nullptr_t, int[]>::value, "Error"); | |
667 | static_assert(!std::is_assignable<int[1], std::nullptr_t>::value, "Error"); | |
668 | static_assert(!std::is_assignable<std::nullptr_t, int[1]>::value, "Error"); | |
669 | static_assert(!std::is_assignable<void, std::nullptr_t>::value, "Error"); | |
670 | static_assert(!std::is_assignable<std::nullptr_t, void>::value, "Error"); | |
671 | static_assert(!std::is_assignable<const D&, B&>::value, "Error"); | |
672 | static_assert(!std::is_assignable<const B&, B&>::value, "Error"); | |
673 | ||
674 | static_assert(std::is_assignable<B&, const D&>::value, "Error"); | |
675 | static_assert(std::is_assignable<B&, const B&>::value, "Error"); | |
676 | static_assert(std::is_assignable<int&, const int&>::value, "Error"); | |
677 | static_assert(std::is_assignable<int&, const double&>::value, "Error"); |