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