1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // WARNING: This test was generated by generate_feature_test_macro_components.py
10 // and should not be edited manually.
11 //
12 // clang-format off
13 
14 // <version>
15 
16 // Test the feature test macros defined by <version>
17 
18 /*  Constant                                       Value
19     __cpp_lib_addressof_constexpr                  201603L [C++17]
20     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
21     __cpp_lib_any                                  201606L [C++17]
22     __cpp_lib_apply                                201603L [C++17]
23     __cpp_lib_array_constexpr                      201603L [C++17]
24                                                    201811L [C++20]
25     __cpp_lib_as_const                             201510L [C++17]
26     __cpp_lib_assume_aligned                       201811L [C++20]
27     __cpp_lib_atomic_flag_test                     201907L [C++20]
28     __cpp_lib_atomic_float                         201711L [C++20]
29     __cpp_lib_atomic_is_always_lock_free           201603L [C++17]
30     __cpp_lib_atomic_lock_free_type_aliases        201907L [C++20]
31     __cpp_lib_atomic_ref                           201806L [C++20]
32     __cpp_lib_atomic_shared_ptr                    201711L [C++20]
33     __cpp_lib_atomic_value_initialization          201911L [C++20]
34     __cpp_lib_atomic_wait                          201907L [C++20]
35     __cpp_lib_barrier                              201907L [C++20]
36     __cpp_lib_bind_front                           201907L [C++20]
37     __cpp_lib_bit_cast                             201806L [C++20]
38     __cpp_lib_bitops                               201907L [C++20]
39     __cpp_lib_bool_constant                        201505L [C++17]
40     __cpp_lib_bounded_array_traits                 201902L [C++20]
41     __cpp_lib_boyer_moore_searcher                 201603L [C++17]
42     __cpp_lib_byte                                 201603L [C++17]
43     __cpp_lib_char8_t                              201811L [C++20]
44     __cpp_lib_chrono                               201611L [C++17]
45     __cpp_lib_chrono_udls                          201304L [C++14]
46     __cpp_lib_clamp                                201603L [C++17]
47     __cpp_lib_complex_udls                         201309L [C++14]
48     __cpp_lib_concepts                             202002L [C++20]
49     __cpp_lib_constexpr_algorithms                 201806L [C++20]
50     __cpp_lib_constexpr_complex                    201711L [C++20]
51     __cpp_lib_constexpr_dynamic_alloc              201907L [C++20]
52     __cpp_lib_constexpr_functional                 201907L [C++20]
53     __cpp_lib_constexpr_iterator                   201811L [C++20]
54     __cpp_lib_constexpr_memory                     201811L [C++20]
55     __cpp_lib_constexpr_numeric                    201911L [C++20]
56     __cpp_lib_constexpr_string                     201907L [C++20]
57     __cpp_lib_constexpr_string_view                201811L [C++20]
58     __cpp_lib_constexpr_tuple                      201811L [C++20]
59     __cpp_lib_constexpr_utility                    201811L [C++20]
60     __cpp_lib_constexpr_vector                     201907L [C++20]
61     __cpp_lib_coroutine                            201902L [C++20]
62     __cpp_lib_destroying_delete                    201806L [C++20]
63     __cpp_lib_enable_shared_from_this              201603L [C++17]
64     __cpp_lib_endian                               201907L [C++20]
65     __cpp_lib_erase_if                             202002L [C++20]
66     __cpp_lib_exchange_function                    201304L [C++14]
67     __cpp_lib_execution                            201603L [C++17]
68                                                    201902L [C++20]
69     __cpp_lib_filesystem                           201703L [C++17]
70     __cpp_lib_gcd_lcm                              201606L [C++17]
71     __cpp_lib_generic_associative_lookup           201304L [C++14]
72     __cpp_lib_generic_unordered_lookup             201811L [C++20]
73     __cpp_lib_hardware_interference_size           201703L [C++17]
74     __cpp_lib_has_unique_object_representations    201606L [C++17]
75     __cpp_lib_hypot                                201603L [C++17]
76     __cpp_lib_incomplete_container_elements        201505L [C++17]
77     __cpp_lib_int_pow2                             202002L [C++20]
78     __cpp_lib_integer_comparison_functions         202002L [C++20]
79     __cpp_lib_integer_sequence                     201304L [C++14]
80     __cpp_lib_integral_constant_callable           201304L [C++14]
81     __cpp_lib_interpolate                          201902L [C++20]
82     __cpp_lib_invoke                               201411L [C++17]
83     __cpp_lib_is_aggregate                         201703L [C++17]
84     __cpp_lib_is_constant_evaluated                201811L [C++20]
85     __cpp_lib_is_final                             201402L [C++14]
86     __cpp_lib_is_invocable                         201703L [C++17]
87     __cpp_lib_is_layout_compatible                 201907L [C++20]
88     __cpp_lib_is_nothrow_convertible               201806L [C++20]
89     __cpp_lib_is_null_pointer                      201309L [C++14]
90     __cpp_lib_is_pointer_interconvertible          201907L [C++20]
91     __cpp_lib_is_scoped_enum                       202011L [C++2b]
92     __cpp_lib_is_swappable                         201603L [C++17]
93     __cpp_lib_jthread                              201911L [C++20]
94     __cpp_lib_latch                                201907L [C++20]
95     __cpp_lib_launder                              201606L [C++17]
96     __cpp_lib_list_remove_return_type              201806L [C++20]
97     __cpp_lib_logical_traits                       201510L [C++17]
98     __cpp_lib_make_from_tuple                      201606L [C++17]
99     __cpp_lib_make_reverse_iterator                201402L [C++14]
100     __cpp_lib_make_unique                          201304L [C++14]
101     __cpp_lib_map_try_emplace                      201411L [C++17]
102     __cpp_lib_math_constants                       201907L [C++20]
103     __cpp_lib_math_special_functions               201603L [C++17]
104     __cpp_lib_memory_resource                      201603L [C++17]
105     __cpp_lib_node_extract                         201606L [C++17]
106     __cpp_lib_nonmember_container_access           201411L [C++17]
107     __cpp_lib_not_fn                               201603L [C++17]
108     __cpp_lib_null_iterators                       201304L [C++14]
109     __cpp_lib_optional                             201606L [C++17]
110     __cpp_lib_parallel_algorithm                   201603L [C++17]
111     __cpp_lib_polymorphic_allocator                201902L [C++20]
112     __cpp_lib_quoted_string_io                     201304L [C++14]
113     __cpp_lib_ranges                               201811L [C++20]
114     __cpp_lib_raw_memory_algorithms                201606L [C++17]
115     __cpp_lib_remove_cvref                         201711L [C++20]
116     __cpp_lib_result_of_sfinae                     201210L [C++14]
117     __cpp_lib_robust_nonmodifying_seq_ops          201304L [C++14]
118     __cpp_lib_sample                               201603L [C++17]
119     __cpp_lib_scoped_lock                          201703L [C++17]
120     __cpp_lib_semaphore                            201907L [C++20]
121     __cpp_lib_shared_mutex                         201505L [C++17]
122     __cpp_lib_shared_ptr_arrays                    201611L [C++17]
123     __cpp_lib_shared_ptr_weak_type                 201606L [C++17]
124     __cpp_lib_shared_timed_mutex                   201402L [C++14]
125     __cpp_lib_shift                                201806L [C++20]
126     __cpp_lib_smart_ptr_for_overwrite              202002L [C++20]
127     __cpp_lib_source_location                      201907L [C++20]
128     __cpp_lib_span                                 202002L [C++20]
129     __cpp_lib_ssize                                201902L [C++20]
130     __cpp_lib_stacktrace                           202011L [C++2b]
131     __cpp_lib_starts_ends_with                     201711L [C++20]
132     __cpp_lib_stdatomic_h                          202011L [C++2b]
133     __cpp_lib_string_contains                      202011L [C++2b]
134     __cpp_lib_string_udls                          201304L [C++14]
135     __cpp_lib_string_view                          201606L [C++17]
136                                                    201803L [C++20]
137     __cpp_lib_syncbuf                              201803L [C++20]
138     __cpp_lib_three_way_comparison                 201907L [C++20]
139     __cpp_lib_to_address                           201711L [C++20]
140     __cpp_lib_to_array                             201907L [C++20]
141     __cpp_lib_to_chars                             201611L [C++17]
142     __cpp_lib_transformation_trait_aliases         201304L [C++14]
143     __cpp_lib_transparent_operators                201210L [C++14]
144                                                    201510L [C++17]
145     __cpp_lib_tuple_element_t                      201402L [C++14]
146     __cpp_lib_tuples_by_type                       201304L [C++14]
147     __cpp_lib_type_trait_variable_templates        201510L [C++17]
148     __cpp_lib_uncaught_exceptions                  201411L [C++17]
149     __cpp_lib_unordered_map_try_emplace            201411L [C++17]
150     __cpp_lib_unwrap_ref                           201811L [C++20]
151     __cpp_lib_variant                              201606L [C++17]
152     __cpp_lib_void_t                               201411L [C++17]
153 */
154 
155 #include <version>
156 #include "test_macros.h"
157 
158 #if TEST_STD_VER < 14
159 
160 # ifdef __cpp_lib_addressof_constexpr
161 #   error "__cpp_lib_addressof_constexpr should not be defined before c++17"
162 # endif
163 
164 # ifdef __cpp_lib_allocator_traits_is_always_equal
165 #   error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
166 # endif
167 
168 # ifdef __cpp_lib_any
169 #   error "__cpp_lib_any should not be defined before c++17"
170 # endif
171 
172 # ifdef __cpp_lib_apply
173 #   error "__cpp_lib_apply should not be defined before c++17"
174 # endif
175 
176 # ifdef __cpp_lib_array_constexpr
177 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
178 # endif
179 
180 # ifdef __cpp_lib_as_const
181 #   error "__cpp_lib_as_const should not be defined before c++17"
182 # endif
183 
184 # ifdef __cpp_lib_assume_aligned
185 #   error "__cpp_lib_assume_aligned should not be defined before c++20"
186 # endif
187 
188 # ifdef __cpp_lib_atomic_flag_test
189 #   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
190 # endif
191 
192 # ifdef __cpp_lib_atomic_float
193 #   error "__cpp_lib_atomic_float should not be defined before c++20"
194 # endif
195 
196 # ifdef __cpp_lib_atomic_is_always_lock_free
197 #   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
198 # endif
199 
200 # ifdef __cpp_lib_atomic_lock_free_type_aliases
201 #   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
202 # endif
203 
204 # ifdef __cpp_lib_atomic_ref
205 #   error "__cpp_lib_atomic_ref should not be defined before c++20"
206 # endif
207 
208 # ifdef __cpp_lib_atomic_shared_ptr
209 #   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
210 # endif
211 
212 # ifdef __cpp_lib_atomic_value_initialization
213 #   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
214 # endif
215 
216 # ifdef __cpp_lib_atomic_wait
217 #   error "__cpp_lib_atomic_wait should not be defined before c++20"
218 # endif
219 
220 # ifdef __cpp_lib_barrier
221 #   error "__cpp_lib_barrier should not be defined before c++20"
222 # endif
223 
224 # ifdef __cpp_lib_bind_front
225 #   error "__cpp_lib_bind_front should not be defined before c++20"
226 # endif
227 
228 # ifdef __cpp_lib_bit_cast
229 #   error "__cpp_lib_bit_cast should not be defined before c++20"
230 # endif
231 
232 # ifdef __cpp_lib_bitops
233 #   error "__cpp_lib_bitops should not be defined before c++20"
234 # endif
235 
236 # ifdef __cpp_lib_bool_constant
237 #   error "__cpp_lib_bool_constant should not be defined before c++17"
238 # endif
239 
240 # ifdef __cpp_lib_bounded_array_traits
241 #   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
242 # endif
243 
244 # ifdef __cpp_lib_boyer_moore_searcher
245 #   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
246 # endif
247 
248 # ifdef __cpp_lib_byte
249 #   error "__cpp_lib_byte should not be defined before c++17"
250 # endif
251 
252 # ifdef __cpp_lib_char8_t
253 #   error "__cpp_lib_char8_t should not be defined before c++20"
254 # endif
255 
256 # ifdef __cpp_lib_chrono
257 #   error "__cpp_lib_chrono should not be defined before c++17"
258 # endif
259 
260 # ifdef __cpp_lib_chrono_udls
261 #   error "__cpp_lib_chrono_udls should not be defined before c++14"
262 # endif
263 
264 # ifdef __cpp_lib_clamp
265 #   error "__cpp_lib_clamp should not be defined before c++17"
266 # endif
267 
268 # ifdef __cpp_lib_complex_udls
269 #   error "__cpp_lib_complex_udls should not be defined before c++14"
270 # endif
271 
272 # ifdef __cpp_lib_concepts
273 #   error "__cpp_lib_concepts should not be defined before c++20"
274 # endif
275 
276 # ifdef __cpp_lib_constexpr_algorithms
277 #   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
278 # endif
279 
280 # ifdef __cpp_lib_constexpr_complex
281 #   error "__cpp_lib_constexpr_complex should not be defined before c++20"
282 # endif
283 
284 # ifdef __cpp_lib_constexpr_dynamic_alloc
285 #   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
286 # endif
287 
288 # ifdef __cpp_lib_constexpr_functional
289 #   error "__cpp_lib_constexpr_functional should not be defined before c++20"
290 # endif
291 
292 # ifdef __cpp_lib_constexpr_iterator
293 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
294 # endif
295 
296 # ifdef __cpp_lib_constexpr_memory
297 #   error "__cpp_lib_constexpr_memory should not be defined before c++20"
298 # endif
299 
300 # ifdef __cpp_lib_constexpr_numeric
301 #   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
302 # endif
303 
304 # ifdef __cpp_lib_constexpr_string
305 #   error "__cpp_lib_constexpr_string should not be defined before c++20"
306 # endif
307 
308 # ifdef __cpp_lib_constexpr_string_view
309 #   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
310 # endif
311 
312 # ifdef __cpp_lib_constexpr_tuple
313 #   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
314 # endif
315 
316 # ifdef __cpp_lib_constexpr_utility
317 #   error "__cpp_lib_constexpr_utility should not be defined before c++20"
318 # endif
319 
320 # ifdef __cpp_lib_constexpr_vector
321 #   error "__cpp_lib_constexpr_vector should not be defined before c++20"
322 # endif
323 
324 # ifdef __cpp_lib_coroutine
325 #   error "__cpp_lib_coroutine should not be defined before c++20"
326 # endif
327 
328 # ifdef __cpp_lib_destroying_delete
329 #   error "__cpp_lib_destroying_delete should not be defined before c++20"
330 # endif
331 
332 # ifdef __cpp_lib_enable_shared_from_this
333 #   error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
334 # endif
335 
336 # ifdef __cpp_lib_endian
337 #   error "__cpp_lib_endian should not be defined before c++20"
338 # endif
339 
340 # ifdef __cpp_lib_erase_if
341 #   error "__cpp_lib_erase_if should not be defined before c++20"
342 # endif
343 
344 # ifdef __cpp_lib_exchange_function
345 #   error "__cpp_lib_exchange_function should not be defined before c++14"
346 # endif
347 
348 # ifdef __cpp_lib_execution
349 #   error "__cpp_lib_execution should not be defined before c++17"
350 # endif
351 
352 # ifdef __cpp_lib_filesystem
353 #   error "__cpp_lib_filesystem should not be defined before c++17"
354 # endif
355 
356 # ifdef __cpp_lib_gcd_lcm
357 #   error "__cpp_lib_gcd_lcm should not be defined before c++17"
358 # endif
359 
360 # ifdef __cpp_lib_generic_associative_lookup
361 #   error "__cpp_lib_generic_associative_lookup should not be defined before c++14"
362 # endif
363 
364 # ifdef __cpp_lib_generic_unordered_lookup
365 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
366 # endif
367 
368 # ifdef __cpp_lib_hardware_interference_size
369 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
370 # endif
371 
372 # ifdef __cpp_lib_has_unique_object_representations
373 #   error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
374 # endif
375 
376 # ifdef __cpp_lib_hypot
377 #   error "__cpp_lib_hypot should not be defined before c++17"
378 # endif
379 
380 # ifdef __cpp_lib_incomplete_container_elements
381 #   error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
382 # endif
383 
384 # ifdef __cpp_lib_int_pow2
385 #   error "__cpp_lib_int_pow2 should not be defined before c++20"
386 # endif
387 
388 # ifdef __cpp_lib_integer_comparison_functions
389 #   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
390 # endif
391 
392 # ifdef __cpp_lib_integer_sequence
393 #   error "__cpp_lib_integer_sequence should not be defined before c++14"
394 # endif
395 
396 # ifdef __cpp_lib_integral_constant_callable
397 #   error "__cpp_lib_integral_constant_callable should not be defined before c++14"
398 # endif
399 
400 # ifdef __cpp_lib_interpolate
401 #   error "__cpp_lib_interpolate should not be defined before c++20"
402 # endif
403 
404 # ifdef __cpp_lib_invoke
405 #   error "__cpp_lib_invoke should not be defined before c++17"
406 # endif
407 
408 # ifdef __cpp_lib_is_aggregate
409 #   error "__cpp_lib_is_aggregate should not be defined before c++17"
410 # endif
411 
412 # ifdef __cpp_lib_is_constant_evaluated
413 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
414 # endif
415 
416 # ifdef __cpp_lib_is_final
417 #   error "__cpp_lib_is_final should not be defined before c++14"
418 # endif
419 
420 # ifdef __cpp_lib_is_invocable
421 #   error "__cpp_lib_is_invocable should not be defined before c++17"
422 # endif
423 
424 # ifdef __cpp_lib_is_layout_compatible
425 #   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
426 # endif
427 
428 # ifdef __cpp_lib_is_nothrow_convertible
429 #   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
430 # endif
431 
432 # ifdef __cpp_lib_is_null_pointer
433 #   error "__cpp_lib_is_null_pointer should not be defined before c++14"
434 # endif
435 
436 # ifdef __cpp_lib_is_pointer_interconvertible
437 #   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
438 # endif
439 
440 # ifdef __cpp_lib_is_scoped_enum
441 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
442 # endif
443 
444 # ifdef __cpp_lib_is_swappable
445 #   error "__cpp_lib_is_swappable should not be defined before c++17"
446 # endif
447 
448 # ifdef __cpp_lib_jthread
449 #   error "__cpp_lib_jthread should not be defined before c++20"
450 # endif
451 
452 # ifdef __cpp_lib_latch
453 #   error "__cpp_lib_latch should not be defined before c++20"
454 # endif
455 
456 # ifdef __cpp_lib_launder
457 #   error "__cpp_lib_launder should not be defined before c++17"
458 # endif
459 
460 # ifdef __cpp_lib_list_remove_return_type
461 #   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
462 # endif
463 
464 # ifdef __cpp_lib_logical_traits
465 #   error "__cpp_lib_logical_traits should not be defined before c++17"
466 # endif
467 
468 # ifdef __cpp_lib_make_from_tuple
469 #   error "__cpp_lib_make_from_tuple should not be defined before c++17"
470 # endif
471 
472 # ifdef __cpp_lib_make_reverse_iterator
473 #   error "__cpp_lib_make_reverse_iterator should not be defined before c++14"
474 # endif
475 
476 # ifdef __cpp_lib_make_unique
477 #   error "__cpp_lib_make_unique should not be defined before c++14"
478 # endif
479 
480 # ifdef __cpp_lib_map_try_emplace
481 #   error "__cpp_lib_map_try_emplace should not be defined before c++17"
482 # endif
483 
484 # ifdef __cpp_lib_math_constants
485 #   error "__cpp_lib_math_constants should not be defined before c++20"
486 # endif
487 
488 # ifdef __cpp_lib_math_special_functions
489 #   error "__cpp_lib_math_special_functions should not be defined before c++17"
490 # endif
491 
492 # ifdef __cpp_lib_memory_resource
493 #   error "__cpp_lib_memory_resource should not be defined before c++17"
494 # endif
495 
496 # ifdef __cpp_lib_node_extract
497 #   error "__cpp_lib_node_extract should not be defined before c++17"
498 # endif
499 
500 # ifdef __cpp_lib_nonmember_container_access
501 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
502 # endif
503 
504 # ifdef __cpp_lib_not_fn
505 #   error "__cpp_lib_not_fn should not be defined before c++17"
506 # endif
507 
508 # ifdef __cpp_lib_null_iterators
509 #   error "__cpp_lib_null_iterators should not be defined before c++14"
510 # endif
511 
512 # ifdef __cpp_lib_optional
513 #   error "__cpp_lib_optional should not be defined before c++17"
514 # endif
515 
516 # ifdef __cpp_lib_parallel_algorithm
517 #   error "__cpp_lib_parallel_algorithm should not be defined before c++17"
518 # endif
519 
520 # ifdef __cpp_lib_polymorphic_allocator
521 #   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
522 # endif
523 
524 # ifdef __cpp_lib_quoted_string_io
525 #   error "__cpp_lib_quoted_string_io should not be defined before c++14"
526 # endif
527 
528 # ifdef __cpp_lib_ranges
529 #   error "__cpp_lib_ranges should not be defined before c++20"
530 # endif
531 
532 # ifdef __cpp_lib_raw_memory_algorithms
533 #   error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
534 # endif
535 
536 # ifdef __cpp_lib_remove_cvref
537 #   error "__cpp_lib_remove_cvref should not be defined before c++20"
538 # endif
539 
540 # ifdef __cpp_lib_result_of_sfinae
541 #   error "__cpp_lib_result_of_sfinae should not be defined before c++14"
542 # endif
543 
544 # ifdef __cpp_lib_robust_nonmodifying_seq_ops
545 #   error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14"
546 # endif
547 
548 # ifdef __cpp_lib_sample
549 #   error "__cpp_lib_sample should not be defined before c++17"
550 # endif
551 
552 # ifdef __cpp_lib_scoped_lock
553 #   error "__cpp_lib_scoped_lock should not be defined before c++17"
554 # endif
555 
556 # ifdef __cpp_lib_semaphore
557 #   error "__cpp_lib_semaphore should not be defined before c++20"
558 # endif
559 
560 # ifdef __cpp_lib_shared_mutex
561 #   error "__cpp_lib_shared_mutex should not be defined before c++17"
562 # endif
563 
564 # ifdef __cpp_lib_shared_ptr_arrays
565 #   error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
566 # endif
567 
568 # ifdef __cpp_lib_shared_ptr_weak_type
569 #   error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
570 # endif
571 
572 # ifdef __cpp_lib_shared_timed_mutex
573 #   error "__cpp_lib_shared_timed_mutex should not be defined before c++14"
574 # endif
575 
576 # ifdef __cpp_lib_shift
577 #   error "__cpp_lib_shift should not be defined before c++20"
578 # endif
579 
580 # ifdef __cpp_lib_smart_ptr_for_overwrite
581 #   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
582 # endif
583 
584 # ifdef __cpp_lib_source_location
585 #   error "__cpp_lib_source_location should not be defined before c++20"
586 # endif
587 
588 # ifdef __cpp_lib_span
589 #   error "__cpp_lib_span should not be defined before c++20"
590 # endif
591 
592 # ifdef __cpp_lib_ssize
593 #   error "__cpp_lib_ssize should not be defined before c++20"
594 # endif
595 
596 # ifdef __cpp_lib_stacktrace
597 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
598 # endif
599 
600 # ifdef __cpp_lib_starts_ends_with
601 #   error "__cpp_lib_starts_ends_with should not be defined before c++20"
602 # endif
603 
604 # ifdef __cpp_lib_stdatomic_h
605 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
606 # endif
607 
608 # ifdef __cpp_lib_string_contains
609 #   error "__cpp_lib_string_contains should not be defined before c++2b"
610 # endif
611 
612 # ifdef __cpp_lib_string_udls
613 #   error "__cpp_lib_string_udls should not be defined before c++14"
614 # endif
615 
616 # ifdef __cpp_lib_string_view
617 #   error "__cpp_lib_string_view should not be defined before c++17"
618 # endif
619 
620 # ifdef __cpp_lib_syncbuf
621 #   error "__cpp_lib_syncbuf should not be defined before c++20"
622 # endif
623 
624 # ifdef __cpp_lib_three_way_comparison
625 #   error "__cpp_lib_three_way_comparison should not be defined before c++20"
626 # endif
627 
628 # ifdef __cpp_lib_to_address
629 #   error "__cpp_lib_to_address should not be defined before c++20"
630 # endif
631 
632 # ifdef __cpp_lib_to_array
633 #   error "__cpp_lib_to_array should not be defined before c++20"
634 # endif
635 
636 # ifdef __cpp_lib_to_chars
637 #   error "__cpp_lib_to_chars should not be defined before c++17"
638 # endif
639 
640 # ifdef __cpp_lib_transformation_trait_aliases
641 #   error "__cpp_lib_transformation_trait_aliases should not be defined before c++14"
642 # endif
643 
644 # ifdef __cpp_lib_transparent_operators
645 #   error "__cpp_lib_transparent_operators should not be defined before c++14"
646 # endif
647 
648 # ifdef __cpp_lib_tuple_element_t
649 #   error "__cpp_lib_tuple_element_t should not be defined before c++14"
650 # endif
651 
652 # ifdef __cpp_lib_tuples_by_type
653 #   error "__cpp_lib_tuples_by_type should not be defined before c++14"
654 # endif
655 
656 # ifdef __cpp_lib_type_trait_variable_templates
657 #   error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
658 # endif
659 
660 # ifdef __cpp_lib_uncaught_exceptions
661 #   error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
662 # endif
663 
664 # ifdef __cpp_lib_unordered_map_try_emplace
665 #   error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
666 # endif
667 
668 # ifdef __cpp_lib_unwrap_ref
669 #   error "__cpp_lib_unwrap_ref should not be defined before c++20"
670 # endif
671 
672 # ifdef __cpp_lib_variant
673 #   error "__cpp_lib_variant should not be defined before c++17"
674 # endif
675 
676 # ifdef __cpp_lib_void_t
677 #   error "__cpp_lib_void_t should not be defined before c++17"
678 # endif
679 
680 #elif TEST_STD_VER == 14
681 
682 # ifdef __cpp_lib_addressof_constexpr
683 #   error "__cpp_lib_addressof_constexpr should not be defined before c++17"
684 # endif
685 
686 # ifdef __cpp_lib_allocator_traits_is_always_equal
687 #   error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
688 # endif
689 
690 # ifdef __cpp_lib_any
691 #   error "__cpp_lib_any should not be defined before c++17"
692 # endif
693 
694 # ifdef __cpp_lib_apply
695 #   error "__cpp_lib_apply should not be defined before c++17"
696 # endif
697 
698 # ifdef __cpp_lib_array_constexpr
699 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
700 # endif
701 
702 # ifdef __cpp_lib_as_const
703 #   error "__cpp_lib_as_const should not be defined before c++17"
704 # endif
705 
706 # ifdef __cpp_lib_assume_aligned
707 #   error "__cpp_lib_assume_aligned should not be defined before c++20"
708 # endif
709 
710 # ifdef __cpp_lib_atomic_flag_test
711 #   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
712 # endif
713 
714 # ifdef __cpp_lib_atomic_float
715 #   error "__cpp_lib_atomic_float should not be defined before c++20"
716 # endif
717 
718 # ifdef __cpp_lib_atomic_is_always_lock_free
719 #   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
720 # endif
721 
722 # ifdef __cpp_lib_atomic_lock_free_type_aliases
723 #   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
724 # endif
725 
726 # ifdef __cpp_lib_atomic_ref
727 #   error "__cpp_lib_atomic_ref should not be defined before c++20"
728 # endif
729 
730 # ifdef __cpp_lib_atomic_shared_ptr
731 #   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
732 # endif
733 
734 # ifdef __cpp_lib_atomic_value_initialization
735 #   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
736 # endif
737 
738 # ifdef __cpp_lib_atomic_wait
739 #   error "__cpp_lib_atomic_wait should not be defined before c++20"
740 # endif
741 
742 # ifdef __cpp_lib_barrier
743 #   error "__cpp_lib_barrier should not be defined before c++20"
744 # endif
745 
746 # ifdef __cpp_lib_bind_front
747 #   error "__cpp_lib_bind_front should not be defined before c++20"
748 # endif
749 
750 # ifdef __cpp_lib_bit_cast
751 #   error "__cpp_lib_bit_cast should not be defined before c++20"
752 # endif
753 
754 # ifdef __cpp_lib_bitops
755 #   error "__cpp_lib_bitops should not be defined before c++20"
756 # endif
757 
758 # ifdef __cpp_lib_bool_constant
759 #   error "__cpp_lib_bool_constant should not be defined before c++17"
760 # endif
761 
762 # ifdef __cpp_lib_bounded_array_traits
763 #   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
764 # endif
765 
766 # ifdef __cpp_lib_boyer_moore_searcher
767 #   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
768 # endif
769 
770 # ifdef __cpp_lib_byte
771 #   error "__cpp_lib_byte should not be defined before c++17"
772 # endif
773 
774 # ifdef __cpp_lib_char8_t
775 #   error "__cpp_lib_char8_t should not be defined before c++20"
776 # endif
777 
778 # ifdef __cpp_lib_chrono
779 #   error "__cpp_lib_chrono should not be defined before c++17"
780 # endif
781 
782 # ifndef __cpp_lib_chrono_udls
783 #   error "__cpp_lib_chrono_udls should be defined in c++14"
784 # endif
785 # if __cpp_lib_chrono_udls != 201304L
786 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
787 # endif
788 
789 # ifdef __cpp_lib_clamp
790 #   error "__cpp_lib_clamp should not be defined before c++17"
791 # endif
792 
793 # ifndef __cpp_lib_complex_udls
794 #   error "__cpp_lib_complex_udls should be defined in c++14"
795 # endif
796 # if __cpp_lib_complex_udls != 201309L
797 #   error "__cpp_lib_complex_udls should have the value 201309L in c++14"
798 # endif
799 
800 # ifdef __cpp_lib_concepts
801 #   error "__cpp_lib_concepts should not be defined before c++20"
802 # endif
803 
804 # ifdef __cpp_lib_constexpr_algorithms
805 #   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
806 # endif
807 
808 # ifdef __cpp_lib_constexpr_complex
809 #   error "__cpp_lib_constexpr_complex should not be defined before c++20"
810 # endif
811 
812 # ifdef __cpp_lib_constexpr_dynamic_alloc
813 #   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
814 # endif
815 
816 # ifdef __cpp_lib_constexpr_functional
817 #   error "__cpp_lib_constexpr_functional should not be defined before c++20"
818 # endif
819 
820 # ifdef __cpp_lib_constexpr_iterator
821 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
822 # endif
823 
824 # ifdef __cpp_lib_constexpr_memory
825 #   error "__cpp_lib_constexpr_memory should not be defined before c++20"
826 # endif
827 
828 # ifdef __cpp_lib_constexpr_numeric
829 #   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
830 # endif
831 
832 # ifdef __cpp_lib_constexpr_string
833 #   error "__cpp_lib_constexpr_string should not be defined before c++20"
834 # endif
835 
836 # ifdef __cpp_lib_constexpr_string_view
837 #   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
838 # endif
839 
840 # ifdef __cpp_lib_constexpr_tuple
841 #   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
842 # endif
843 
844 # ifdef __cpp_lib_constexpr_utility
845 #   error "__cpp_lib_constexpr_utility should not be defined before c++20"
846 # endif
847 
848 # ifdef __cpp_lib_constexpr_vector
849 #   error "__cpp_lib_constexpr_vector should not be defined before c++20"
850 # endif
851 
852 # ifdef __cpp_lib_coroutine
853 #   error "__cpp_lib_coroutine should not be defined before c++20"
854 # endif
855 
856 # ifdef __cpp_lib_destroying_delete
857 #   error "__cpp_lib_destroying_delete should not be defined before c++20"
858 # endif
859 
860 # ifdef __cpp_lib_enable_shared_from_this
861 #   error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
862 # endif
863 
864 # ifdef __cpp_lib_endian
865 #   error "__cpp_lib_endian should not be defined before c++20"
866 # endif
867 
868 # ifdef __cpp_lib_erase_if
869 #   error "__cpp_lib_erase_if should not be defined before c++20"
870 # endif
871 
872 # ifndef __cpp_lib_exchange_function
873 #   error "__cpp_lib_exchange_function should be defined in c++14"
874 # endif
875 # if __cpp_lib_exchange_function != 201304L
876 #   error "__cpp_lib_exchange_function should have the value 201304L in c++14"
877 # endif
878 
879 # ifdef __cpp_lib_execution
880 #   error "__cpp_lib_execution should not be defined before c++17"
881 # endif
882 
883 # ifdef __cpp_lib_filesystem
884 #   error "__cpp_lib_filesystem should not be defined before c++17"
885 # endif
886 
887 # ifdef __cpp_lib_gcd_lcm
888 #   error "__cpp_lib_gcd_lcm should not be defined before c++17"
889 # endif
890 
891 # ifndef __cpp_lib_generic_associative_lookup
892 #   error "__cpp_lib_generic_associative_lookup should be defined in c++14"
893 # endif
894 # if __cpp_lib_generic_associative_lookup != 201304L
895 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14"
896 # endif
897 
898 # ifdef __cpp_lib_generic_unordered_lookup
899 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
900 # endif
901 
902 # ifdef __cpp_lib_hardware_interference_size
903 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
904 # endif
905 
906 # ifdef __cpp_lib_has_unique_object_representations
907 #   error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
908 # endif
909 
910 # ifdef __cpp_lib_hypot
911 #   error "__cpp_lib_hypot should not be defined before c++17"
912 # endif
913 
914 # ifdef __cpp_lib_incomplete_container_elements
915 #   error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
916 # endif
917 
918 # ifdef __cpp_lib_int_pow2
919 #   error "__cpp_lib_int_pow2 should not be defined before c++20"
920 # endif
921 
922 # ifdef __cpp_lib_integer_comparison_functions
923 #   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
924 # endif
925 
926 # ifndef __cpp_lib_integer_sequence
927 #   error "__cpp_lib_integer_sequence should be defined in c++14"
928 # endif
929 # if __cpp_lib_integer_sequence != 201304L
930 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++14"
931 # endif
932 
933 # ifndef __cpp_lib_integral_constant_callable
934 #   error "__cpp_lib_integral_constant_callable should be defined in c++14"
935 # endif
936 # if __cpp_lib_integral_constant_callable != 201304L
937 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14"
938 # endif
939 
940 # ifdef __cpp_lib_interpolate
941 #   error "__cpp_lib_interpolate should not be defined before c++20"
942 # endif
943 
944 # ifdef __cpp_lib_invoke
945 #   error "__cpp_lib_invoke should not be defined before c++17"
946 # endif
947 
948 # ifdef __cpp_lib_is_aggregate
949 #   error "__cpp_lib_is_aggregate should not be defined before c++17"
950 # endif
951 
952 # ifdef __cpp_lib_is_constant_evaluated
953 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
954 # endif
955 
956 # ifndef __cpp_lib_is_final
957 #   error "__cpp_lib_is_final should be defined in c++14"
958 # endif
959 # if __cpp_lib_is_final != 201402L
960 #   error "__cpp_lib_is_final should have the value 201402L in c++14"
961 # endif
962 
963 # ifdef __cpp_lib_is_invocable
964 #   error "__cpp_lib_is_invocable should not be defined before c++17"
965 # endif
966 
967 # ifdef __cpp_lib_is_layout_compatible
968 #   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
969 # endif
970 
971 # ifdef __cpp_lib_is_nothrow_convertible
972 #   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
973 # endif
974 
975 # ifndef __cpp_lib_is_null_pointer
976 #   error "__cpp_lib_is_null_pointer should be defined in c++14"
977 # endif
978 # if __cpp_lib_is_null_pointer != 201309L
979 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++14"
980 # endif
981 
982 # ifdef __cpp_lib_is_pointer_interconvertible
983 #   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
984 # endif
985 
986 # ifdef __cpp_lib_is_scoped_enum
987 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
988 # endif
989 
990 # ifdef __cpp_lib_is_swappable
991 #   error "__cpp_lib_is_swappable should not be defined before c++17"
992 # endif
993 
994 # ifdef __cpp_lib_jthread
995 #   error "__cpp_lib_jthread should not be defined before c++20"
996 # endif
997 
998 # ifdef __cpp_lib_latch
999 #   error "__cpp_lib_latch should not be defined before c++20"
1000 # endif
1001 
1002 # ifdef __cpp_lib_launder
1003 #   error "__cpp_lib_launder should not be defined before c++17"
1004 # endif
1005 
1006 # ifdef __cpp_lib_list_remove_return_type
1007 #   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
1008 # endif
1009 
1010 # ifdef __cpp_lib_logical_traits
1011 #   error "__cpp_lib_logical_traits should not be defined before c++17"
1012 # endif
1013 
1014 # ifdef __cpp_lib_make_from_tuple
1015 #   error "__cpp_lib_make_from_tuple should not be defined before c++17"
1016 # endif
1017 
1018 # ifndef __cpp_lib_make_reverse_iterator
1019 #   error "__cpp_lib_make_reverse_iterator should be defined in c++14"
1020 # endif
1021 # if __cpp_lib_make_reverse_iterator != 201402L
1022 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14"
1023 # endif
1024 
1025 # ifndef __cpp_lib_make_unique
1026 #   error "__cpp_lib_make_unique should be defined in c++14"
1027 # endif
1028 # if __cpp_lib_make_unique != 201304L
1029 #   error "__cpp_lib_make_unique should have the value 201304L in c++14"
1030 # endif
1031 
1032 # ifdef __cpp_lib_map_try_emplace
1033 #   error "__cpp_lib_map_try_emplace should not be defined before c++17"
1034 # endif
1035 
1036 # ifdef __cpp_lib_math_constants
1037 #   error "__cpp_lib_math_constants should not be defined before c++20"
1038 # endif
1039 
1040 # ifdef __cpp_lib_math_special_functions
1041 #   error "__cpp_lib_math_special_functions should not be defined before c++17"
1042 # endif
1043 
1044 # ifdef __cpp_lib_memory_resource
1045 #   error "__cpp_lib_memory_resource should not be defined before c++17"
1046 # endif
1047 
1048 # ifdef __cpp_lib_node_extract
1049 #   error "__cpp_lib_node_extract should not be defined before c++17"
1050 # endif
1051 
1052 # ifdef __cpp_lib_nonmember_container_access
1053 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
1054 # endif
1055 
1056 # ifdef __cpp_lib_not_fn
1057 #   error "__cpp_lib_not_fn should not be defined before c++17"
1058 # endif
1059 
1060 # ifndef __cpp_lib_null_iterators
1061 #   error "__cpp_lib_null_iterators should be defined in c++14"
1062 # endif
1063 # if __cpp_lib_null_iterators != 201304L
1064 #   error "__cpp_lib_null_iterators should have the value 201304L in c++14"
1065 # endif
1066 
1067 # ifdef __cpp_lib_optional
1068 #   error "__cpp_lib_optional should not be defined before c++17"
1069 # endif
1070 
1071 # ifdef __cpp_lib_parallel_algorithm
1072 #   error "__cpp_lib_parallel_algorithm should not be defined before c++17"
1073 # endif
1074 
1075 # ifdef __cpp_lib_polymorphic_allocator
1076 #   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
1077 # endif
1078 
1079 # ifndef __cpp_lib_quoted_string_io
1080 #   error "__cpp_lib_quoted_string_io should be defined in c++14"
1081 # endif
1082 # if __cpp_lib_quoted_string_io != 201304L
1083 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++14"
1084 # endif
1085 
1086 # ifdef __cpp_lib_ranges
1087 #   error "__cpp_lib_ranges should not be defined before c++20"
1088 # endif
1089 
1090 # ifdef __cpp_lib_raw_memory_algorithms
1091 #   error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
1092 # endif
1093 
1094 # ifdef __cpp_lib_remove_cvref
1095 #   error "__cpp_lib_remove_cvref should not be defined before c++20"
1096 # endif
1097 
1098 # ifndef __cpp_lib_result_of_sfinae
1099 #   error "__cpp_lib_result_of_sfinae should be defined in c++14"
1100 # endif
1101 # if __cpp_lib_result_of_sfinae != 201210L
1102 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14"
1103 # endif
1104 
1105 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
1106 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14"
1107 # endif
1108 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
1109 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14"
1110 # endif
1111 
1112 # ifdef __cpp_lib_sample
1113 #   error "__cpp_lib_sample should not be defined before c++17"
1114 # endif
1115 
1116 # ifdef __cpp_lib_scoped_lock
1117 #   error "__cpp_lib_scoped_lock should not be defined before c++17"
1118 # endif
1119 
1120 # ifdef __cpp_lib_semaphore
1121 #   error "__cpp_lib_semaphore should not be defined before c++20"
1122 # endif
1123 
1124 # ifdef __cpp_lib_shared_mutex
1125 #   error "__cpp_lib_shared_mutex should not be defined before c++17"
1126 # endif
1127 
1128 # ifdef __cpp_lib_shared_ptr_arrays
1129 #   error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
1130 # endif
1131 
1132 # ifdef __cpp_lib_shared_ptr_weak_type
1133 #   error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
1134 # endif
1135 
1136 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
1137 #   ifndef __cpp_lib_shared_timed_mutex
1138 #     error "__cpp_lib_shared_timed_mutex should be defined in c++14"
1139 #   endif
1140 #   if __cpp_lib_shared_timed_mutex != 201402L
1141 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14"
1142 #   endif
1143 # else
1144 #   ifdef __cpp_lib_shared_timed_mutex
1145 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex) is not defined!"
1146 #   endif
1147 # endif
1148 
1149 # ifdef __cpp_lib_shift
1150 #   error "__cpp_lib_shift should not be defined before c++20"
1151 # endif
1152 
1153 # ifdef __cpp_lib_smart_ptr_for_overwrite
1154 #   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
1155 # endif
1156 
1157 # ifdef __cpp_lib_source_location
1158 #   error "__cpp_lib_source_location should not be defined before c++20"
1159 # endif
1160 
1161 # ifdef __cpp_lib_span
1162 #   error "__cpp_lib_span should not be defined before c++20"
1163 # endif
1164 
1165 # ifdef __cpp_lib_ssize
1166 #   error "__cpp_lib_ssize should not be defined before c++20"
1167 # endif
1168 
1169 # ifdef __cpp_lib_stacktrace
1170 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
1171 # endif
1172 
1173 # ifdef __cpp_lib_starts_ends_with
1174 #   error "__cpp_lib_starts_ends_with should not be defined before c++20"
1175 # endif
1176 
1177 # ifdef __cpp_lib_stdatomic_h
1178 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
1179 # endif
1180 
1181 # ifdef __cpp_lib_string_contains
1182 #   error "__cpp_lib_string_contains should not be defined before c++2b"
1183 # endif
1184 
1185 # ifndef __cpp_lib_string_udls
1186 #   error "__cpp_lib_string_udls should be defined in c++14"
1187 # endif
1188 # if __cpp_lib_string_udls != 201304L
1189 #   error "__cpp_lib_string_udls should have the value 201304L in c++14"
1190 # endif
1191 
1192 # ifdef __cpp_lib_string_view
1193 #   error "__cpp_lib_string_view should not be defined before c++17"
1194 # endif
1195 
1196 # ifdef __cpp_lib_syncbuf
1197 #   error "__cpp_lib_syncbuf should not be defined before c++20"
1198 # endif
1199 
1200 # ifdef __cpp_lib_three_way_comparison
1201 #   error "__cpp_lib_three_way_comparison should not be defined before c++20"
1202 # endif
1203 
1204 # ifdef __cpp_lib_to_address
1205 #   error "__cpp_lib_to_address should not be defined before c++20"
1206 # endif
1207 
1208 # ifdef __cpp_lib_to_array
1209 #   error "__cpp_lib_to_array should not be defined before c++20"
1210 # endif
1211 
1212 # ifdef __cpp_lib_to_chars
1213 #   error "__cpp_lib_to_chars should not be defined before c++17"
1214 # endif
1215 
1216 # ifndef __cpp_lib_transformation_trait_aliases
1217 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++14"
1218 # endif
1219 # if __cpp_lib_transformation_trait_aliases != 201304L
1220 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14"
1221 # endif
1222 
1223 # ifndef __cpp_lib_transparent_operators
1224 #   error "__cpp_lib_transparent_operators should be defined in c++14"
1225 # endif
1226 # if __cpp_lib_transparent_operators != 201210L
1227 #   error "__cpp_lib_transparent_operators should have the value 201210L in c++14"
1228 # endif
1229 
1230 # ifndef __cpp_lib_tuple_element_t
1231 #   error "__cpp_lib_tuple_element_t should be defined in c++14"
1232 # endif
1233 # if __cpp_lib_tuple_element_t != 201402L
1234 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++14"
1235 # endif
1236 
1237 # ifndef __cpp_lib_tuples_by_type
1238 #   error "__cpp_lib_tuples_by_type should be defined in c++14"
1239 # endif
1240 # if __cpp_lib_tuples_by_type != 201304L
1241 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++14"
1242 # endif
1243 
1244 # ifdef __cpp_lib_type_trait_variable_templates
1245 #   error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
1246 # endif
1247 
1248 # ifdef __cpp_lib_uncaught_exceptions
1249 #   error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
1250 # endif
1251 
1252 # ifdef __cpp_lib_unordered_map_try_emplace
1253 #   error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
1254 # endif
1255 
1256 # ifdef __cpp_lib_unwrap_ref
1257 #   error "__cpp_lib_unwrap_ref should not be defined before c++20"
1258 # endif
1259 
1260 # ifdef __cpp_lib_variant
1261 #   error "__cpp_lib_variant should not be defined before c++17"
1262 # endif
1263 
1264 # ifdef __cpp_lib_void_t
1265 #   error "__cpp_lib_void_t should not be defined before c++17"
1266 # endif
1267 
1268 #elif TEST_STD_VER == 17
1269 
1270 # if TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700
1271 #   ifndef __cpp_lib_addressof_constexpr
1272 #     error "__cpp_lib_addressof_constexpr should be defined in c++17"
1273 #   endif
1274 #   if __cpp_lib_addressof_constexpr != 201603L
1275 #     error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17"
1276 #   endif
1277 # else
1278 #   ifdef __cpp_lib_addressof_constexpr
1279 #     error "__cpp_lib_addressof_constexpr should not be defined when TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700 is not defined!"
1280 #   endif
1281 # endif
1282 
1283 # ifndef __cpp_lib_allocator_traits_is_always_equal
1284 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"
1285 # endif
1286 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
1287 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
1288 # endif
1289 
1290 # ifndef __cpp_lib_any
1291 #   error "__cpp_lib_any should be defined in c++17"
1292 # endif
1293 # if __cpp_lib_any != 201606L
1294 #   error "__cpp_lib_any should have the value 201606L in c++17"
1295 # endif
1296 
1297 # ifndef __cpp_lib_apply
1298 #   error "__cpp_lib_apply should be defined in c++17"
1299 # endif
1300 # if __cpp_lib_apply != 201603L
1301 #   error "__cpp_lib_apply should have the value 201603L in c++17"
1302 # endif
1303 
1304 # ifndef __cpp_lib_array_constexpr
1305 #   error "__cpp_lib_array_constexpr should be defined in c++17"
1306 # endif
1307 # if __cpp_lib_array_constexpr != 201603L
1308 #   error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
1309 # endif
1310 
1311 # ifndef __cpp_lib_as_const
1312 #   error "__cpp_lib_as_const should be defined in c++17"
1313 # endif
1314 # if __cpp_lib_as_const != 201510L
1315 #   error "__cpp_lib_as_const should have the value 201510L in c++17"
1316 # endif
1317 
1318 # ifdef __cpp_lib_assume_aligned
1319 #   error "__cpp_lib_assume_aligned should not be defined before c++20"
1320 # endif
1321 
1322 # ifdef __cpp_lib_atomic_flag_test
1323 #   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
1324 # endif
1325 
1326 # ifdef __cpp_lib_atomic_float
1327 #   error "__cpp_lib_atomic_float should not be defined before c++20"
1328 # endif
1329 
1330 # if !defined(_LIBCPP_HAS_NO_THREADS)
1331 #   ifndef __cpp_lib_atomic_is_always_lock_free
1332 #     error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17"
1333 #   endif
1334 #   if __cpp_lib_atomic_is_always_lock_free != 201603L
1335 #     error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17"
1336 #   endif
1337 # else
1338 #   ifdef __cpp_lib_atomic_is_always_lock_free
1339 #     error "__cpp_lib_atomic_is_always_lock_free should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
1340 #   endif
1341 # endif
1342 
1343 # ifdef __cpp_lib_atomic_lock_free_type_aliases
1344 #   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
1345 # endif
1346 
1347 # ifdef __cpp_lib_atomic_ref
1348 #   error "__cpp_lib_atomic_ref should not be defined before c++20"
1349 # endif
1350 
1351 # ifdef __cpp_lib_atomic_shared_ptr
1352 #   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
1353 # endif
1354 
1355 # ifdef __cpp_lib_atomic_value_initialization
1356 #   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
1357 # endif
1358 
1359 # ifdef __cpp_lib_atomic_wait
1360 #   error "__cpp_lib_atomic_wait should not be defined before c++20"
1361 # endif
1362 
1363 # ifdef __cpp_lib_barrier
1364 #   error "__cpp_lib_barrier should not be defined before c++20"
1365 # endif
1366 
1367 # ifdef __cpp_lib_bind_front
1368 #   error "__cpp_lib_bind_front should not be defined before c++20"
1369 # endif
1370 
1371 # ifdef __cpp_lib_bit_cast
1372 #   error "__cpp_lib_bit_cast should not be defined before c++20"
1373 # endif
1374 
1375 # ifdef __cpp_lib_bitops
1376 #   error "__cpp_lib_bitops should not be defined before c++20"
1377 # endif
1378 
1379 # ifndef __cpp_lib_bool_constant
1380 #   error "__cpp_lib_bool_constant should be defined in c++17"
1381 # endif
1382 # if __cpp_lib_bool_constant != 201505L
1383 #   error "__cpp_lib_bool_constant should have the value 201505L in c++17"
1384 # endif
1385 
1386 # ifdef __cpp_lib_bounded_array_traits
1387 #   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
1388 # endif
1389 
1390 # if !defined(_LIBCPP_VERSION)
1391 #   ifndef __cpp_lib_boyer_moore_searcher
1392 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
1393 #   endif
1394 #   if __cpp_lib_boyer_moore_searcher != 201603L
1395 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
1396 #   endif
1397 # else // _LIBCPP_VERSION
1398 #   ifdef __cpp_lib_boyer_moore_searcher
1399 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
1400 #   endif
1401 # endif
1402 
1403 # ifndef __cpp_lib_byte
1404 #   error "__cpp_lib_byte should be defined in c++17"
1405 # endif
1406 # if __cpp_lib_byte != 201603L
1407 #   error "__cpp_lib_byte should have the value 201603L in c++17"
1408 # endif
1409 
1410 # ifdef __cpp_lib_char8_t
1411 #   error "__cpp_lib_char8_t should not be defined before c++20"
1412 # endif
1413 
1414 # ifndef __cpp_lib_chrono
1415 #   error "__cpp_lib_chrono should be defined in c++17"
1416 # endif
1417 # if __cpp_lib_chrono != 201611L
1418 #   error "__cpp_lib_chrono should have the value 201611L in c++17"
1419 # endif
1420 
1421 # ifndef __cpp_lib_chrono_udls
1422 #   error "__cpp_lib_chrono_udls should be defined in c++17"
1423 # endif
1424 # if __cpp_lib_chrono_udls != 201304L
1425 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
1426 # endif
1427 
1428 # ifndef __cpp_lib_clamp
1429 #   error "__cpp_lib_clamp should be defined in c++17"
1430 # endif
1431 # if __cpp_lib_clamp != 201603L
1432 #   error "__cpp_lib_clamp should have the value 201603L in c++17"
1433 # endif
1434 
1435 # ifndef __cpp_lib_complex_udls
1436 #   error "__cpp_lib_complex_udls should be defined in c++17"
1437 # endif
1438 # if __cpp_lib_complex_udls != 201309L
1439 #   error "__cpp_lib_complex_udls should have the value 201309L in c++17"
1440 # endif
1441 
1442 # ifdef __cpp_lib_concepts
1443 #   error "__cpp_lib_concepts should not be defined before c++20"
1444 # endif
1445 
1446 # ifdef __cpp_lib_constexpr_algorithms
1447 #   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
1448 # endif
1449 
1450 # ifdef __cpp_lib_constexpr_complex
1451 #   error "__cpp_lib_constexpr_complex should not be defined before c++20"
1452 # endif
1453 
1454 # ifdef __cpp_lib_constexpr_dynamic_alloc
1455 #   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
1456 # endif
1457 
1458 # ifdef __cpp_lib_constexpr_functional
1459 #   error "__cpp_lib_constexpr_functional should not be defined before c++20"
1460 # endif
1461 
1462 # ifdef __cpp_lib_constexpr_iterator
1463 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
1464 # endif
1465 
1466 # ifdef __cpp_lib_constexpr_memory
1467 #   error "__cpp_lib_constexpr_memory should not be defined before c++20"
1468 # endif
1469 
1470 # ifdef __cpp_lib_constexpr_numeric
1471 #   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
1472 # endif
1473 
1474 # ifdef __cpp_lib_constexpr_string
1475 #   error "__cpp_lib_constexpr_string should not be defined before c++20"
1476 # endif
1477 
1478 # ifdef __cpp_lib_constexpr_string_view
1479 #   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
1480 # endif
1481 
1482 # ifdef __cpp_lib_constexpr_tuple
1483 #   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
1484 # endif
1485 
1486 # ifdef __cpp_lib_constexpr_utility
1487 #   error "__cpp_lib_constexpr_utility should not be defined before c++20"
1488 # endif
1489 
1490 # ifdef __cpp_lib_constexpr_vector
1491 #   error "__cpp_lib_constexpr_vector should not be defined before c++20"
1492 # endif
1493 
1494 # ifdef __cpp_lib_coroutine
1495 #   error "__cpp_lib_coroutine should not be defined before c++20"
1496 # endif
1497 
1498 # ifdef __cpp_lib_destroying_delete
1499 #   error "__cpp_lib_destroying_delete should not be defined before c++20"
1500 # endif
1501 
1502 # ifndef __cpp_lib_enable_shared_from_this
1503 #   error "__cpp_lib_enable_shared_from_this should be defined in c++17"
1504 # endif
1505 # if __cpp_lib_enable_shared_from_this != 201603L
1506 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
1507 # endif
1508 
1509 # ifdef __cpp_lib_endian
1510 #   error "__cpp_lib_endian should not be defined before c++20"
1511 # endif
1512 
1513 # ifdef __cpp_lib_erase_if
1514 #   error "__cpp_lib_erase_if should not be defined before c++20"
1515 # endif
1516 
1517 # ifndef __cpp_lib_exchange_function
1518 #   error "__cpp_lib_exchange_function should be defined in c++17"
1519 # endif
1520 # if __cpp_lib_exchange_function != 201304L
1521 #   error "__cpp_lib_exchange_function should have the value 201304L in c++17"
1522 # endif
1523 
1524 # if !defined(_LIBCPP_VERSION)
1525 #   ifndef __cpp_lib_execution
1526 #     error "__cpp_lib_execution should be defined in c++17"
1527 #   endif
1528 #   if __cpp_lib_execution != 201603L
1529 #     error "__cpp_lib_execution should have the value 201603L in c++17"
1530 #   endif
1531 # else // _LIBCPP_VERSION
1532 #   ifdef __cpp_lib_execution
1533 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
1534 #   endif
1535 # endif
1536 
1537 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
1538 #   ifndef __cpp_lib_filesystem
1539 #     error "__cpp_lib_filesystem should be defined in c++17"
1540 #   endif
1541 #   if __cpp_lib_filesystem != 201703L
1542 #     error "__cpp_lib_filesystem should have the value 201703L in c++17"
1543 #   endif
1544 # else
1545 #   ifdef __cpp_lib_filesystem
1546 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
1547 #   endif
1548 # endif
1549 
1550 # ifndef __cpp_lib_gcd_lcm
1551 #   error "__cpp_lib_gcd_lcm should be defined in c++17"
1552 # endif
1553 # if __cpp_lib_gcd_lcm != 201606L
1554 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
1555 # endif
1556 
1557 # ifndef __cpp_lib_generic_associative_lookup
1558 #   error "__cpp_lib_generic_associative_lookup should be defined in c++17"
1559 # endif
1560 # if __cpp_lib_generic_associative_lookup != 201304L
1561 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
1562 # endif
1563 
1564 # ifdef __cpp_lib_generic_unordered_lookup
1565 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
1566 # endif
1567 
1568 # if !defined(_LIBCPP_VERSION)
1569 #   ifndef __cpp_lib_hardware_interference_size
1570 #     error "__cpp_lib_hardware_interference_size should be defined in c++17"
1571 #   endif
1572 #   if __cpp_lib_hardware_interference_size != 201703L
1573 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
1574 #   endif
1575 # else // _LIBCPP_VERSION
1576 #   ifdef __cpp_lib_hardware_interference_size
1577 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
1578 #   endif
1579 # endif
1580 
1581 # if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
1582 #   ifndef __cpp_lib_has_unique_object_representations
1583 #     error "__cpp_lib_has_unique_object_representations should be defined in c++17"
1584 #   endif
1585 #   if __cpp_lib_has_unique_object_representations != 201606L
1586 #     error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
1587 #   endif
1588 # else
1589 #   ifdef __cpp_lib_has_unique_object_representations
1590 #     error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
1591 #   endif
1592 # endif
1593 
1594 # ifndef __cpp_lib_hypot
1595 #   error "__cpp_lib_hypot should be defined in c++17"
1596 # endif
1597 # if __cpp_lib_hypot != 201603L
1598 #   error "__cpp_lib_hypot should have the value 201603L in c++17"
1599 # endif
1600 
1601 # ifndef __cpp_lib_incomplete_container_elements
1602 #   error "__cpp_lib_incomplete_container_elements should be defined in c++17"
1603 # endif
1604 # if __cpp_lib_incomplete_container_elements != 201505L
1605 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
1606 # endif
1607 
1608 # ifdef __cpp_lib_int_pow2
1609 #   error "__cpp_lib_int_pow2 should not be defined before c++20"
1610 # endif
1611 
1612 # ifdef __cpp_lib_integer_comparison_functions
1613 #   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
1614 # endif
1615 
1616 # ifndef __cpp_lib_integer_sequence
1617 #   error "__cpp_lib_integer_sequence should be defined in c++17"
1618 # endif
1619 # if __cpp_lib_integer_sequence != 201304L
1620 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
1621 # endif
1622 
1623 # ifndef __cpp_lib_integral_constant_callable
1624 #   error "__cpp_lib_integral_constant_callable should be defined in c++17"
1625 # endif
1626 # if __cpp_lib_integral_constant_callable != 201304L
1627 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
1628 # endif
1629 
1630 # ifdef __cpp_lib_interpolate
1631 #   error "__cpp_lib_interpolate should not be defined before c++20"
1632 # endif
1633 
1634 # ifndef __cpp_lib_invoke
1635 #   error "__cpp_lib_invoke should be defined in c++17"
1636 # endif
1637 # if __cpp_lib_invoke != 201411L
1638 #   error "__cpp_lib_invoke should have the value 201411L in c++17"
1639 # endif
1640 
1641 # if TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001
1642 #   ifndef __cpp_lib_is_aggregate
1643 #     error "__cpp_lib_is_aggregate should be defined in c++17"
1644 #   endif
1645 #   if __cpp_lib_is_aggregate != 201703L
1646 #     error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
1647 #   endif
1648 # else
1649 #   ifdef __cpp_lib_is_aggregate
1650 #     error "__cpp_lib_is_aggregate should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001 is not defined!"
1651 #   endif
1652 # endif
1653 
1654 # ifdef __cpp_lib_is_constant_evaluated
1655 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
1656 # endif
1657 
1658 # ifndef __cpp_lib_is_final
1659 #   error "__cpp_lib_is_final should be defined in c++17"
1660 # endif
1661 # if __cpp_lib_is_final != 201402L
1662 #   error "__cpp_lib_is_final should have the value 201402L in c++17"
1663 # endif
1664 
1665 # ifndef __cpp_lib_is_invocable
1666 #   error "__cpp_lib_is_invocable should be defined in c++17"
1667 # endif
1668 # if __cpp_lib_is_invocable != 201703L
1669 #   error "__cpp_lib_is_invocable should have the value 201703L in c++17"
1670 # endif
1671 
1672 # ifdef __cpp_lib_is_layout_compatible
1673 #   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
1674 # endif
1675 
1676 # ifdef __cpp_lib_is_nothrow_convertible
1677 #   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
1678 # endif
1679 
1680 # ifndef __cpp_lib_is_null_pointer
1681 #   error "__cpp_lib_is_null_pointer should be defined in c++17"
1682 # endif
1683 # if __cpp_lib_is_null_pointer != 201309L
1684 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
1685 # endif
1686 
1687 # ifdef __cpp_lib_is_pointer_interconvertible
1688 #   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
1689 # endif
1690 
1691 # ifdef __cpp_lib_is_scoped_enum
1692 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
1693 # endif
1694 
1695 # ifndef __cpp_lib_is_swappable
1696 #   error "__cpp_lib_is_swappable should be defined in c++17"
1697 # endif
1698 # if __cpp_lib_is_swappable != 201603L
1699 #   error "__cpp_lib_is_swappable should have the value 201603L in c++17"
1700 # endif
1701 
1702 # ifdef __cpp_lib_jthread
1703 #   error "__cpp_lib_jthread should not be defined before c++20"
1704 # endif
1705 
1706 # ifdef __cpp_lib_latch
1707 #   error "__cpp_lib_latch should not be defined before c++20"
1708 # endif
1709 
1710 # ifndef __cpp_lib_launder
1711 #   error "__cpp_lib_launder should be defined in c++17"
1712 # endif
1713 # if __cpp_lib_launder != 201606L
1714 #   error "__cpp_lib_launder should have the value 201606L in c++17"
1715 # endif
1716 
1717 # ifdef __cpp_lib_list_remove_return_type
1718 #   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
1719 # endif
1720 
1721 # ifndef __cpp_lib_logical_traits
1722 #   error "__cpp_lib_logical_traits should be defined in c++17"
1723 # endif
1724 # if __cpp_lib_logical_traits != 201510L
1725 #   error "__cpp_lib_logical_traits should have the value 201510L in c++17"
1726 # endif
1727 
1728 # ifndef __cpp_lib_make_from_tuple
1729 #   error "__cpp_lib_make_from_tuple should be defined in c++17"
1730 # endif
1731 # if __cpp_lib_make_from_tuple != 201606L
1732 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
1733 # endif
1734 
1735 # ifndef __cpp_lib_make_reverse_iterator
1736 #   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
1737 # endif
1738 # if __cpp_lib_make_reverse_iterator != 201402L
1739 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
1740 # endif
1741 
1742 # ifndef __cpp_lib_make_unique
1743 #   error "__cpp_lib_make_unique should be defined in c++17"
1744 # endif
1745 # if __cpp_lib_make_unique != 201304L
1746 #   error "__cpp_lib_make_unique should have the value 201304L in c++17"
1747 # endif
1748 
1749 # ifndef __cpp_lib_map_try_emplace
1750 #   error "__cpp_lib_map_try_emplace should be defined in c++17"
1751 # endif
1752 # if __cpp_lib_map_try_emplace != 201411L
1753 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
1754 # endif
1755 
1756 # ifdef __cpp_lib_math_constants
1757 #   error "__cpp_lib_math_constants should not be defined before c++20"
1758 # endif
1759 
1760 # if !defined(_LIBCPP_VERSION)
1761 #   ifndef __cpp_lib_math_special_functions
1762 #     error "__cpp_lib_math_special_functions should be defined in c++17"
1763 #   endif
1764 #   if __cpp_lib_math_special_functions != 201603L
1765 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
1766 #   endif
1767 # else // _LIBCPP_VERSION
1768 #   ifdef __cpp_lib_math_special_functions
1769 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
1770 #   endif
1771 # endif
1772 
1773 # if !defined(_LIBCPP_VERSION)
1774 #   ifndef __cpp_lib_memory_resource
1775 #     error "__cpp_lib_memory_resource should be defined in c++17"
1776 #   endif
1777 #   if __cpp_lib_memory_resource != 201603L
1778 #     error "__cpp_lib_memory_resource should have the value 201603L in c++17"
1779 #   endif
1780 # else // _LIBCPP_VERSION
1781 #   ifdef __cpp_lib_memory_resource
1782 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
1783 #   endif
1784 # endif
1785 
1786 # ifndef __cpp_lib_node_extract
1787 #   error "__cpp_lib_node_extract should be defined in c++17"
1788 # endif
1789 # if __cpp_lib_node_extract != 201606L
1790 #   error "__cpp_lib_node_extract should have the value 201606L in c++17"
1791 # endif
1792 
1793 # ifndef __cpp_lib_nonmember_container_access
1794 #   error "__cpp_lib_nonmember_container_access should be defined in c++17"
1795 # endif
1796 # if __cpp_lib_nonmember_container_access != 201411L
1797 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
1798 # endif
1799 
1800 # ifndef __cpp_lib_not_fn
1801 #   error "__cpp_lib_not_fn should be defined in c++17"
1802 # endif
1803 # if __cpp_lib_not_fn != 201603L
1804 #   error "__cpp_lib_not_fn should have the value 201603L in c++17"
1805 # endif
1806 
1807 # ifndef __cpp_lib_null_iterators
1808 #   error "__cpp_lib_null_iterators should be defined in c++17"
1809 # endif
1810 # if __cpp_lib_null_iterators != 201304L
1811 #   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
1812 # endif
1813 
1814 # ifndef __cpp_lib_optional
1815 #   error "__cpp_lib_optional should be defined in c++17"
1816 # endif
1817 # if __cpp_lib_optional != 201606L
1818 #   error "__cpp_lib_optional should have the value 201606L in c++17"
1819 # endif
1820 
1821 # if !defined(_LIBCPP_VERSION)
1822 #   ifndef __cpp_lib_parallel_algorithm
1823 #     error "__cpp_lib_parallel_algorithm should be defined in c++17"
1824 #   endif
1825 #   if __cpp_lib_parallel_algorithm != 201603L
1826 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
1827 #   endif
1828 # else // _LIBCPP_VERSION
1829 #   ifdef __cpp_lib_parallel_algorithm
1830 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
1831 #   endif
1832 # endif
1833 
1834 # ifdef __cpp_lib_polymorphic_allocator
1835 #   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
1836 # endif
1837 
1838 # ifndef __cpp_lib_quoted_string_io
1839 #   error "__cpp_lib_quoted_string_io should be defined in c++17"
1840 # endif
1841 # if __cpp_lib_quoted_string_io != 201304L
1842 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
1843 # endif
1844 
1845 # ifdef __cpp_lib_ranges
1846 #   error "__cpp_lib_ranges should not be defined before c++20"
1847 # endif
1848 
1849 # ifndef __cpp_lib_raw_memory_algorithms
1850 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
1851 # endif
1852 # if __cpp_lib_raw_memory_algorithms != 201606L
1853 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
1854 # endif
1855 
1856 # ifdef __cpp_lib_remove_cvref
1857 #   error "__cpp_lib_remove_cvref should not be defined before c++20"
1858 # endif
1859 
1860 # ifndef __cpp_lib_result_of_sfinae
1861 #   error "__cpp_lib_result_of_sfinae should be defined in c++17"
1862 # endif
1863 # if __cpp_lib_result_of_sfinae != 201210L
1864 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
1865 # endif
1866 
1867 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
1868 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
1869 # endif
1870 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
1871 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
1872 # endif
1873 
1874 # ifndef __cpp_lib_sample
1875 #   error "__cpp_lib_sample should be defined in c++17"
1876 # endif
1877 # if __cpp_lib_sample != 201603L
1878 #   error "__cpp_lib_sample should have the value 201603L in c++17"
1879 # endif
1880 
1881 # ifndef __cpp_lib_scoped_lock
1882 #   error "__cpp_lib_scoped_lock should be defined in c++17"
1883 # endif
1884 # if __cpp_lib_scoped_lock != 201703L
1885 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
1886 # endif
1887 
1888 # ifdef __cpp_lib_semaphore
1889 #   error "__cpp_lib_semaphore should not be defined before c++20"
1890 # endif
1891 
1892 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
1893 #   ifndef __cpp_lib_shared_mutex
1894 #     error "__cpp_lib_shared_mutex should be defined in c++17"
1895 #   endif
1896 #   if __cpp_lib_shared_mutex != 201505L
1897 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
1898 #   endif
1899 # else
1900 #   ifdef __cpp_lib_shared_mutex
1901 #     error "__cpp_lib_shared_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex) is not defined!"
1902 #   endif
1903 # endif
1904 
1905 # ifndef __cpp_lib_shared_ptr_arrays
1906 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
1907 # endif
1908 # if __cpp_lib_shared_ptr_arrays != 201611L
1909 #   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
1910 # endif
1911 
1912 # ifndef __cpp_lib_shared_ptr_weak_type
1913 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
1914 # endif
1915 # if __cpp_lib_shared_ptr_weak_type != 201606L
1916 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
1917 # endif
1918 
1919 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
1920 #   ifndef __cpp_lib_shared_timed_mutex
1921 #     error "__cpp_lib_shared_timed_mutex should be defined in c++17"
1922 #   endif
1923 #   if __cpp_lib_shared_timed_mutex != 201402L
1924 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
1925 #   endif
1926 # else
1927 #   ifdef __cpp_lib_shared_timed_mutex
1928 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex) is not defined!"
1929 #   endif
1930 # endif
1931 
1932 # ifdef __cpp_lib_shift
1933 #   error "__cpp_lib_shift should not be defined before c++20"
1934 # endif
1935 
1936 # ifdef __cpp_lib_smart_ptr_for_overwrite
1937 #   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
1938 # endif
1939 
1940 # ifdef __cpp_lib_source_location
1941 #   error "__cpp_lib_source_location should not be defined before c++20"
1942 # endif
1943 
1944 # ifdef __cpp_lib_span
1945 #   error "__cpp_lib_span should not be defined before c++20"
1946 # endif
1947 
1948 # ifdef __cpp_lib_ssize
1949 #   error "__cpp_lib_ssize should not be defined before c++20"
1950 # endif
1951 
1952 # ifdef __cpp_lib_stacktrace
1953 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
1954 # endif
1955 
1956 # ifdef __cpp_lib_starts_ends_with
1957 #   error "__cpp_lib_starts_ends_with should not be defined before c++20"
1958 # endif
1959 
1960 # ifdef __cpp_lib_stdatomic_h
1961 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
1962 # endif
1963 
1964 # ifdef __cpp_lib_string_contains
1965 #   error "__cpp_lib_string_contains should not be defined before c++2b"
1966 # endif
1967 
1968 # ifndef __cpp_lib_string_udls
1969 #   error "__cpp_lib_string_udls should be defined in c++17"
1970 # endif
1971 # if __cpp_lib_string_udls != 201304L
1972 #   error "__cpp_lib_string_udls should have the value 201304L in c++17"
1973 # endif
1974 
1975 # ifndef __cpp_lib_string_view
1976 #   error "__cpp_lib_string_view should be defined in c++17"
1977 # endif
1978 # if __cpp_lib_string_view != 201606L
1979 #   error "__cpp_lib_string_view should have the value 201606L in c++17"
1980 # endif
1981 
1982 # ifdef __cpp_lib_syncbuf
1983 #   error "__cpp_lib_syncbuf should not be defined before c++20"
1984 # endif
1985 
1986 # ifdef __cpp_lib_three_way_comparison
1987 #   error "__cpp_lib_three_way_comparison should not be defined before c++20"
1988 # endif
1989 
1990 # ifdef __cpp_lib_to_address
1991 #   error "__cpp_lib_to_address should not be defined before c++20"
1992 # endif
1993 
1994 # ifdef __cpp_lib_to_array
1995 #   error "__cpp_lib_to_array should not be defined before c++20"
1996 # endif
1997 
1998 # if !defined(_LIBCPP_VERSION)
1999 #   ifndef __cpp_lib_to_chars
2000 #     error "__cpp_lib_to_chars should be defined in c++17"
2001 #   endif
2002 #   if __cpp_lib_to_chars != 201611L
2003 #     error "__cpp_lib_to_chars should have the value 201611L in c++17"
2004 #   endif
2005 # else // _LIBCPP_VERSION
2006 #   ifdef __cpp_lib_to_chars
2007 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
2008 #   endif
2009 # endif
2010 
2011 # ifndef __cpp_lib_transformation_trait_aliases
2012 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
2013 # endif
2014 # if __cpp_lib_transformation_trait_aliases != 201304L
2015 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
2016 # endif
2017 
2018 # ifndef __cpp_lib_transparent_operators
2019 #   error "__cpp_lib_transparent_operators should be defined in c++17"
2020 # endif
2021 # if __cpp_lib_transparent_operators != 201510L
2022 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
2023 # endif
2024 
2025 # ifndef __cpp_lib_tuple_element_t
2026 #   error "__cpp_lib_tuple_element_t should be defined in c++17"
2027 # endif
2028 # if __cpp_lib_tuple_element_t != 201402L
2029 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
2030 # endif
2031 
2032 # ifndef __cpp_lib_tuples_by_type
2033 #   error "__cpp_lib_tuples_by_type should be defined in c++17"
2034 # endif
2035 # if __cpp_lib_tuples_by_type != 201304L
2036 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
2037 # endif
2038 
2039 # ifndef __cpp_lib_type_trait_variable_templates
2040 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
2041 # endif
2042 # if __cpp_lib_type_trait_variable_templates != 201510L
2043 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
2044 # endif
2045 
2046 # ifndef __cpp_lib_uncaught_exceptions
2047 #   error "__cpp_lib_uncaught_exceptions should be defined in c++17"
2048 # endif
2049 # if __cpp_lib_uncaught_exceptions != 201411L
2050 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
2051 # endif
2052 
2053 # ifndef __cpp_lib_unordered_map_try_emplace
2054 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
2055 # endif
2056 # if __cpp_lib_unordered_map_try_emplace != 201411L
2057 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
2058 # endif
2059 
2060 # ifdef __cpp_lib_unwrap_ref
2061 #   error "__cpp_lib_unwrap_ref should not be defined before c++20"
2062 # endif
2063 
2064 # ifndef __cpp_lib_variant
2065 #   error "__cpp_lib_variant should be defined in c++17"
2066 # endif
2067 # if __cpp_lib_variant != 201606L
2068 #   error "__cpp_lib_variant should have the value 201606L in c++17"
2069 # endif
2070 
2071 # ifndef __cpp_lib_void_t
2072 #   error "__cpp_lib_void_t should be defined in c++17"
2073 # endif
2074 # if __cpp_lib_void_t != 201411L
2075 #   error "__cpp_lib_void_t should have the value 201411L in c++17"
2076 # endif
2077 
2078 #elif TEST_STD_VER == 20
2079 
2080 # if TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700
2081 #   ifndef __cpp_lib_addressof_constexpr
2082 #     error "__cpp_lib_addressof_constexpr should be defined in c++20"
2083 #   endif
2084 #   if __cpp_lib_addressof_constexpr != 201603L
2085 #     error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20"
2086 #   endif
2087 # else
2088 #   ifdef __cpp_lib_addressof_constexpr
2089 #     error "__cpp_lib_addressof_constexpr should not be defined when TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700 is not defined!"
2090 #   endif
2091 # endif
2092 
2093 # ifndef __cpp_lib_allocator_traits_is_always_equal
2094 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"
2095 # endif
2096 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
2097 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
2098 # endif
2099 
2100 # ifndef __cpp_lib_any
2101 #   error "__cpp_lib_any should be defined in c++20"
2102 # endif
2103 # if __cpp_lib_any != 201606L
2104 #   error "__cpp_lib_any should have the value 201606L in c++20"
2105 # endif
2106 
2107 # ifndef __cpp_lib_apply
2108 #   error "__cpp_lib_apply should be defined in c++20"
2109 # endif
2110 # if __cpp_lib_apply != 201603L
2111 #   error "__cpp_lib_apply should have the value 201603L in c++20"
2112 # endif
2113 
2114 # ifndef __cpp_lib_array_constexpr
2115 #   error "__cpp_lib_array_constexpr should be defined in c++20"
2116 # endif
2117 # if __cpp_lib_array_constexpr != 201811L
2118 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
2119 # endif
2120 
2121 # ifndef __cpp_lib_as_const
2122 #   error "__cpp_lib_as_const should be defined in c++20"
2123 # endif
2124 # if __cpp_lib_as_const != 201510L
2125 #   error "__cpp_lib_as_const should have the value 201510L in c++20"
2126 # endif
2127 
2128 # if !defined(_LIBCPP_VERSION)
2129 #   ifndef __cpp_lib_assume_aligned
2130 #     error "__cpp_lib_assume_aligned should be defined in c++20"
2131 #   endif
2132 #   if __cpp_lib_assume_aligned != 201811L
2133 #     error "__cpp_lib_assume_aligned should have the value 201811L in c++20"
2134 #   endif
2135 # else // _LIBCPP_VERSION
2136 #   ifdef __cpp_lib_assume_aligned
2137 #     error "__cpp_lib_assume_aligned should not be defined because it is unimplemented in libc++!"
2138 #   endif
2139 # endif
2140 
2141 # if !defined(_LIBCPP_HAS_NO_THREADS)
2142 #   ifndef __cpp_lib_atomic_flag_test
2143 #     error "__cpp_lib_atomic_flag_test should be defined in c++20"
2144 #   endif
2145 #   if __cpp_lib_atomic_flag_test != 201907L
2146 #     error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
2147 #   endif
2148 # else
2149 #   ifdef __cpp_lib_atomic_flag_test
2150 #     error "__cpp_lib_atomic_flag_test should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
2151 #   endif
2152 # endif
2153 
2154 # if !defined(_LIBCPP_VERSION)
2155 #   ifndef __cpp_lib_atomic_float
2156 #     error "__cpp_lib_atomic_float should be defined in c++20"
2157 #   endif
2158 #   if __cpp_lib_atomic_float != 201711L
2159 #     error "__cpp_lib_atomic_float should have the value 201711L in c++20"
2160 #   endif
2161 # else // _LIBCPP_VERSION
2162 #   ifdef __cpp_lib_atomic_float
2163 #     error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
2164 #   endif
2165 # endif
2166 
2167 # if !defined(_LIBCPP_HAS_NO_THREADS)
2168 #   ifndef __cpp_lib_atomic_is_always_lock_free
2169 #     error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20"
2170 #   endif
2171 #   if __cpp_lib_atomic_is_always_lock_free != 201603L
2172 #     error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20"
2173 #   endif
2174 # else
2175 #   ifdef __cpp_lib_atomic_is_always_lock_free
2176 #     error "__cpp_lib_atomic_is_always_lock_free should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
2177 #   endif
2178 # endif
2179 
2180 # if !defined(_LIBCPP_HAS_NO_THREADS)
2181 #   ifndef __cpp_lib_atomic_lock_free_type_aliases
2182 #     error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20"
2183 #   endif
2184 #   if __cpp_lib_atomic_lock_free_type_aliases != 201907L
2185 #     error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20"
2186 #   endif
2187 # else
2188 #   ifdef __cpp_lib_atomic_lock_free_type_aliases
2189 #     error "__cpp_lib_atomic_lock_free_type_aliases should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
2190 #   endif
2191 # endif
2192 
2193 # if !defined(_LIBCPP_VERSION)
2194 #   ifndef __cpp_lib_atomic_ref
2195 #     error "__cpp_lib_atomic_ref should be defined in c++20"
2196 #   endif
2197 #   if __cpp_lib_atomic_ref != 201806L
2198 #     error "__cpp_lib_atomic_ref should have the value 201806L in c++20"
2199 #   endif
2200 # else // _LIBCPP_VERSION
2201 #   ifdef __cpp_lib_atomic_ref
2202 #     error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
2203 #   endif
2204 # endif
2205 
2206 # if !defined(_LIBCPP_VERSION)
2207 #   ifndef __cpp_lib_atomic_shared_ptr
2208 #     error "__cpp_lib_atomic_shared_ptr should be defined in c++20"
2209 #   endif
2210 #   if __cpp_lib_atomic_shared_ptr != 201711L
2211 #     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20"
2212 #   endif
2213 # else // _LIBCPP_VERSION
2214 #   ifdef __cpp_lib_atomic_shared_ptr
2215 #     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
2216 #   endif
2217 # endif
2218 
2219 # if !defined(_LIBCPP_VERSION)
2220 #   ifndef __cpp_lib_atomic_value_initialization
2221 #     error "__cpp_lib_atomic_value_initialization should be defined in c++20"
2222 #   endif
2223 #   if __cpp_lib_atomic_value_initialization != 201911L
2224 #     error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20"
2225 #   endif
2226 # else // _LIBCPP_VERSION
2227 #   ifdef __cpp_lib_atomic_value_initialization
2228 #     error "__cpp_lib_atomic_value_initialization should not be defined because it is unimplemented in libc++!"
2229 #   endif
2230 # endif
2231 
2232 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait)
2233 #   ifndef __cpp_lib_atomic_wait
2234 #     error "__cpp_lib_atomic_wait should be defined in c++20"
2235 #   endif
2236 #   if __cpp_lib_atomic_wait != 201907L
2237 #     error "__cpp_lib_atomic_wait should have the value 201907L in c++20"
2238 #   endif
2239 # else
2240 #   ifdef __cpp_lib_atomic_wait
2241 #     error "__cpp_lib_atomic_wait should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait) is not defined!"
2242 #   endif
2243 # endif
2244 
2245 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)
2246 #   ifndef __cpp_lib_barrier
2247 #     error "__cpp_lib_barrier should be defined in c++20"
2248 #   endif
2249 #   if __cpp_lib_barrier != 201907L
2250 #     error "__cpp_lib_barrier should have the value 201907L in c++20"
2251 #   endif
2252 # else
2253 #   ifdef __cpp_lib_barrier
2254 #     error "__cpp_lib_barrier should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier) is not defined!"
2255 #   endif
2256 # endif
2257 
2258 # if !defined(_LIBCPP_VERSION)
2259 #   ifndef __cpp_lib_bind_front
2260 #     error "__cpp_lib_bind_front should be defined in c++20"
2261 #   endif
2262 #   if __cpp_lib_bind_front != 201907L
2263 #     error "__cpp_lib_bind_front should have the value 201907L in c++20"
2264 #   endif
2265 # else // _LIBCPP_VERSION
2266 #   ifdef __cpp_lib_bind_front
2267 #     error "__cpp_lib_bind_front should not be defined because it is unimplemented in libc++!"
2268 #   endif
2269 # endif
2270 
2271 # if !defined(_LIBCPP_VERSION)
2272 #   ifndef __cpp_lib_bit_cast
2273 #     error "__cpp_lib_bit_cast should be defined in c++20"
2274 #   endif
2275 #   if __cpp_lib_bit_cast != 201806L
2276 #     error "__cpp_lib_bit_cast should have the value 201806L in c++20"
2277 #   endif
2278 # else // _LIBCPP_VERSION
2279 #   ifdef __cpp_lib_bit_cast
2280 #     error "__cpp_lib_bit_cast should not be defined because it is unimplemented in libc++!"
2281 #   endif
2282 # endif
2283 
2284 # if !defined(_LIBCPP_VERSION)
2285 #   ifndef __cpp_lib_bitops
2286 #     error "__cpp_lib_bitops should be defined in c++20"
2287 #   endif
2288 #   if __cpp_lib_bitops != 201907L
2289 #     error "__cpp_lib_bitops should have the value 201907L in c++20"
2290 #   endif
2291 # else // _LIBCPP_VERSION
2292 #   ifdef __cpp_lib_bitops
2293 #     error "__cpp_lib_bitops should not be defined because it is unimplemented in libc++!"
2294 #   endif
2295 # endif
2296 
2297 # ifndef __cpp_lib_bool_constant
2298 #   error "__cpp_lib_bool_constant should be defined in c++20"
2299 # endif
2300 # if __cpp_lib_bool_constant != 201505L
2301 #   error "__cpp_lib_bool_constant should have the value 201505L in c++20"
2302 # endif
2303 
2304 # ifndef __cpp_lib_bounded_array_traits
2305 #   error "__cpp_lib_bounded_array_traits should be defined in c++20"
2306 # endif
2307 # if __cpp_lib_bounded_array_traits != 201902L
2308 #   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
2309 # endif
2310 
2311 # if !defined(_LIBCPP_VERSION)
2312 #   ifndef __cpp_lib_boyer_moore_searcher
2313 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++20"
2314 #   endif
2315 #   if __cpp_lib_boyer_moore_searcher != 201603L
2316 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20"
2317 #   endif
2318 # else // _LIBCPP_VERSION
2319 #   ifdef __cpp_lib_boyer_moore_searcher
2320 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
2321 #   endif
2322 # endif
2323 
2324 # ifndef __cpp_lib_byte
2325 #   error "__cpp_lib_byte should be defined in c++20"
2326 # endif
2327 # if __cpp_lib_byte != 201603L
2328 #   error "__cpp_lib_byte should have the value 201603L in c++20"
2329 # endif
2330 
2331 # if defined(__cpp_char8_t)
2332 #   ifndef __cpp_lib_char8_t
2333 #     error "__cpp_lib_char8_t should be defined in c++20"
2334 #   endif
2335 #   if __cpp_lib_char8_t != 201811L
2336 #     error "__cpp_lib_char8_t should have the value 201811L in c++20"
2337 #   endif
2338 # else
2339 #   ifdef __cpp_lib_char8_t
2340 #     error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!"
2341 #   endif
2342 # endif
2343 
2344 # ifndef __cpp_lib_chrono
2345 #   error "__cpp_lib_chrono should be defined in c++20"
2346 # endif
2347 # if __cpp_lib_chrono != 201611L
2348 #   error "__cpp_lib_chrono should have the value 201611L in c++20"
2349 # endif
2350 
2351 # ifndef __cpp_lib_chrono_udls
2352 #   error "__cpp_lib_chrono_udls should be defined in c++20"
2353 # endif
2354 # if __cpp_lib_chrono_udls != 201304L
2355 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
2356 # endif
2357 
2358 # ifndef __cpp_lib_clamp
2359 #   error "__cpp_lib_clamp should be defined in c++20"
2360 # endif
2361 # if __cpp_lib_clamp != 201603L
2362 #   error "__cpp_lib_clamp should have the value 201603L in c++20"
2363 # endif
2364 
2365 # ifndef __cpp_lib_complex_udls
2366 #   error "__cpp_lib_complex_udls should be defined in c++20"
2367 # endif
2368 # if __cpp_lib_complex_udls != 201309L
2369 #   error "__cpp_lib_complex_udls should have the value 201309L in c++20"
2370 # endif
2371 
2372 # if !defined(_LIBCPP_VERSION)
2373 #   ifndef __cpp_lib_concepts
2374 #     error "__cpp_lib_concepts should be defined in c++20"
2375 #   endif
2376 #   if __cpp_lib_concepts != 202002L
2377 #     error "__cpp_lib_concepts should have the value 202002L in c++20"
2378 #   endif
2379 # else // _LIBCPP_VERSION
2380 #   ifdef __cpp_lib_concepts
2381 #     error "__cpp_lib_concepts should not be defined because it is unimplemented in libc++!"
2382 #   endif
2383 # endif
2384 
2385 # if !defined(_LIBCPP_VERSION)
2386 #   ifndef __cpp_lib_constexpr_algorithms
2387 #     error "__cpp_lib_constexpr_algorithms should be defined in c++20"
2388 #   endif
2389 #   if __cpp_lib_constexpr_algorithms != 201806L
2390 #     error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
2391 #   endif
2392 # else // _LIBCPP_VERSION
2393 #   ifdef __cpp_lib_constexpr_algorithms
2394 #     error "__cpp_lib_constexpr_algorithms should not be defined because it is unimplemented in libc++!"
2395 #   endif
2396 # endif
2397 
2398 # if !defined(_LIBCPP_VERSION)
2399 #   ifndef __cpp_lib_constexpr_complex
2400 #     error "__cpp_lib_constexpr_complex should be defined in c++20"
2401 #   endif
2402 #   if __cpp_lib_constexpr_complex != 201711L
2403 #     error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
2404 #   endif
2405 # else // _LIBCPP_VERSION
2406 #   ifdef __cpp_lib_constexpr_complex
2407 #     error "__cpp_lib_constexpr_complex should not be defined because it is unimplemented in libc++!"
2408 #   endif
2409 # endif
2410 
2411 # ifndef __cpp_lib_constexpr_dynamic_alloc
2412 #   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
2413 # endif
2414 # if __cpp_lib_constexpr_dynamic_alloc != 201907L
2415 #   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
2416 # endif
2417 
2418 # ifndef __cpp_lib_constexpr_functional
2419 #   error "__cpp_lib_constexpr_functional should be defined in c++20"
2420 # endif
2421 # if __cpp_lib_constexpr_functional != 201907L
2422 #   error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
2423 # endif
2424 
2425 # if !defined(_LIBCPP_VERSION)
2426 #   ifndef __cpp_lib_constexpr_iterator
2427 #     error "__cpp_lib_constexpr_iterator should be defined in c++20"
2428 #   endif
2429 #   if __cpp_lib_constexpr_iterator != 201811L
2430 #     error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
2431 #   endif
2432 # else // _LIBCPP_VERSION
2433 #   ifdef __cpp_lib_constexpr_iterator
2434 #     error "__cpp_lib_constexpr_iterator should not be defined because it is unimplemented in libc++!"
2435 #   endif
2436 # endif
2437 
2438 # if !defined(_LIBCPP_VERSION)
2439 #   ifndef __cpp_lib_constexpr_memory
2440 #     error "__cpp_lib_constexpr_memory should be defined in c++20"
2441 #   endif
2442 #   if __cpp_lib_constexpr_memory != 201811L
2443 #     error "__cpp_lib_constexpr_memory should have the value 201811L in c++20"
2444 #   endif
2445 # else // _LIBCPP_VERSION
2446 #   ifdef __cpp_lib_constexpr_memory
2447 #     error "__cpp_lib_constexpr_memory should not be defined because it is unimplemented in libc++!"
2448 #   endif
2449 # endif
2450 
2451 # ifndef __cpp_lib_constexpr_numeric
2452 #   error "__cpp_lib_constexpr_numeric should be defined in c++20"
2453 # endif
2454 # if __cpp_lib_constexpr_numeric != 201911L
2455 #   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20"
2456 # endif
2457 
2458 # if !defined(_LIBCPP_VERSION)
2459 #   ifndef __cpp_lib_constexpr_string
2460 #     error "__cpp_lib_constexpr_string should be defined in c++20"
2461 #   endif
2462 #   if __cpp_lib_constexpr_string != 201907L
2463 #     error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
2464 #   endif
2465 # else // _LIBCPP_VERSION
2466 #   ifdef __cpp_lib_constexpr_string
2467 #     error "__cpp_lib_constexpr_string should not be defined because it is unimplemented in libc++!"
2468 #   endif
2469 # endif
2470 
2471 # if !defined(_LIBCPP_VERSION)
2472 #   ifndef __cpp_lib_constexpr_string_view
2473 #     error "__cpp_lib_constexpr_string_view should be defined in c++20"
2474 #   endif
2475 #   if __cpp_lib_constexpr_string_view != 201811L
2476 #     error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
2477 #   endif
2478 # else // _LIBCPP_VERSION
2479 #   ifdef __cpp_lib_constexpr_string_view
2480 #     error "__cpp_lib_constexpr_string_view should not be defined because it is unimplemented in libc++!"
2481 #   endif
2482 # endif
2483 
2484 # if !defined(_LIBCPP_VERSION)
2485 #   ifndef __cpp_lib_constexpr_tuple
2486 #     error "__cpp_lib_constexpr_tuple should be defined in c++20"
2487 #   endif
2488 #   if __cpp_lib_constexpr_tuple != 201811L
2489 #     error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20"
2490 #   endif
2491 # else // _LIBCPP_VERSION
2492 #   ifdef __cpp_lib_constexpr_tuple
2493 #     error "__cpp_lib_constexpr_tuple should not be defined because it is unimplemented in libc++!"
2494 #   endif
2495 # endif
2496 
2497 # ifndef __cpp_lib_constexpr_utility
2498 #   error "__cpp_lib_constexpr_utility should be defined in c++20"
2499 # endif
2500 # if __cpp_lib_constexpr_utility != 201811L
2501 #   error "__cpp_lib_constexpr_utility should have the value 201811L in c++20"
2502 # endif
2503 
2504 # if !defined(_LIBCPP_VERSION)
2505 #   ifndef __cpp_lib_constexpr_vector
2506 #     error "__cpp_lib_constexpr_vector should be defined in c++20"
2507 #   endif
2508 #   if __cpp_lib_constexpr_vector != 201907L
2509 #     error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
2510 #   endif
2511 # else // _LIBCPP_VERSION
2512 #   ifdef __cpp_lib_constexpr_vector
2513 #     error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!"
2514 #   endif
2515 # endif
2516 
2517 # if !defined(_LIBCPP_VERSION)
2518 #   ifndef __cpp_lib_coroutine
2519 #     error "__cpp_lib_coroutine should be defined in c++20"
2520 #   endif
2521 #   if __cpp_lib_coroutine != 201902L
2522 #     error "__cpp_lib_coroutine should have the value 201902L in c++20"
2523 #   endif
2524 # else // _LIBCPP_VERSION
2525 #   ifdef __cpp_lib_coroutine
2526 #     error "__cpp_lib_coroutine should not be defined because it is unimplemented in libc++!"
2527 #   endif
2528 # endif
2529 
2530 # if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
2531 #   ifndef __cpp_lib_destroying_delete
2532 #     error "__cpp_lib_destroying_delete should be defined in c++20"
2533 #   endif
2534 #   if __cpp_lib_destroying_delete != 201806L
2535 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++20"
2536 #   endif
2537 # else
2538 #   ifdef __cpp_lib_destroying_delete
2539 #     error "__cpp_lib_destroying_delete should not be defined when TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L is not defined!"
2540 #   endif
2541 # endif
2542 
2543 # ifndef __cpp_lib_enable_shared_from_this
2544 #   error "__cpp_lib_enable_shared_from_this should be defined in c++20"
2545 # endif
2546 # if __cpp_lib_enable_shared_from_this != 201603L
2547 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
2548 # endif
2549 
2550 # ifndef __cpp_lib_endian
2551 #   error "__cpp_lib_endian should be defined in c++20"
2552 # endif
2553 # if __cpp_lib_endian != 201907L
2554 #   error "__cpp_lib_endian should have the value 201907L in c++20"
2555 # endif
2556 
2557 # ifndef __cpp_lib_erase_if
2558 #   error "__cpp_lib_erase_if should be defined in c++20"
2559 # endif
2560 # if __cpp_lib_erase_if != 202002L
2561 #   error "__cpp_lib_erase_if should have the value 202002L in c++20"
2562 # endif
2563 
2564 # ifndef __cpp_lib_exchange_function
2565 #   error "__cpp_lib_exchange_function should be defined in c++20"
2566 # endif
2567 # if __cpp_lib_exchange_function != 201304L
2568 #   error "__cpp_lib_exchange_function should have the value 201304L in c++20"
2569 # endif
2570 
2571 # if !defined(_LIBCPP_VERSION)
2572 #   ifndef __cpp_lib_execution
2573 #     error "__cpp_lib_execution should be defined in c++20"
2574 #   endif
2575 #   if __cpp_lib_execution != 201902L
2576 #     error "__cpp_lib_execution should have the value 201902L in c++20"
2577 #   endif
2578 # else // _LIBCPP_VERSION
2579 #   ifdef __cpp_lib_execution
2580 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
2581 #   endif
2582 # endif
2583 
2584 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
2585 #   ifndef __cpp_lib_filesystem
2586 #     error "__cpp_lib_filesystem should be defined in c++20"
2587 #   endif
2588 #   if __cpp_lib_filesystem != 201703L
2589 #     error "__cpp_lib_filesystem should have the value 201703L in c++20"
2590 #   endif
2591 # else
2592 #   ifdef __cpp_lib_filesystem
2593 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
2594 #   endif
2595 # endif
2596 
2597 # ifndef __cpp_lib_gcd_lcm
2598 #   error "__cpp_lib_gcd_lcm should be defined in c++20"
2599 # endif
2600 # if __cpp_lib_gcd_lcm != 201606L
2601 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++20"
2602 # endif
2603 
2604 # ifndef __cpp_lib_generic_associative_lookup
2605 #   error "__cpp_lib_generic_associative_lookup should be defined in c++20"
2606 # endif
2607 # if __cpp_lib_generic_associative_lookup != 201304L
2608 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"
2609 # endif
2610 
2611 # ifndef __cpp_lib_generic_unordered_lookup
2612 #   error "__cpp_lib_generic_unordered_lookup should be defined in c++20"
2613 # endif
2614 # if __cpp_lib_generic_unordered_lookup != 201811L
2615 #   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
2616 # endif
2617 
2618 # if !defined(_LIBCPP_VERSION)
2619 #   ifndef __cpp_lib_hardware_interference_size
2620 #     error "__cpp_lib_hardware_interference_size should be defined in c++20"
2621 #   endif
2622 #   if __cpp_lib_hardware_interference_size != 201703L
2623 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20"
2624 #   endif
2625 # else // _LIBCPP_VERSION
2626 #   ifdef __cpp_lib_hardware_interference_size
2627 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
2628 #   endif
2629 # endif
2630 
2631 # if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
2632 #   ifndef __cpp_lib_has_unique_object_representations
2633 #     error "__cpp_lib_has_unique_object_representations should be defined in c++20"
2634 #   endif
2635 #   if __cpp_lib_has_unique_object_representations != 201606L
2636 #     error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
2637 #   endif
2638 # else
2639 #   ifdef __cpp_lib_has_unique_object_representations
2640 #     error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
2641 #   endif
2642 # endif
2643 
2644 # ifndef __cpp_lib_hypot
2645 #   error "__cpp_lib_hypot should be defined in c++20"
2646 # endif
2647 # if __cpp_lib_hypot != 201603L
2648 #   error "__cpp_lib_hypot should have the value 201603L in c++20"
2649 # endif
2650 
2651 # ifndef __cpp_lib_incomplete_container_elements
2652 #   error "__cpp_lib_incomplete_container_elements should be defined in c++20"
2653 # endif
2654 # if __cpp_lib_incomplete_container_elements != 201505L
2655 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
2656 # endif
2657 
2658 # ifndef __cpp_lib_int_pow2
2659 #   error "__cpp_lib_int_pow2 should be defined in c++20"
2660 # endif
2661 # if __cpp_lib_int_pow2 != 202002L
2662 #   error "__cpp_lib_int_pow2 should have the value 202002L in c++20"
2663 # endif
2664 
2665 # if !defined(_LIBCPP_VERSION)
2666 #   ifndef __cpp_lib_integer_comparison_functions
2667 #     error "__cpp_lib_integer_comparison_functions should be defined in c++20"
2668 #   endif
2669 #   if __cpp_lib_integer_comparison_functions != 202002L
2670 #     error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20"
2671 #   endif
2672 # else // _LIBCPP_VERSION
2673 #   ifdef __cpp_lib_integer_comparison_functions
2674 #     error "__cpp_lib_integer_comparison_functions should not be defined because it is unimplemented in libc++!"
2675 #   endif
2676 # endif
2677 
2678 # ifndef __cpp_lib_integer_sequence
2679 #   error "__cpp_lib_integer_sequence should be defined in c++20"
2680 # endif
2681 # if __cpp_lib_integer_sequence != 201304L
2682 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++20"
2683 # endif
2684 
2685 # ifndef __cpp_lib_integral_constant_callable
2686 #   error "__cpp_lib_integral_constant_callable should be defined in c++20"
2687 # endif
2688 # if __cpp_lib_integral_constant_callable != 201304L
2689 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20"
2690 # endif
2691 
2692 # ifndef __cpp_lib_interpolate
2693 #   error "__cpp_lib_interpolate should be defined in c++20"
2694 # endif
2695 # if __cpp_lib_interpolate != 201902L
2696 #   error "__cpp_lib_interpolate should have the value 201902L in c++20"
2697 # endif
2698 
2699 # ifndef __cpp_lib_invoke
2700 #   error "__cpp_lib_invoke should be defined in c++20"
2701 # endif
2702 # if __cpp_lib_invoke != 201411L
2703 #   error "__cpp_lib_invoke should have the value 201411L in c++20"
2704 # endif
2705 
2706 # if TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001
2707 #   ifndef __cpp_lib_is_aggregate
2708 #     error "__cpp_lib_is_aggregate should be defined in c++20"
2709 #   endif
2710 #   if __cpp_lib_is_aggregate != 201703L
2711 #     error "__cpp_lib_is_aggregate should have the value 201703L in c++20"
2712 #   endif
2713 # else
2714 #   ifdef __cpp_lib_is_aggregate
2715 #     error "__cpp_lib_is_aggregate should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001 is not defined!"
2716 #   endif
2717 # endif
2718 
2719 # if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
2720 #   ifndef __cpp_lib_is_constant_evaluated
2721 #     error "__cpp_lib_is_constant_evaluated should be defined in c++20"
2722 #   endif
2723 #   if __cpp_lib_is_constant_evaluated != 201811L
2724 #     error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
2725 #   endif
2726 # else
2727 #   ifdef __cpp_lib_is_constant_evaluated
2728 #     error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
2729 #   endif
2730 # endif
2731 
2732 # ifndef __cpp_lib_is_final
2733 #   error "__cpp_lib_is_final should be defined in c++20"
2734 # endif
2735 # if __cpp_lib_is_final != 201402L
2736 #   error "__cpp_lib_is_final should have the value 201402L in c++20"
2737 # endif
2738 
2739 # ifndef __cpp_lib_is_invocable
2740 #   error "__cpp_lib_is_invocable should be defined in c++20"
2741 # endif
2742 # if __cpp_lib_is_invocable != 201703L
2743 #   error "__cpp_lib_is_invocable should have the value 201703L in c++20"
2744 # endif
2745 
2746 # if !defined(_LIBCPP_VERSION)
2747 #   ifndef __cpp_lib_is_layout_compatible
2748 #     error "__cpp_lib_is_layout_compatible should be defined in c++20"
2749 #   endif
2750 #   if __cpp_lib_is_layout_compatible != 201907L
2751 #     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20"
2752 #   endif
2753 # else // _LIBCPP_VERSION
2754 #   ifdef __cpp_lib_is_layout_compatible
2755 #     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
2756 #   endif
2757 # endif
2758 
2759 # ifndef __cpp_lib_is_nothrow_convertible
2760 #   error "__cpp_lib_is_nothrow_convertible should be defined in c++20"
2761 # endif
2762 # if __cpp_lib_is_nothrow_convertible != 201806L
2763 #   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20"
2764 # endif
2765 
2766 # ifndef __cpp_lib_is_null_pointer
2767 #   error "__cpp_lib_is_null_pointer should be defined in c++20"
2768 # endif
2769 # if __cpp_lib_is_null_pointer != 201309L
2770 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++20"
2771 # endif
2772 
2773 # if !defined(_LIBCPP_VERSION)
2774 #   ifndef __cpp_lib_is_pointer_interconvertible
2775 #     error "__cpp_lib_is_pointer_interconvertible should be defined in c++20"
2776 #   endif
2777 #   if __cpp_lib_is_pointer_interconvertible != 201907L
2778 #     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20"
2779 #   endif
2780 # else // _LIBCPP_VERSION
2781 #   ifdef __cpp_lib_is_pointer_interconvertible
2782 #     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
2783 #   endif
2784 # endif
2785 
2786 # ifdef __cpp_lib_is_scoped_enum
2787 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
2788 # endif
2789 
2790 # ifndef __cpp_lib_is_swappable
2791 #   error "__cpp_lib_is_swappable should be defined in c++20"
2792 # endif
2793 # if __cpp_lib_is_swappable != 201603L
2794 #   error "__cpp_lib_is_swappable should have the value 201603L in c++20"
2795 # endif
2796 
2797 # if !defined(_LIBCPP_VERSION)
2798 #   ifndef __cpp_lib_jthread
2799 #     error "__cpp_lib_jthread should be defined in c++20"
2800 #   endif
2801 #   if __cpp_lib_jthread != 201911L
2802 #     error "__cpp_lib_jthread should have the value 201911L in c++20"
2803 #   endif
2804 # else // _LIBCPP_VERSION
2805 #   ifdef __cpp_lib_jthread
2806 #     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
2807 #   endif
2808 # endif
2809 
2810 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch)
2811 #   ifndef __cpp_lib_latch
2812 #     error "__cpp_lib_latch should be defined in c++20"
2813 #   endif
2814 #   if __cpp_lib_latch != 201907L
2815 #     error "__cpp_lib_latch should have the value 201907L in c++20"
2816 #   endif
2817 # else
2818 #   ifdef __cpp_lib_latch
2819 #     error "__cpp_lib_latch should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch) is not defined!"
2820 #   endif
2821 # endif
2822 
2823 # ifndef __cpp_lib_launder
2824 #   error "__cpp_lib_launder should be defined in c++20"
2825 # endif
2826 # if __cpp_lib_launder != 201606L
2827 #   error "__cpp_lib_launder should have the value 201606L in c++20"
2828 # endif
2829 
2830 # ifndef __cpp_lib_list_remove_return_type
2831 #   error "__cpp_lib_list_remove_return_type should be defined in c++20"
2832 # endif
2833 # if __cpp_lib_list_remove_return_type != 201806L
2834 #   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20"
2835 # endif
2836 
2837 # ifndef __cpp_lib_logical_traits
2838 #   error "__cpp_lib_logical_traits should be defined in c++20"
2839 # endif
2840 # if __cpp_lib_logical_traits != 201510L
2841 #   error "__cpp_lib_logical_traits should have the value 201510L in c++20"
2842 # endif
2843 
2844 # ifndef __cpp_lib_make_from_tuple
2845 #   error "__cpp_lib_make_from_tuple should be defined in c++20"
2846 # endif
2847 # if __cpp_lib_make_from_tuple != 201606L
2848 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++20"
2849 # endif
2850 
2851 # ifndef __cpp_lib_make_reverse_iterator
2852 #   error "__cpp_lib_make_reverse_iterator should be defined in c++20"
2853 # endif
2854 # if __cpp_lib_make_reverse_iterator != 201402L
2855 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
2856 # endif
2857 
2858 # ifndef __cpp_lib_make_unique
2859 #   error "__cpp_lib_make_unique should be defined in c++20"
2860 # endif
2861 # if __cpp_lib_make_unique != 201304L
2862 #   error "__cpp_lib_make_unique should have the value 201304L in c++20"
2863 # endif
2864 
2865 # ifndef __cpp_lib_map_try_emplace
2866 #   error "__cpp_lib_map_try_emplace should be defined in c++20"
2867 # endif
2868 # if __cpp_lib_map_try_emplace != 201411L
2869 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"
2870 # endif
2871 
2872 # if defined(__cpp_concepts) && __cpp_concepts >= 201811L
2873 #   ifndef __cpp_lib_math_constants
2874 #     error "__cpp_lib_math_constants should be defined in c++20"
2875 #   endif
2876 #   if __cpp_lib_math_constants != 201907L
2877 #     error "__cpp_lib_math_constants should have the value 201907L in c++20"
2878 #   endif
2879 # else
2880 #   ifdef __cpp_lib_math_constants
2881 #     error "__cpp_lib_math_constants should not be defined when defined(__cpp_concepts) && __cpp_concepts >= 201811L is not defined!"
2882 #   endif
2883 # endif
2884 
2885 # if !defined(_LIBCPP_VERSION)
2886 #   ifndef __cpp_lib_math_special_functions
2887 #     error "__cpp_lib_math_special_functions should be defined in c++20"
2888 #   endif
2889 #   if __cpp_lib_math_special_functions != 201603L
2890 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++20"
2891 #   endif
2892 # else // _LIBCPP_VERSION
2893 #   ifdef __cpp_lib_math_special_functions
2894 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
2895 #   endif
2896 # endif
2897 
2898 # if !defined(_LIBCPP_VERSION)
2899 #   ifndef __cpp_lib_memory_resource
2900 #     error "__cpp_lib_memory_resource should be defined in c++20"
2901 #   endif
2902 #   if __cpp_lib_memory_resource != 201603L
2903 #     error "__cpp_lib_memory_resource should have the value 201603L in c++20"
2904 #   endif
2905 # else // _LIBCPP_VERSION
2906 #   ifdef __cpp_lib_memory_resource
2907 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
2908 #   endif
2909 # endif
2910 
2911 # ifndef __cpp_lib_node_extract
2912 #   error "__cpp_lib_node_extract should be defined in c++20"
2913 # endif
2914 # if __cpp_lib_node_extract != 201606L
2915 #   error "__cpp_lib_node_extract should have the value 201606L in c++20"
2916 # endif
2917 
2918 # ifndef __cpp_lib_nonmember_container_access
2919 #   error "__cpp_lib_nonmember_container_access should be defined in c++20"
2920 # endif
2921 # if __cpp_lib_nonmember_container_access != 201411L
2922 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
2923 # endif
2924 
2925 # ifndef __cpp_lib_not_fn
2926 #   error "__cpp_lib_not_fn should be defined in c++20"
2927 # endif
2928 # if __cpp_lib_not_fn != 201603L
2929 #   error "__cpp_lib_not_fn should have the value 201603L in c++20"
2930 # endif
2931 
2932 # ifndef __cpp_lib_null_iterators
2933 #   error "__cpp_lib_null_iterators should be defined in c++20"
2934 # endif
2935 # if __cpp_lib_null_iterators != 201304L
2936 #   error "__cpp_lib_null_iterators should have the value 201304L in c++20"
2937 # endif
2938 
2939 # ifndef __cpp_lib_optional
2940 #   error "__cpp_lib_optional should be defined in c++20"
2941 # endif
2942 # if __cpp_lib_optional != 201606L
2943 #   error "__cpp_lib_optional should have the value 201606L in c++20"
2944 # endif
2945 
2946 # if !defined(_LIBCPP_VERSION)
2947 #   ifndef __cpp_lib_parallel_algorithm
2948 #     error "__cpp_lib_parallel_algorithm should be defined in c++20"
2949 #   endif
2950 #   if __cpp_lib_parallel_algorithm != 201603L
2951 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20"
2952 #   endif
2953 # else // _LIBCPP_VERSION
2954 #   ifdef __cpp_lib_parallel_algorithm
2955 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
2956 #   endif
2957 # endif
2958 
2959 # if !defined(_LIBCPP_VERSION)
2960 #   ifndef __cpp_lib_polymorphic_allocator
2961 #     error "__cpp_lib_polymorphic_allocator should be defined in c++20"
2962 #   endif
2963 #   if __cpp_lib_polymorphic_allocator != 201902L
2964 #     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20"
2965 #   endif
2966 # else // _LIBCPP_VERSION
2967 #   ifdef __cpp_lib_polymorphic_allocator
2968 #     error "__cpp_lib_polymorphic_allocator should not be defined because it is unimplemented in libc++!"
2969 #   endif
2970 # endif
2971 
2972 # ifndef __cpp_lib_quoted_string_io
2973 #   error "__cpp_lib_quoted_string_io should be defined in c++20"
2974 # endif
2975 # if __cpp_lib_quoted_string_io != 201304L
2976 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++20"
2977 # endif
2978 
2979 # if !defined(_LIBCPP_VERSION)
2980 #   ifndef __cpp_lib_ranges
2981 #     error "__cpp_lib_ranges should be defined in c++20"
2982 #   endif
2983 #   if __cpp_lib_ranges != 201811L
2984 #     error "__cpp_lib_ranges should have the value 201811L in c++20"
2985 #   endif
2986 # else // _LIBCPP_VERSION
2987 #   ifdef __cpp_lib_ranges
2988 #     error "__cpp_lib_ranges should not be defined because it is unimplemented in libc++!"
2989 #   endif
2990 # endif
2991 
2992 # ifndef __cpp_lib_raw_memory_algorithms
2993 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++20"
2994 # endif
2995 # if __cpp_lib_raw_memory_algorithms != 201606L
2996 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20"
2997 # endif
2998 
2999 # ifndef __cpp_lib_remove_cvref
3000 #   error "__cpp_lib_remove_cvref should be defined in c++20"
3001 # endif
3002 # if __cpp_lib_remove_cvref != 201711L
3003 #   error "__cpp_lib_remove_cvref should have the value 201711L in c++20"
3004 # endif
3005 
3006 # ifndef __cpp_lib_result_of_sfinae
3007 #   error "__cpp_lib_result_of_sfinae should be defined in c++20"
3008 # endif
3009 # if __cpp_lib_result_of_sfinae != 201210L
3010 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20"
3011 # endif
3012 
3013 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
3014 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20"
3015 # endif
3016 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
3017 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20"
3018 # endif
3019 
3020 # ifndef __cpp_lib_sample
3021 #   error "__cpp_lib_sample should be defined in c++20"
3022 # endif
3023 # if __cpp_lib_sample != 201603L
3024 #   error "__cpp_lib_sample should have the value 201603L in c++20"
3025 # endif
3026 
3027 # ifndef __cpp_lib_scoped_lock
3028 #   error "__cpp_lib_scoped_lock should be defined in c++20"
3029 # endif
3030 # if __cpp_lib_scoped_lock != 201703L
3031 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++20"
3032 # endif
3033 
3034 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore)
3035 #   ifndef __cpp_lib_semaphore
3036 #     error "__cpp_lib_semaphore should be defined in c++20"
3037 #   endif
3038 #   if __cpp_lib_semaphore != 201907L
3039 #     error "__cpp_lib_semaphore should have the value 201907L in c++20"
3040 #   endif
3041 # else
3042 #   ifdef __cpp_lib_semaphore
3043 #     error "__cpp_lib_semaphore should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore) is not defined!"
3044 #   endif
3045 # endif
3046 
3047 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
3048 #   ifndef __cpp_lib_shared_mutex
3049 #     error "__cpp_lib_shared_mutex should be defined in c++20"
3050 #   endif
3051 #   if __cpp_lib_shared_mutex != 201505L
3052 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++20"
3053 #   endif
3054 # else
3055 #   ifdef __cpp_lib_shared_mutex
3056 #     error "__cpp_lib_shared_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex) is not defined!"
3057 #   endif
3058 # endif
3059 
3060 # ifndef __cpp_lib_shared_ptr_arrays
3061 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++20"
3062 # endif
3063 # if __cpp_lib_shared_ptr_arrays != 201611L
3064 #   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++20"
3065 # endif
3066 
3067 # ifndef __cpp_lib_shared_ptr_weak_type
3068 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++20"
3069 # endif
3070 # if __cpp_lib_shared_ptr_weak_type != 201606L
3071 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20"
3072 # endif
3073 
3074 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
3075 #   ifndef __cpp_lib_shared_timed_mutex
3076 #     error "__cpp_lib_shared_timed_mutex should be defined in c++20"
3077 #   endif
3078 #   if __cpp_lib_shared_timed_mutex != 201402L
3079 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20"
3080 #   endif
3081 # else
3082 #   ifdef __cpp_lib_shared_timed_mutex
3083 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex) is not defined!"
3084 #   endif
3085 # endif
3086 
3087 # ifndef __cpp_lib_shift
3088 #   error "__cpp_lib_shift should be defined in c++20"
3089 # endif
3090 # if __cpp_lib_shift != 201806L
3091 #   error "__cpp_lib_shift should have the value 201806L in c++20"
3092 # endif
3093 
3094 # if !defined(_LIBCPP_VERSION)
3095 #   ifndef __cpp_lib_smart_ptr_for_overwrite
3096 #     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20"
3097 #   endif
3098 #   if __cpp_lib_smart_ptr_for_overwrite != 202002L
3099 #     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20"
3100 #   endif
3101 # else // _LIBCPP_VERSION
3102 #   ifdef __cpp_lib_smart_ptr_for_overwrite
3103 #     error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
3104 #   endif
3105 # endif
3106 
3107 # if !defined(_LIBCPP_VERSION)
3108 #   ifndef __cpp_lib_source_location
3109 #     error "__cpp_lib_source_location should be defined in c++20"
3110 #   endif
3111 #   if __cpp_lib_source_location != 201907L
3112 #     error "__cpp_lib_source_location should have the value 201907L in c++20"
3113 #   endif
3114 # else // _LIBCPP_VERSION
3115 #   ifdef __cpp_lib_source_location
3116 #     error "__cpp_lib_source_location should not be defined because it is unimplemented in libc++!"
3117 #   endif
3118 # endif
3119 
3120 # ifndef __cpp_lib_span
3121 #   error "__cpp_lib_span should be defined in c++20"
3122 # endif
3123 # if __cpp_lib_span != 202002L
3124 #   error "__cpp_lib_span should have the value 202002L in c++20"
3125 # endif
3126 
3127 # ifndef __cpp_lib_ssize
3128 #   error "__cpp_lib_ssize should be defined in c++20"
3129 # endif
3130 # if __cpp_lib_ssize != 201902L
3131 #   error "__cpp_lib_ssize should have the value 201902L in c++20"
3132 # endif
3133 
3134 # ifdef __cpp_lib_stacktrace
3135 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
3136 # endif
3137 
3138 # ifndef __cpp_lib_starts_ends_with
3139 #   error "__cpp_lib_starts_ends_with should be defined in c++20"
3140 # endif
3141 # if __cpp_lib_starts_ends_with != 201711L
3142 #   error "__cpp_lib_starts_ends_with should have the value 201711L in c++20"
3143 # endif
3144 
3145 # ifdef __cpp_lib_stdatomic_h
3146 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
3147 # endif
3148 
3149 # ifdef __cpp_lib_string_contains
3150 #   error "__cpp_lib_string_contains should not be defined before c++2b"
3151 # endif
3152 
3153 # ifndef __cpp_lib_string_udls
3154 #   error "__cpp_lib_string_udls should be defined in c++20"
3155 # endif
3156 # if __cpp_lib_string_udls != 201304L
3157 #   error "__cpp_lib_string_udls should have the value 201304L in c++20"
3158 # endif
3159 
3160 # ifndef __cpp_lib_string_view
3161 #   error "__cpp_lib_string_view should be defined in c++20"
3162 # endif
3163 # if __cpp_lib_string_view != 201803L
3164 #   error "__cpp_lib_string_view should have the value 201803L in c++20"
3165 # endif
3166 
3167 # if !defined(_LIBCPP_VERSION)
3168 #   ifndef __cpp_lib_syncbuf
3169 #     error "__cpp_lib_syncbuf should be defined in c++20"
3170 #   endif
3171 #   if __cpp_lib_syncbuf != 201803L
3172 #     error "__cpp_lib_syncbuf should have the value 201803L in c++20"
3173 #   endif
3174 # else // _LIBCPP_VERSION
3175 #   ifdef __cpp_lib_syncbuf
3176 #     error "__cpp_lib_syncbuf should not be defined because it is unimplemented in libc++!"
3177 #   endif
3178 # endif
3179 
3180 # if !defined(_LIBCPP_VERSION)
3181 #   ifndef __cpp_lib_three_way_comparison
3182 #     error "__cpp_lib_three_way_comparison should be defined in c++20"
3183 #   endif
3184 #   if __cpp_lib_three_way_comparison != 201907L
3185 #     error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
3186 #   endif
3187 # else // _LIBCPP_VERSION
3188 #   ifdef __cpp_lib_three_way_comparison
3189 #     error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
3190 #   endif
3191 # endif
3192 
3193 # ifndef __cpp_lib_to_address
3194 #   error "__cpp_lib_to_address should be defined in c++20"
3195 # endif
3196 # if __cpp_lib_to_address != 201711L
3197 #   error "__cpp_lib_to_address should have the value 201711L in c++20"
3198 # endif
3199 
3200 # ifndef __cpp_lib_to_array
3201 #   error "__cpp_lib_to_array should be defined in c++20"
3202 # endif
3203 # if __cpp_lib_to_array != 201907L
3204 #   error "__cpp_lib_to_array should have the value 201907L in c++20"
3205 # endif
3206 
3207 # if !defined(_LIBCPP_VERSION)
3208 #   ifndef __cpp_lib_to_chars
3209 #     error "__cpp_lib_to_chars should be defined in c++20"
3210 #   endif
3211 #   if __cpp_lib_to_chars != 201611L
3212 #     error "__cpp_lib_to_chars should have the value 201611L in c++20"
3213 #   endif
3214 # else // _LIBCPP_VERSION
3215 #   ifdef __cpp_lib_to_chars
3216 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
3217 #   endif
3218 # endif
3219 
3220 # ifndef __cpp_lib_transformation_trait_aliases
3221 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++20"
3222 # endif
3223 # if __cpp_lib_transformation_trait_aliases != 201304L
3224 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20"
3225 # endif
3226 
3227 # ifndef __cpp_lib_transparent_operators
3228 #   error "__cpp_lib_transparent_operators should be defined in c++20"
3229 # endif
3230 # if __cpp_lib_transparent_operators != 201510L
3231 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++20"
3232 # endif
3233 
3234 # ifndef __cpp_lib_tuple_element_t
3235 #   error "__cpp_lib_tuple_element_t should be defined in c++20"
3236 # endif
3237 # if __cpp_lib_tuple_element_t != 201402L
3238 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
3239 # endif
3240 
3241 # ifndef __cpp_lib_tuples_by_type
3242 #   error "__cpp_lib_tuples_by_type should be defined in c++20"
3243 # endif
3244 # if __cpp_lib_tuples_by_type != 201304L
3245 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++20"
3246 # endif
3247 
3248 # ifndef __cpp_lib_type_trait_variable_templates
3249 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++20"
3250 # endif
3251 # if __cpp_lib_type_trait_variable_templates != 201510L
3252 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20"
3253 # endif
3254 
3255 # ifndef __cpp_lib_uncaught_exceptions
3256 #   error "__cpp_lib_uncaught_exceptions should be defined in c++20"
3257 # endif
3258 # if __cpp_lib_uncaught_exceptions != 201411L
3259 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20"
3260 # endif
3261 
3262 # ifndef __cpp_lib_unordered_map_try_emplace
3263 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
3264 # endif
3265 # if __cpp_lib_unordered_map_try_emplace != 201411L
3266 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20"
3267 # endif
3268 
3269 # ifndef __cpp_lib_unwrap_ref
3270 #   error "__cpp_lib_unwrap_ref should be defined in c++20"
3271 # endif
3272 # if __cpp_lib_unwrap_ref != 201811L
3273 #   error "__cpp_lib_unwrap_ref should have the value 201811L in c++20"
3274 # endif
3275 
3276 # ifndef __cpp_lib_variant
3277 #   error "__cpp_lib_variant should be defined in c++20"
3278 # endif
3279 # if __cpp_lib_variant != 201606L
3280 #   error "__cpp_lib_variant should have the value 201606L in c++20"
3281 # endif
3282 
3283 # ifndef __cpp_lib_void_t
3284 #   error "__cpp_lib_void_t should be defined in c++20"
3285 # endif
3286 # if __cpp_lib_void_t != 201411L
3287 #   error "__cpp_lib_void_t should have the value 201411L in c++20"
3288 # endif
3289 
3290 #elif TEST_STD_VER > 20
3291 
3292 # if TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700
3293 #   ifndef __cpp_lib_addressof_constexpr
3294 #     error "__cpp_lib_addressof_constexpr should be defined in c++2b"
3295 #   endif
3296 #   if __cpp_lib_addressof_constexpr != 201603L
3297 #     error "__cpp_lib_addressof_constexpr should have the value 201603L in c++2b"
3298 #   endif
3299 # else
3300 #   ifdef __cpp_lib_addressof_constexpr
3301 #     error "__cpp_lib_addressof_constexpr should not be defined when TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700 is not defined!"
3302 #   endif
3303 # endif
3304 
3305 # ifndef __cpp_lib_allocator_traits_is_always_equal
3306 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
3307 # endif
3308 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
3309 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++2b"
3310 # endif
3311 
3312 # ifndef __cpp_lib_any
3313 #   error "__cpp_lib_any should be defined in c++2b"
3314 # endif
3315 # if __cpp_lib_any != 201606L
3316 #   error "__cpp_lib_any should have the value 201606L in c++2b"
3317 # endif
3318 
3319 # ifndef __cpp_lib_apply
3320 #   error "__cpp_lib_apply should be defined in c++2b"
3321 # endif
3322 # if __cpp_lib_apply != 201603L
3323 #   error "__cpp_lib_apply should have the value 201603L in c++2b"
3324 # endif
3325 
3326 # ifndef __cpp_lib_array_constexpr
3327 #   error "__cpp_lib_array_constexpr should be defined in c++2b"
3328 # endif
3329 # if __cpp_lib_array_constexpr != 201811L
3330 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++2b"
3331 # endif
3332 
3333 # ifndef __cpp_lib_as_const
3334 #   error "__cpp_lib_as_const should be defined in c++2b"
3335 # endif
3336 # if __cpp_lib_as_const != 201510L
3337 #   error "__cpp_lib_as_const should have the value 201510L in c++2b"
3338 # endif
3339 
3340 # if !defined(_LIBCPP_VERSION)
3341 #   ifndef __cpp_lib_assume_aligned
3342 #     error "__cpp_lib_assume_aligned should be defined in c++2b"
3343 #   endif
3344 #   if __cpp_lib_assume_aligned != 201811L
3345 #     error "__cpp_lib_assume_aligned should have the value 201811L in c++2b"
3346 #   endif
3347 # else // _LIBCPP_VERSION
3348 #   ifdef __cpp_lib_assume_aligned
3349 #     error "__cpp_lib_assume_aligned should not be defined because it is unimplemented in libc++!"
3350 #   endif
3351 # endif
3352 
3353 # if !defined(_LIBCPP_HAS_NO_THREADS)
3354 #   ifndef __cpp_lib_atomic_flag_test
3355 #     error "__cpp_lib_atomic_flag_test should be defined in c++2b"
3356 #   endif
3357 #   if __cpp_lib_atomic_flag_test != 201907L
3358 #     error "__cpp_lib_atomic_flag_test should have the value 201907L in c++2b"
3359 #   endif
3360 # else
3361 #   ifdef __cpp_lib_atomic_flag_test
3362 #     error "__cpp_lib_atomic_flag_test should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
3363 #   endif
3364 # endif
3365 
3366 # if !defined(_LIBCPP_VERSION)
3367 #   ifndef __cpp_lib_atomic_float
3368 #     error "__cpp_lib_atomic_float should be defined in c++2b"
3369 #   endif
3370 #   if __cpp_lib_atomic_float != 201711L
3371 #     error "__cpp_lib_atomic_float should have the value 201711L in c++2b"
3372 #   endif
3373 # else // _LIBCPP_VERSION
3374 #   ifdef __cpp_lib_atomic_float
3375 #     error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
3376 #   endif
3377 # endif
3378 
3379 # if !defined(_LIBCPP_HAS_NO_THREADS)
3380 #   ifndef __cpp_lib_atomic_is_always_lock_free
3381 #     error "__cpp_lib_atomic_is_always_lock_free should be defined in c++2b"
3382 #   endif
3383 #   if __cpp_lib_atomic_is_always_lock_free != 201603L
3384 #     error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++2b"
3385 #   endif
3386 # else
3387 #   ifdef __cpp_lib_atomic_is_always_lock_free
3388 #     error "__cpp_lib_atomic_is_always_lock_free should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
3389 #   endif
3390 # endif
3391 
3392 # if !defined(_LIBCPP_HAS_NO_THREADS)
3393 #   ifndef __cpp_lib_atomic_lock_free_type_aliases
3394 #     error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++2b"
3395 #   endif
3396 #   if __cpp_lib_atomic_lock_free_type_aliases != 201907L
3397 #     error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++2b"
3398 #   endif
3399 # else
3400 #   ifdef __cpp_lib_atomic_lock_free_type_aliases
3401 #     error "__cpp_lib_atomic_lock_free_type_aliases should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
3402 #   endif
3403 # endif
3404 
3405 # if !defined(_LIBCPP_VERSION)
3406 #   ifndef __cpp_lib_atomic_ref
3407 #     error "__cpp_lib_atomic_ref should be defined in c++2b"
3408 #   endif
3409 #   if __cpp_lib_atomic_ref != 201806L
3410 #     error "__cpp_lib_atomic_ref should have the value 201806L in c++2b"
3411 #   endif
3412 # else // _LIBCPP_VERSION
3413 #   ifdef __cpp_lib_atomic_ref
3414 #     error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
3415 #   endif
3416 # endif
3417 
3418 # if !defined(_LIBCPP_VERSION)
3419 #   ifndef __cpp_lib_atomic_shared_ptr
3420 #     error "__cpp_lib_atomic_shared_ptr should be defined in c++2b"
3421 #   endif
3422 #   if __cpp_lib_atomic_shared_ptr != 201711L
3423 #     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++2b"
3424 #   endif
3425 # else // _LIBCPP_VERSION
3426 #   ifdef __cpp_lib_atomic_shared_ptr
3427 #     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
3428 #   endif
3429 # endif
3430 
3431 # if !defined(_LIBCPP_VERSION)
3432 #   ifndef __cpp_lib_atomic_value_initialization
3433 #     error "__cpp_lib_atomic_value_initialization should be defined in c++2b"
3434 #   endif
3435 #   if __cpp_lib_atomic_value_initialization != 201911L
3436 #     error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++2b"
3437 #   endif
3438 # else // _LIBCPP_VERSION
3439 #   ifdef __cpp_lib_atomic_value_initialization
3440 #     error "__cpp_lib_atomic_value_initialization should not be defined because it is unimplemented in libc++!"
3441 #   endif
3442 # endif
3443 
3444 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait)
3445 #   ifndef __cpp_lib_atomic_wait
3446 #     error "__cpp_lib_atomic_wait should be defined in c++2b"
3447 #   endif
3448 #   if __cpp_lib_atomic_wait != 201907L
3449 #     error "__cpp_lib_atomic_wait should have the value 201907L in c++2b"
3450 #   endif
3451 # else
3452 #   ifdef __cpp_lib_atomic_wait
3453 #     error "__cpp_lib_atomic_wait should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait) is not defined!"
3454 #   endif
3455 # endif
3456 
3457 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)
3458 #   ifndef __cpp_lib_barrier
3459 #     error "__cpp_lib_barrier should be defined in c++2b"
3460 #   endif
3461 #   if __cpp_lib_barrier != 201907L
3462 #     error "__cpp_lib_barrier should have the value 201907L in c++2b"
3463 #   endif
3464 # else
3465 #   ifdef __cpp_lib_barrier
3466 #     error "__cpp_lib_barrier should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier) is not defined!"
3467 #   endif
3468 # endif
3469 
3470 # if !defined(_LIBCPP_VERSION)
3471 #   ifndef __cpp_lib_bind_front
3472 #     error "__cpp_lib_bind_front should be defined in c++2b"
3473 #   endif
3474 #   if __cpp_lib_bind_front != 201907L
3475 #     error "__cpp_lib_bind_front should have the value 201907L in c++2b"
3476 #   endif
3477 # else // _LIBCPP_VERSION
3478 #   ifdef __cpp_lib_bind_front
3479 #     error "__cpp_lib_bind_front should not be defined because it is unimplemented in libc++!"
3480 #   endif
3481 # endif
3482 
3483 # if !defined(_LIBCPP_VERSION)
3484 #   ifndef __cpp_lib_bit_cast
3485 #     error "__cpp_lib_bit_cast should be defined in c++2b"
3486 #   endif
3487 #   if __cpp_lib_bit_cast != 201806L
3488 #     error "__cpp_lib_bit_cast should have the value 201806L in c++2b"
3489 #   endif
3490 # else // _LIBCPP_VERSION
3491 #   ifdef __cpp_lib_bit_cast
3492 #     error "__cpp_lib_bit_cast should not be defined because it is unimplemented in libc++!"
3493 #   endif
3494 # endif
3495 
3496 # if !defined(_LIBCPP_VERSION)
3497 #   ifndef __cpp_lib_bitops
3498 #     error "__cpp_lib_bitops should be defined in c++2b"
3499 #   endif
3500 #   if __cpp_lib_bitops != 201907L
3501 #     error "__cpp_lib_bitops should have the value 201907L in c++2b"
3502 #   endif
3503 # else // _LIBCPP_VERSION
3504 #   ifdef __cpp_lib_bitops
3505 #     error "__cpp_lib_bitops should not be defined because it is unimplemented in libc++!"
3506 #   endif
3507 # endif
3508 
3509 # ifndef __cpp_lib_bool_constant
3510 #   error "__cpp_lib_bool_constant should be defined in c++2b"
3511 # endif
3512 # if __cpp_lib_bool_constant != 201505L
3513 #   error "__cpp_lib_bool_constant should have the value 201505L in c++2b"
3514 # endif
3515 
3516 # ifndef __cpp_lib_bounded_array_traits
3517 #   error "__cpp_lib_bounded_array_traits should be defined in c++2b"
3518 # endif
3519 # if __cpp_lib_bounded_array_traits != 201902L
3520 #   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++2b"
3521 # endif
3522 
3523 # if !defined(_LIBCPP_VERSION)
3524 #   ifndef __cpp_lib_boyer_moore_searcher
3525 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++2b"
3526 #   endif
3527 #   if __cpp_lib_boyer_moore_searcher != 201603L
3528 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++2b"
3529 #   endif
3530 # else // _LIBCPP_VERSION
3531 #   ifdef __cpp_lib_boyer_moore_searcher
3532 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
3533 #   endif
3534 # endif
3535 
3536 # ifndef __cpp_lib_byte
3537 #   error "__cpp_lib_byte should be defined in c++2b"
3538 # endif
3539 # if __cpp_lib_byte != 201603L
3540 #   error "__cpp_lib_byte should have the value 201603L in c++2b"
3541 # endif
3542 
3543 # if defined(__cpp_char8_t)
3544 #   ifndef __cpp_lib_char8_t
3545 #     error "__cpp_lib_char8_t should be defined in c++2b"
3546 #   endif
3547 #   if __cpp_lib_char8_t != 201811L
3548 #     error "__cpp_lib_char8_t should have the value 201811L in c++2b"
3549 #   endif
3550 # else
3551 #   ifdef __cpp_lib_char8_t
3552 #     error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!"
3553 #   endif
3554 # endif
3555 
3556 # ifndef __cpp_lib_chrono
3557 #   error "__cpp_lib_chrono should be defined in c++2b"
3558 # endif
3559 # if __cpp_lib_chrono != 201611L
3560 #   error "__cpp_lib_chrono should have the value 201611L in c++2b"
3561 # endif
3562 
3563 # ifndef __cpp_lib_chrono_udls
3564 #   error "__cpp_lib_chrono_udls should be defined in c++2b"
3565 # endif
3566 # if __cpp_lib_chrono_udls != 201304L
3567 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++2b"
3568 # endif
3569 
3570 # ifndef __cpp_lib_clamp
3571 #   error "__cpp_lib_clamp should be defined in c++2b"
3572 # endif
3573 # if __cpp_lib_clamp != 201603L
3574 #   error "__cpp_lib_clamp should have the value 201603L in c++2b"
3575 # endif
3576 
3577 # ifndef __cpp_lib_complex_udls
3578 #   error "__cpp_lib_complex_udls should be defined in c++2b"
3579 # endif
3580 # if __cpp_lib_complex_udls != 201309L
3581 #   error "__cpp_lib_complex_udls should have the value 201309L in c++2b"
3582 # endif
3583 
3584 # if !defined(_LIBCPP_VERSION)
3585 #   ifndef __cpp_lib_concepts
3586 #     error "__cpp_lib_concepts should be defined in c++2b"
3587 #   endif
3588 #   if __cpp_lib_concepts != 202002L
3589 #     error "__cpp_lib_concepts should have the value 202002L in c++2b"
3590 #   endif
3591 # else // _LIBCPP_VERSION
3592 #   ifdef __cpp_lib_concepts
3593 #     error "__cpp_lib_concepts should not be defined because it is unimplemented in libc++!"
3594 #   endif
3595 # endif
3596 
3597 # if !defined(_LIBCPP_VERSION)
3598 #   ifndef __cpp_lib_constexpr_algorithms
3599 #     error "__cpp_lib_constexpr_algorithms should be defined in c++2b"
3600 #   endif
3601 #   if __cpp_lib_constexpr_algorithms != 201806L
3602 #     error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++2b"
3603 #   endif
3604 # else // _LIBCPP_VERSION
3605 #   ifdef __cpp_lib_constexpr_algorithms
3606 #     error "__cpp_lib_constexpr_algorithms should not be defined because it is unimplemented in libc++!"
3607 #   endif
3608 # endif
3609 
3610 # if !defined(_LIBCPP_VERSION)
3611 #   ifndef __cpp_lib_constexpr_complex
3612 #     error "__cpp_lib_constexpr_complex should be defined in c++2b"
3613 #   endif
3614 #   if __cpp_lib_constexpr_complex != 201711L
3615 #     error "__cpp_lib_constexpr_complex should have the value 201711L in c++2b"
3616 #   endif
3617 # else // _LIBCPP_VERSION
3618 #   ifdef __cpp_lib_constexpr_complex
3619 #     error "__cpp_lib_constexpr_complex should not be defined because it is unimplemented in libc++!"
3620 #   endif
3621 # endif
3622 
3623 # ifndef __cpp_lib_constexpr_dynamic_alloc
3624 #   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++2b"
3625 # endif
3626 # if __cpp_lib_constexpr_dynamic_alloc != 201907L
3627 #   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++2b"
3628 # endif
3629 
3630 # ifndef __cpp_lib_constexpr_functional
3631 #   error "__cpp_lib_constexpr_functional should be defined in c++2b"
3632 # endif
3633 # if __cpp_lib_constexpr_functional != 201907L
3634 #   error "__cpp_lib_constexpr_functional should have the value 201907L in c++2b"
3635 # endif
3636 
3637 # if !defined(_LIBCPP_VERSION)
3638 #   ifndef __cpp_lib_constexpr_iterator
3639 #     error "__cpp_lib_constexpr_iterator should be defined in c++2b"
3640 #   endif
3641 #   if __cpp_lib_constexpr_iterator != 201811L
3642 #     error "__cpp_lib_constexpr_iterator should have the value 201811L in c++2b"
3643 #   endif
3644 # else // _LIBCPP_VERSION
3645 #   ifdef __cpp_lib_constexpr_iterator
3646 #     error "__cpp_lib_constexpr_iterator should not be defined because it is unimplemented in libc++!"
3647 #   endif
3648 # endif
3649 
3650 # if !defined(_LIBCPP_VERSION)
3651 #   ifndef __cpp_lib_constexpr_memory
3652 #     error "__cpp_lib_constexpr_memory should be defined in c++2b"
3653 #   endif
3654 #   if __cpp_lib_constexpr_memory != 201811L
3655 #     error "__cpp_lib_constexpr_memory should have the value 201811L in c++2b"
3656 #   endif
3657 # else // _LIBCPP_VERSION
3658 #   ifdef __cpp_lib_constexpr_memory
3659 #     error "__cpp_lib_constexpr_memory should not be defined because it is unimplemented in libc++!"
3660 #   endif
3661 # endif
3662 
3663 # ifndef __cpp_lib_constexpr_numeric
3664 #   error "__cpp_lib_constexpr_numeric should be defined in c++2b"
3665 # endif
3666 # if __cpp_lib_constexpr_numeric != 201911L
3667 #   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++2b"
3668 # endif
3669 
3670 # if !defined(_LIBCPP_VERSION)
3671 #   ifndef __cpp_lib_constexpr_string
3672 #     error "__cpp_lib_constexpr_string should be defined in c++2b"
3673 #   endif
3674 #   if __cpp_lib_constexpr_string != 201907L
3675 #     error "__cpp_lib_constexpr_string should have the value 201907L in c++2b"
3676 #   endif
3677 # else // _LIBCPP_VERSION
3678 #   ifdef __cpp_lib_constexpr_string
3679 #     error "__cpp_lib_constexpr_string should not be defined because it is unimplemented in libc++!"
3680 #   endif
3681 # endif
3682 
3683 # if !defined(_LIBCPP_VERSION)
3684 #   ifndef __cpp_lib_constexpr_string_view
3685 #     error "__cpp_lib_constexpr_string_view should be defined in c++2b"
3686 #   endif
3687 #   if __cpp_lib_constexpr_string_view != 201811L
3688 #     error "__cpp_lib_constexpr_string_view should have the value 201811L in c++2b"
3689 #   endif
3690 # else // _LIBCPP_VERSION
3691 #   ifdef __cpp_lib_constexpr_string_view
3692 #     error "__cpp_lib_constexpr_string_view should not be defined because it is unimplemented in libc++!"
3693 #   endif
3694 # endif
3695 
3696 # if !defined(_LIBCPP_VERSION)
3697 #   ifndef __cpp_lib_constexpr_tuple
3698 #     error "__cpp_lib_constexpr_tuple should be defined in c++2b"
3699 #   endif
3700 #   if __cpp_lib_constexpr_tuple != 201811L
3701 #     error "__cpp_lib_constexpr_tuple should have the value 201811L in c++2b"
3702 #   endif
3703 # else // _LIBCPP_VERSION
3704 #   ifdef __cpp_lib_constexpr_tuple
3705 #     error "__cpp_lib_constexpr_tuple should not be defined because it is unimplemented in libc++!"
3706 #   endif
3707 # endif
3708 
3709 # ifndef __cpp_lib_constexpr_utility
3710 #   error "__cpp_lib_constexpr_utility should be defined in c++2b"
3711 # endif
3712 # if __cpp_lib_constexpr_utility != 201811L
3713 #   error "__cpp_lib_constexpr_utility should have the value 201811L in c++2b"
3714 # endif
3715 
3716 # if !defined(_LIBCPP_VERSION)
3717 #   ifndef __cpp_lib_constexpr_vector
3718 #     error "__cpp_lib_constexpr_vector should be defined in c++2b"
3719 #   endif
3720 #   if __cpp_lib_constexpr_vector != 201907L
3721 #     error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b"
3722 #   endif
3723 # else // _LIBCPP_VERSION
3724 #   ifdef __cpp_lib_constexpr_vector
3725 #     error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!"
3726 #   endif
3727 # endif
3728 
3729 # if !defined(_LIBCPP_VERSION)
3730 #   ifndef __cpp_lib_coroutine
3731 #     error "__cpp_lib_coroutine should be defined in c++2b"
3732 #   endif
3733 #   if __cpp_lib_coroutine != 201902L
3734 #     error "__cpp_lib_coroutine should have the value 201902L in c++2b"
3735 #   endif
3736 # else // _LIBCPP_VERSION
3737 #   ifdef __cpp_lib_coroutine
3738 #     error "__cpp_lib_coroutine should not be defined because it is unimplemented in libc++!"
3739 #   endif
3740 # endif
3741 
3742 # if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
3743 #   ifndef __cpp_lib_destroying_delete
3744 #     error "__cpp_lib_destroying_delete should be defined in c++2b"
3745 #   endif
3746 #   if __cpp_lib_destroying_delete != 201806L
3747 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++2b"
3748 #   endif
3749 # else
3750 #   ifdef __cpp_lib_destroying_delete
3751 #     error "__cpp_lib_destroying_delete should not be defined when TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L is not defined!"
3752 #   endif
3753 # endif
3754 
3755 # ifndef __cpp_lib_enable_shared_from_this
3756 #   error "__cpp_lib_enable_shared_from_this should be defined in c++2b"
3757 # endif
3758 # if __cpp_lib_enable_shared_from_this != 201603L
3759 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++2b"
3760 # endif
3761 
3762 # ifndef __cpp_lib_endian
3763 #   error "__cpp_lib_endian should be defined in c++2b"
3764 # endif
3765 # if __cpp_lib_endian != 201907L
3766 #   error "__cpp_lib_endian should have the value 201907L in c++2b"
3767 # endif
3768 
3769 # ifndef __cpp_lib_erase_if
3770 #   error "__cpp_lib_erase_if should be defined in c++2b"
3771 # endif
3772 # if __cpp_lib_erase_if != 202002L
3773 #   error "__cpp_lib_erase_if should have the value 202002L in c++2b"
3774 # endif
3775 
3776 # ifndef __cpp_lib_exchange_function
3777 #   error "__cpp_lib_exchange_function should be defined in c++2b"
3778 # endif
3779 # if __cpp_lib_exchange_function != 201304L
3780 #   error "__cpp_lib_exchange_function should have the value 201304L in c++2b"
3781 # endif
3782 
3783 # if !defined(_LIBCPP_VERSION)
3784 #   ifndef __cpp_lib_execution
3785 #     error "__cpp_lib_execution should be defined in c++2b"
3786 #   endif
3787 #   if __cpp_lib_execution != 201902L
3788 #     error "__cpp_lib_execution should have the value 201902L in c++2b"
3789 #   endif
3790 # else // _LIBCPP_VERSION
3791 #   ifdef __cpp_lib_execution
3792 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
3793 #   endif
3794 # endif
3795 
3796 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
3797 #   ifndef __cpp_lib_filesystem
3798 #     error "__cpp_lib_filesystem should be defined in c++2b"
3799 #   endif
3800 #   if __cpp_lib_filesystem != 201703L
3801 #     error "__cpp_lib_filesystem should have the value 201703L in c++2b"
3802 #   endif
3803 # else
3804 #   ifdef __cpp_lib_filesystem
3805 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
3806 #   endif
3807 # endif
3808 
3809 # ifndef __cpp_lib_gcd_lcm
3810 #   error "__cpp_lib_gcd_lcm should be defined in c++2b"
3811 # endif
3812 # if __cpp_lib_gcd_lcm != 201606L
3813 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++2b"
3814 # endif
3815 
3816 # ifndef __cpp_lib_generic_associative_lookup
3817 #   error "__cpp_lib_generic_associative_lookup should be defined in c++2b"
3818 # endif
3819 # if __cpp_lib_generic_associative_lookup != 201304L
3820 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++2b"
3821 # endif
3822 
3823 # ifndef __cpp_lib_generic_unordered_lookup
3824 #   error "__cpp_lib_generic_unordered_lookup should be defined in c++2b"
3825 # endif
3826 # if __cpp_lib_generic_unordered_lookup != 201811L
3827 #   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++2b"
3828 # endif
3829 
3830 # if !defined(_LIBCPP_VERSION)
3831 #   ifndef __cpp_lib_hardware_interference_size
3832 #     error "__cpp_lib_hardware_interference_size should be defined in c++2b"
3833 #   endif
3834 #   if __cpp_lib_hardware_interference_size != 201703L
3835 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++2b"
3836 #   endif
3837 # else // _LIBCPP_VERSION
3838 #   ifdef __cpp_lib_hardware_interference_size
3839 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
3840 #   endif
3841 # endif
3842 
3843 # if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
3844 #   ifndef __cpp_lib_has_unique_object_representations
3845 #     error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
3846 #   endif
3847 #   if __cpp_lib_has_unique_object_representations != 201606L
3848 #     error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
3849 #   endif
3850 # else
3851 #   ifdef __cpp_lib_has_unique_object_representations
3852 #     error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
3853 #   endif
3854 # endif
3855 
3856 # ifndef __cpp_lib_hypot
3857 #   error "__cpp_lib_hypot should be defined in c++2b"
3858 # endif
3859 # if __cpp_lib_hypot != 201603L
3860 #   error "__cpp_lib_hypot should have the value 201603L in c++2b"
3861 # endif
3862 
3863 # ifndef __cpp_lib_incomplete_container_elements
3864 #   error "__cpp_lib_incomplete_container_elements should be defined in c++2b"
3865 # endif
3866 # if __cpp_lib_incomplete_container_elements != 201505L
3867 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++2b"
3868 # endif
3869 
3870 # ifndef __cpp_lib_int_pow2
3871 #   error "__cpp_lib_int_pow2 should be defined in c++2b"
3872 # endif
3873 # if __cpp_lib_int_pow2 != 202002L
3874 #   error "__cpp_lib_int_pow2 should have the value 202002L in c++2b"
3875 # endif
3876 
3877 # if !defined(_LIBCPP_VERSION)
3878 #   ifndef __cpp_lib_integer_comparison_functions
3879 #     error "__cpp_lib_integer_comparison_functions should be defined in c++2b"
3880 #   endif
3881 #   if __cpp_lib_integer_comparison_functions != 202002L
3882 #     error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++2b"
3883 #   endif
3884 # else // _LIBCPP_VERSION
3885 #   ifdef __cpp_lib_integer_comparison_functions
3886 #     error "__cpp_lib_integer_comparison_functions should not be defined because it is unimplemented in libc++!"
3887 #   endif
3888 # endif
3889 
3890 # ifndef __cpp_lib_integer_sequence
3891 #   error "__cpp_lib_integer_sequence should be defined in c++2b"
3892 # endif
3893 # if __cpp_lib_integer_sequence != 201304L
3894 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++2b"
3895 # endif
3896 
3897 # ifndef __cpp_lib_integral_constant_callable
3898 #   error "__cpp_lib_integral_constant_callable should be defined in c++2b"
3899 # endif
3900 # if __cpp_lib_integral_constant_callable != 201304L
3901 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++2b"
3902 # endif
3903 
3904 # ifndef __cpp_lib_interpolate
3905 #   error "__cpp_lib_interpolate should be defined in c++2b"
3906 # endif
3907 # if __cpp_lib_interpolate != 201902L
3908 #   error "__cpp_lib_interpolate should have the value 201902L in c++2b"
3909 # endif
3910 
3911 # ifndef __cpp_lib_invoke
3912 #   error "__cpp_lib_invoke should be defined in c++2b"
3913 # endif
3914 # if __cpp_lib_invoke != 201411L
3915 #   error "__cpp_lib_invoke should have the value 201411L in c++2b"
3916 # endif
3917 
3918 # if TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001
3919 #   ifndef __cpp_lib_is_aggregate
3920 #     error "__cpp_lib_is_aggregate should be defined in c++2b"
3921 #   endif
3922 #   if __cpp_lib_is_aggregate != 201703L
3923 #     error "__cpp_lib_is_aggregate should have the value 201703L in c++2b"
3924 #   endif
3925 # else
3926 #   ifdef __cpp_lib_is_aggregate
3927 #     error "__cpp_lib_is_aggregate should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001 is not defined!"
3928 #   endif
3929 # endif
3930 
3931 # if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
3932 #   ifndef __cpp_lib_is_constant_evaluated
3933 #     error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
3934 #   endif
3935 #   if __cpp_lib_is_constant_evaluated != 201811L
3936 #     error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
3937 #   endif
3938 # else
3939 #   ifdef __cpp_lib_is_constant_evaluated
3940 #     error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
3941 #   endif
3942 # endif
3943 
3944 # ifndef __cpp_lib_is_final
3945 #   error "__cpp_lib_is_final should be defined in c++2b"
3946 # endif
3947 # if __cpp_lib_is_final != 201402L
3948 #   error "__cpp_lib_is_final should have the value 201402L in c++2b"
3949 # endif
3950 
3951 # ifndef __cpp_lib_is_invocable
3952 #   error "__cpp_lib_is_invocable should be defined in c++2b"
3953 # endif
3954 # if __cpp_lib_is_invocable != 201703L
3955 #   error "__cpp_lib_is_invocable should have the value 201703L in c++2b"
3956 # endif
3957 
3958 # if !defined(_LIBCPP_VERSION)
3959 #   ifndef __cpp_lib_is_layout_compatible
3960 #     error "__cpp_lib_is_layout_compatible should be defined in c++2b"
3961 #   endif
3962 #   if __cpp_lib_is_layout_compatible != 201907L
3963 #     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++2b"
3964 #   endif
3965 # else // _LIBCPP_VERSION
3966 #   ifdef __cpp_lib_is_layout_compatible
3967 #     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
3968 #   endif
3969 # endif
3970 
3971 # ifndef __cpp_lib_is_nothrow_convertible
3972 #   error "__cpp_lib_is_nothrow_convertible should be defined in c++2b"
3973 # endif
3974 # if __cpp_lib_is_nothrow_convertible != 201806L
3975 #   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++2b"
3976 # endif
3977 
3978 # ifndef __cpp_lib_is_null_pointer
3979 #   error "__cpp_lib_is_null_pointer should be defined in c++2b"
3980 # endif
3981 # if __cpp_lib_is_null_pointer != 201309L
3982 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++2b"
3983 # endif
3984 
3985 # if !defined(_LIBCPP_VERSION)
3986 #   ifndef __cpp_lib_is_pointer_interconvertible
3987 #     error "__cpp_lib_is_pointer_interconvertible should be defined in c++2b"
3988 #   endif
3989 #   if __cpp_lib_is_pointer_interconvertible != 201907L
3990 #     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++2b"
3991 #   endif
3992 # else // _LIBCPP_VERSION
3993 #   ifdef __cpp_lib_is_pointer_interconvertible
3994 #     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
3995 #   endif
3996 # endif
3997 
3998 # ifndef __cpp_lib_is_scoped_enum
3999 #   error "__cpp_lib_is_scoped_enum should be defined in c++2b"
4000 # endif
4001 # if __cpp_lib_is_scoped_enum != 202011L
4002 #   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++2b"
4003 # endif
4004 
4005 # ifndef __cpp_lib_is_swappable
4006 #   error "__cpp_lib_is_swappable should be defined in c++2b"
4007 # endif
4008 # if __cpp_lib_is_swappable != 201603L
4009 #   error "__cpp_lib_is_swappable should have the value 201603L in c++2b"
4010 # endif
4011 
4012 # if !defined(_LIBCPP_VERSION)
4013 #   ifndef __cpp_lib_jthread
4014 #     error "__cpp_lib_jthread should be defined in c++2b"
4015 #   endif
4016 #   if __cpp_lib_jthread != 201911L
4017 #     error "__cpp_lib_jthread should have the value 201911L in c++2b"
4018 #   endif
4019 # else // _LIBCPP_VERSION
4020 #   ifdef __cpp_lib_jthread
4021 #     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
4022 #   endif
4023 # endif
4024 
4025 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch)
4026 #   ifndef __cpp_lib_latch
4027 #     error "__cpp_lib_latch should be defined in c++2b"
4028 #   endif
4029 #   if __cpp_lib_latch != 201907L
4030 #     error "__cpp_lib_latch should have the value 201907L in c++2b"
4031 #   endif
4032 # else
4033 #   ifdef __cpp_lib_latch
4034 #     error "__cpp_lib_latch should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch) is not defined!"
4035 #   endif
4036 # endif
4037 
4038 # ifndef __cpp_lib_launder
4039 #   error "__cpp_lib_launder should be defined in c++2b"
4040 # endif
4041 # if __cpp_lib_launder != 201606L
4042 #   error "__cpp_lib_launder should have the value 201606L in c++2b"
4043 # endif
4044 
4045 # ifndef __cpp_lib_list_remove_return_type
4046 #   error "__cpp_lib_list_remove_return_type should be defined in c++2b"
4047 # endif
4048 # if __cpp_lib_list_remove_return_type != 201806L
4049 #   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2b"
4050 # endif
4051 
4052 # ifndef __cpp_lib_logical_traits
4053 #   error "__cpp_lib_logical_traits should be defined in c++2b"
4054 # endif
4055 # if __cpp_lib_logical_traits != 201510L
4056 #   error "__cpp_lib_logical_traits should have the value 201510L in c++2b"
4057 # endif
4058 
4059 # ifndef __cpp_lib_make_from_tuple
4060 #   error "__cpp_lib_make_from_tuple should be defined in c++2b"
4061 # endif
4062 # if __cpp_lib_make_from_tuple != 201606L
4063 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++2b"
4064 # endif
4065 
4066 # ifndef __cpp_lib_make_reverse_iterator
4067 #   error "__cpp_lib_make_reverse_iterator should be defined in c++2b"
4068 # endif
4069 # if __cpp_lib_make_reverse_iterator != 201402L
4070 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++2b"
4071 # endif
4072 
4073 # ifndef __cpp_lib_make_unique
4074 #   error "__cpp_lib_make_unique should be defined in c++2b"
4075 # endif
4076 # if __cpp_lib_make_unique != 201304L
4077 #   error "__cpp_lib_make_unique should have the value 201304L in c++2b"
4078 # endif
4079 
4080 # ifndef __cpp_lib_map_try_emplace
4081 #   error "__cpp_lib_map_try_emplace should be defined in c++2b"
4082 # endif
4083 # if __cpp_lib_map_try_emplace != 201411L
4084 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++2b"
4085 # endif
4086 
4087 # if defined(__cpp_concepts) && __cpp_concepts >= 201811L
4088 #   ifndef __cpp_lib_math_constants
4089 #     error "__cpp_lib_math_constants should be defined in c++2b"
4090 #   endif
4091 #   if __cpp_lib_math_constants != 201907L
4092 #     error "__cpp_lib_math_constants should have the value 201907L in c++2b"
4093 #   endif
4094 # else
4095 #   ifdef __cpp_lib_math_constants
4096 #     error "__cpp_lib_math_constants should not be defined when defined(__cpp_concepts) && __cpp_concepts >= 201811L is not defined!"
4097 #   endif
4098 # endif
4099 
4100 # if !defined(_LIBCPP_VERSION)
4101 #   ifndef __cpp_lib_math_special_functions
4102 #     error "__cpp_lib_math_special_functions should be defined in c++2b"
4103 #   endif
4104 #   if __cpp_lib_math_special_functions != 201603L
4105 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++2b"
4106 #   endif
4107 # else // _LIBCPP_VERSION
4108 #   ifdef __cpp_lib_math_special_functions
4109 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
4110 #   endif
4111 # endif
4112 
4113 # if !defined(_LIBCPP_VERSION)
4114 #   ifndef __cpp_lib_memory_resource
4115 #     error "__cpp_lib_memory_resource should be defined in c++2b"
4116 #   endif
4117 #   if __cpp_lib_memory_resource != 201603L
4118 #     error "__cpp_lib_memory_resource should have the value 201603L in c++2b"
4119 #   endif
4120 # else // _LIBCPP_VERSION
4121 #   ifdef __cpp_lib_memory_resource
4122 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
4123 #   endif
4124 # endif
4125 
4126 # ifndef __cpp_lib_node_extract
4127 #   error "__cpp_lib_node_extract should be defined in c++2b"
4128 # endif
4129 # if __cpp_lib_node_extract != 201606L
4130 #   error "__cpp_lib_node_extract should have the value 201606L in c++2b"
4131 # endif
4132 
4133 # ifndef __cpp_lib_nonmember_container_access
4134 #   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
4135 # endif
4136 # if __cpp_lib_nonmember_container_access != 201411L
4137 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++2b"
4138 # endif
4139 
4140 # ifndef __cpp_lib_not_fn
4141 #   error "__cpp_lib_not_fn should be defined in c++2b"
4142 # endif
4143 # if __cpp_lib_not_fn != 201603L
4144 #   error "__cpp_lib_not_fn should have the value 201603L in c++2b"
4145 # endif
4146 
4147 # ifndef __cpp_lib_null_iterators
4148 #   error "__cpp_lib_null_iterators should be defined in c++2b"
4149 # endif
4150 # if __cpp_lib_null_iterators != 201304L
4151 #   error "__cpp_lib_null_iterators should have the value 201304L in c++2b"
4152 # endif
4153 
4154 # ifndef __cpp_lib_optional
4155 #   error "__cpp_lib_optional should be defined in c++2b"
4156 # endif
4157 # if __cpp_lib_optional != 201606L
4158 #   error "__cpp_lib_optional should have the value 201606L in c++2b"
4159 # endif
4160 
4161 # if !defined(_LIBCPP_VERSION)
4162 #   ifndef __cpp_lib_parallel_algorithm
4163 #     error "__cpp_lib_parallel_algorithm should be defined in c++2b"
4164 #   endif
4165 #   if __cpp_lib_parallel_algorithm != 201603L
4166 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++2b"
4167 #   endif
4168 # else // _LIBCPP_VERSION
4169 #   ifdef __cpp_lib_parallel_algorithm
4170 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
4171 #   endif
4172 # endif
4173 
4174 # if !defined(_LIBCPP_VERSION)
4175 #   ifndef __cpp_lib_polymorphic_allocator
4176 #     error "__cpp_lib_polymorphic_allocator should be defined in c++2b"
4177 #   endif
4178 #   if __cpp_lib_polymorphic_allocator != 201902L
4179 #     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++2b"
4180 #   endif
4181 # else // _LIBCPP_VERSION
4182 #   ifdef __cpp_lib_polymorphic_allocator
4183 #     error "__cpp_lib_polymorphic_allocator should not be defined because it is unimplemented in libc++!"
4184 #   endif
4185 # endif
4186 
4187 # ifndef __cpp_lib_quoted_string_io
4188 #   error "__cpp_lib_quoted_string_io should be defined in c++2b"
4189 # endif
4190 # if __cpp_lib_quoted_string_io != 201304L
4191 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++2b"
4192 # endif
4193 
4194 # if !defined(_LIBCPP_VERSION)
4195 #   ifndef __cpp_lib_ranges
4196 #     error "__cpp_lib_ranges should be defined in c++2b"
4197 #   endif
4198 #   if __cpp_lib_ranges != 201811L
4199 #     error "__cpp_lib_ranges should have the value 201811L in c++2b"
4200 #   endif
4201 # else // _LIBCPP_VERSION
4202 #   ifdef __cpp_lib_ranges
4203 #     error "__cpp_lib_ranges should not be defined because it is unimplemented in libc++!"
4204 #   endif
4205 # endif
4206 
4207 # ifndef __cpp_lib_raw_memory_algorithms
4208 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++2b"
4209 # endif
4210 # if __cpp_lib_raw_memory_algorithms != 201606L
4211 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++2b"
4212 # endif
4213 
4214 # ifndef __cpp_lib_remove_cvref
4215 #   error "__cpp_lib_remove_cvref should be defined in c++2b"
4216 # endif
4217 # if __cpp_lib_remove_cvref != 201711L
4218 #   error "__cpp_lib_remove_cvref should have the value 201711L in c++2b"
4219 # endif
4220 
4221 # ifndef __cpp_lib_result_of_sfinae
4222 #   error "__cpp_lib_result_of_sfinae should be defined in c++2b"
4223 # endif
4224 # if __cpp_lib_result_of_sfinae != 201210L
4225 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++2b"
4226 # endif
4227 
4228 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
4229 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++2b"
4230 # endif
4231 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
4232 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++2b"
4233 # endif
4234 
4235 # ifndef __cpp_lib_sample
4236 #   error "__cpp_lib_sample should be defined in c++2b"
4237 # endif
4238 # if __cpp_lib_sample != 201603L
4239 #   error "__cpp_lib_sample should have the value 201603L in c++2b"
4240 # endif
4241 
4242 # ifndef __cpp_lib_scoped_lock
4243 #   error "__cpp_lib_scoped_lock should be defined in c++2b"
4244 # endif
4245 # if __cpp_lib_scoped_lock != 201703L
4246 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++2b"
4247 # endif
4248 
4249 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore)
4250 #   ifndef __cpp_lib_semaphore
4251 #     error "__cpp_lib_semaphore should be defined in c++2b"
4252 #   endif
4253 #   if __cpp_lib_semaphore != 201907L
4254 #     error "__cpp_lib_semaphore should have the value 201907L in c++2b"
4255 #   endif
4256 # else
4257 #   ifdef __cpp_lib_semaphore
4258 #     error "__cpp_lib_semaphore should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore) is not defined!"
4259 #   endif
4260 # endif
4261 
4262 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
4263 #   ifndef __cpp_lib_shared_mutex
4264 #     error "__cpp_lib_shared_mutex should be defined in c++2b"
4265 #   endif
4266 #   if __cpp_lib_shared_mutex != 201505L
4267 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++2b"
4268 #   endif
4269 # else
4270 #   ifdef __cpp_lib_shared_mutex
4271 #     error "__cpp_lib_shared_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex) is not defined!"
4272 #   endif
4273 # endif
4274 
4275 # ifndef __cpp_lib_shared_ptr_arrays
4276 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++2b"
4277 # endif
4278 # if __cpp_lib_shared_ptr_arrays != 201611L
4279 #   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2b"
4280 # endif
4281 
4282 # ifndef __cpp_lib_shared_ptr_weak_type
4283 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++2b"
4284 # endif
4285 # if __cpp_lib_shared_ptr_weak_type != 201606L
4286 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++2b"
4287 # endif
4288 
4289 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
4290 #   ifndef __cpp_lib_shared_timed_mutex
4291 #     error "__cpp_lib_shared_timed_mutex should be defined in c++2b"
4292 #   endif
4293 #   if __cpp_lib_shared_timed_mutex != 201402L
4294 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++2b"
4295 #   endif
4296 # else
4297 #   ifdef __cpp_lib_shared_timed_mutex
4298 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex) is not defined!"
4299 #   endif
4300 # endif
4301 
4302 # ifndef __cpp_lib_shift
4303 #   error "__cpp_lib_shift should be defined in c++2b"
4304 # endif
4305 # if __cpp_lib_shift != 201806L
4306 #   error "__cpp_lib_shift should have the value 201806L in c++2b"
4307 # endif
4308 
4309 # if !defined(_LIBCPP_VERSION)
4310 #   ifndef __cpp_lib_smart_ptr_for_overwrite
4311 #     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++2b"
4312 #   endif
4313 #   if __cpp_lib_smart_ptr_for_overwrite != 202002L
4314 #     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++2b"
4315 #   endif
4316 # else // _LIBCPP_VERSION
4317 #   ifdef __cpp_lib_smart_ptr_for_overwrite
4318 #     error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
4319 #   endif
4320 # endif
4321 
4322 # if !defined(_LIBCPP_VERSION)
4323 #   ifndef __cpp_lib_source_location
4324 #     error "__cpp_lib_source_location should be defined in c++2b"
4325 #   endif
4326 #   if __cpp_lib_source_location != 201907L
4327 #     error "__cpp_lib_source_location should have the value 201907L in c++2b"
4328 #   endif
4329 # else // _LIBCPP_VERSION
4330 #   ifdef __cpp_lib_source_location
4331 #     error "__cpp_lib_source_location should not be defined because it is unimplemented in libc++!"
4332 #   endif
4333 # endif
4334 
4335 # ifndef __cpp_lib_span
4336 #   error "__cpp_lib_span should be defined in c++2b"
4337 # endif
4338 # if __cpp_lib_span != 202002L
4339 #   error "__cpp_lib_span should have the value 202002L in c++2b"
4340 # endif
4341 
4342 # ifndef __cpp_lib_ssize
4343 #   error "__cpp_lib_ssize should be defined in c++2b"
4344 # endif
4345 # if __cpp_lib_ssize != 201902L
4346 #   error "__cpp_lib_ssize should have the value 201902L in c++2b"
4347 # endif
4348 
4349 # if !defined(_LIBCPP_VERSION)
4350 #   ifndef __cpp_lib_stacktrace
4351 #     error "__cpp_lib_stacktrace should be defined in c++2b"
4352 #   endif
4353 #   if __cpp_lib_stacktrace != 202011L
4354 #     error "__cpp_lib_stacktrace should have the value 202011L in c++2b"
4355 #   endif
4356 # else // _LIBCPP_VERSION
4357 #   ifdef __cpp_lib_stacktrace
4358 #     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
4359 #   endif
4360 # endif
4361 
4362 # ifndef __cpp_lib_starts_ends_with
4363 #   error "__cpp_lib_starts_ends_with should be defined in c++2b"
4364 # endif
4365 # if __cpp_lib_starts_ends_with != 201711L
4366 #   error "__cpp_lib_starts_ends_with should have the value 201711L in c++2b"
4367 # endif
4368 
4369 # if !defined(_LIBCPP_VERSION)
4370 #   ifndef __cpp_lib_stdatomic_h
4371 #     error "__cpp_lib_stdatomic_h should be defined in c++2b"
4372 #   endif
4373 #   if __cpp_lib_stdatomic_h != 202011L
4374 #     error "__cpp_lib_stdatomic_h should have the value 202011L in c++2b"
4375 #   endif
4376 # else // _LIBCPP_VERSION
4377 #   ifdef __cpp_lib_stdatomic_h
4378 #     error "__cpp_lib_stdatomic_h should not be defined because it is unimplemented in libc++!"
4379 #   endif
4380 # endif
4381 
4382 # ifndef __cpp_lib_string_contains
4383 #   error "__cpp_lib_string_contains should be defined in c++2b"
4384 # endif
4385 # if __cpp_lib_string_contains != 202011L
4386 #   error "__cpp_lib_string_contains should have the value 202011L in c++2b"
4387 # endif
4388 
4389 # ifndef __cpp_lib_string_udls
4390 #   error "__cpp_lib_string_udls should be defined in c++2b"
4391 # endif
4392 # if __cpp_lib_string_udls != 201304L
4393 #   error "__cpp_lib_string_udls should have the value 201304L in c++2b"
4394 # endif
4395 
4396 # ifndef __cpp_lib_string_view
4397 #   error "__cpp_lib_string_view should be defined in c++2b"
4398 # endif
4399 # if __cpp_lib_string_view != 201803L
4400 #   error "__cpp_lib_string_view should have the value 201803L in c++2b"
4401 # endif
4402 
4403 # if !defined(_LIBCPP_VERSION)
4404 #   ifndef __cpp_lib_syncbuf
4405 #     error "__cpp_lib_syncbuf should be defined in c++2b"
4406 #   endif
4407 #   if __cpp_lib_syncbuf != 201803L
4408 #     error "__cpp_lib_syncbuf should have the value 201803L in c++2b"
4409 #   endif
4410 # else // _LIBCPP_VERSION
4411 #   ifdef __cpp_lib_syncbuf
4412 #     error "__cpp_lib_syncbuf should not be defined because it is unimplemented in libc++!"
4413 #   endif
4414 # endif
4415 
4416 # if !defined(_LIBCPP_VERSION)
4417 #   ifndef __cpp_lib_three_way_comparison
4418 #     error "__cpp_lib_three_way_comparison should be defined in c++2b"
4419 #   endif
4420 #   if __cpp_lib_three_way_comparison != 201907L
4421 #     error "__cpp_lib_three_way_comparison should have the value 201907L in c++2b"
4422 #   endif
4423 # else // _LIBCPP_VERSION
4424 #   ifdef __cpp_lib_three_way_comparison
4425 #     error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
4426 #   endif
4427 # endif
4428 
4429 # ifndef __cpp_lib_to_address
4430 #   error "__cpp_lib_to_address should be defined in c++2b"
4431 # endif
4432 # if __cpp_lib_to_address != 201711L
4433 #   error "__cpp_lib_to_address should have the value 201711L in c++2b"
4434 # endif
4435 
4436 # ifndef __cpp_lib_to_array
4437 #   error "__cpp_lib_to_array should be defined in c++2b"
4438 # endif
4439 # if __cpp_lib_to_array != 201907L
4440 #   error "__cpp_lib_to_array should have the value 201907L in c++2b"
4441 # endif
4442 
4443 # if !defined(_LIBCPP_VERSION)
4444 #   ifndef __cpp_lib_to_chars
4445 #     error "__cpp_lib_to_chars should be defined in c++2b"
4446 #   endif
4447 #   if __cpp_lib_to_chars != 201611L
4448 #     error "__cpp_lib_to_chars should have the value 201611L in c++2b"
4449 #   endif
4450 # else // _LIBCPP_VERSION
4451 #   ifdef __cpp_lib_to_chars
4452 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
4453 #   endif
4454 # endif
4455 
4456 # ifndef __cpp_lib_transformation_trait_aliases
4457 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++2b"
4458 # endif
4459 # if __cpp_lib_transformation_trait_aliases != 201304L
4460 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++2b"
4461 # endif
4462 
4463 # ifndef __cpp_lib_transparent_operators
4464 #   error "__cpp_lib_transparent_operators should be defined in c++2b"
4465 # endif
4466 # if __cpp_lib_transparent_operators != 201510L
4467 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++2b"
4468 # endif
4469 
4470 # ifndef __cpp_lib_tuple_element_t
4471 #   error "__cpp_lib_tuple_element_t should be defined in c++2b"
4472 # endif
4473 # if __cpp_lib_tuple_element_t != 201402L
4474 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++2b"
4475 # endif
4476 
4477 # ifndef __cpp_lib_tuples_by_type
4478 #   error "__cpp_lib_tuples_by_type should be defined in c++2b"
4479 # endif
4480 # if __cpp_lib_tuples_by_type != 201304L
4481 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++2b"
4482 # endif
4483 
4484 # ifndef __cpp_lib_type_trait_variable_templates
4485 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++2b"
4486 # endif
4487 # if __cpp_lib_type_trait_variable_templates != 201510L
4488 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++2b"
4489 # endif
4490 
4491 # ifndef __cpp_lib_uncaught_exceptions
4492 #   error "__cpp_lib_uncaught_exceptions should be defined in c++2b"
4493 # endif
4494 # if __cpp_lib_uncaught_exceptions != 201411L
4495 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++2b"
4496 # endif
4497 
4498 # ifndef __cpp_lib_unordered_map_try_emplace
4499 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++2b"
4500 # endif
4501 # if __cpp_lib_unordered_map_try_emplace != 201411L
4502 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++2b"
4503 # endif
4504 
4505 # ifndef __cpp_lib_unwrap_ref
4506 #   error "__cpp_lib_unwrap_ref should be defined in c++2b"
4507 # endif
4508 # if __cpp_lib_unwrap_ref != 201811L
4509 #   error "__cpp_lib_unwrap_ref should have the value 201811L in c++2b"
4510 # endif
4511 
4512 # ifndef __cpp_lib_variant
4513 #   error "__cpp_lib_variant should be defined in c++2b"
4514 # endif
4515 # if __cpp_lib_variant != 201606L
4516 #   error "__cpp_lib_variant should have the value 201606L in c++2b"
4517 # endif
4518 
4519 # ifndef __cpp_lib_void_t
4520 #   error "__cpp_lib_void_t should be defined in c++2b"
4521 # endif
4522 # if __cpp_lib_void_t != 201411L
4523 #   error "__cpp_lib_void_t should have the value 201411L in c++2b"
4524 # endif
4525 
4526 #endif // TEST_STD_VER > 20
4527 
main(int,char **)4528 int main(int, char**) { return 0; }
4529