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