1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // WARNING: This test was generated by generate_feature_test_macro_components.py
10 // and should not be edited manually.
11 //
12 // clang-format off
13 
14 // <version>
15 
16 // Test the feature test macros defined by <version>
17 
18 /*  Constant                                       Value
19     __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++2b]
20     __cpp_lib_addressof_constexpr                  201603L [C++17]
21     __cpp_lib_allocate_at_least                    202106L [C++2b]
22     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
23     __cpp_lib_any                                  201606L [C++17]
24     __cpp_lib_apply                                201603L [C++17]
25     __cpp_lib_array_constexpr                      201603L [C++17]
26                                                    201811L [C++20]
27     __cpp_lib_as_const                             201510L [C++17]
28     __cpp_lib_associative_heterogeneous_erasure    202110L [C++2b]
29     __cpp_lib_assume_aligned                       201811L [C++20]
30     __cpp_lib_atomic_flag_test                     201907L [C++20]
31     __cpp_lib_atomic_float                         201711L [C++20]
32     __cpp_lib_atomic_is_always_lock_free           201603L [C++17]
33     __cpp_lib_atomic_lock_free_type_aliases        201907L [C++20]
34     __cpp_lib_atomic_ref                           201806L [C++20]
35     __cpp_lib_atomic_shared_ptr                    201711L [C++20]
36     __cpp_lib_atomic_value_initialization          201911L [C++20]
37     __cpp_lib_atomic_wait                          201907L [C++20]
38     __cpp_lib_barrier                              201907L [C++20]
39     __cpp_lib_bind_back                            202202L [C++2b]
40     __cpp_lib_bind_front                           201907L [C++20]
41     __cpp_lib_bit_cast                             201806L [C++20]
42     __cpp_lib_bitops                               201907L [C++20]
43     __cpp_lib_bool_constant                        201505L [C++17]
44     __cpp_lib_bounded_array_traits                 201902L [C++20]
45     __cpp_lib_boyer_moore_searcher                 201603L [C++17]
46     __cpp_lib_byte                                 201603L [C++17]
47     __cpp_lib_byteswap                             202110L [C++2b]
48     __cpp_lib_char8_t                              201811L [C++20]
49     __cpp_lib_chrono                               201611L [C++17]
50     __cpp_lib_chrono_udls                          201304L [C++14]
51     __cpp_lib_clamp                                201603L [C++17]
52     __cpp_lib_complex_udls                         201309L [C++14]
53     __cpp_lib_concepts                             202002L [C++20]
54     __cpp_lib_constexpr_algorithms                 201806L [C++20]
55     __cpp_lib_constexpr_cmath                      202202L [C++2b]
56     __cpp_lib_constexpr_complex                    201711L [C++20]
57     __cpp_lib_constexpr_dynamic_alloc              201907L [C++20]
58     __cpp_lib_constexpr_functional                 201907L [C++20]
59     __cpp_lib_constexpr_iterator                   201811L [C++20]
60     __cpp_lib_constexpr_memory                     201811L [C++20]
61     __cpp_lib_constexpr_numeric                    201911L [C++20]
62     __cpp_lib_constexpr_string                     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 # if !defined(_LIBCPP_VERSION)
1622 #   ifndef __cpp_lib_boyer_moore_searcher
1623 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
1624 #   endif
1625 #   if __cpp_lib_boyer_moore_searcher != 201603L
1626 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
1627 #   endif
1628 # else // _LIBCPP_VERSION
1629 #   ifdef __cpp_lib_boyer_moore_searcher
1630 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
1631 #   endif
1632 # endif
1633 
1634 # ifndef __cpp_lib_byte
1635 #   error "__cpp_lib_byte should be defined in c++17"
1636 # endif
1637 # if __cpp_lib_byte != 201603L
1638 #   error "__cpp_lib_byte should have the value 201603L in c++17"
1639 # endif
1640 
1641 # ifdef __cpp_lib_byteswap
1642 #   error "__cpp_lib_byteswap should not be defined before c++2b"
1643 # endif
1644 
1645 # ifdef __cpp_lib_char8_t
1646 #   error "__cpp_lib_char8_t should not be defined before c++20"
1647 # endif
1648 
1649 # ifndef __cpp_lib_chrono
1650 #   error "__cpp_lib_chrono should be defined in c++17"
1651 # endif
1652 # if __cpp_lib_chrono != 201611L
1653 #   error "__cpp_lib_chrono should have the value 201611L in c++17"
1654 # endif
1655 
1656 # ifndef __cpp_lib_chrono_udls
1657 #   error "__cpp_lib_chrono_udls should be defined in c++17"
1658 # endif
1659 # if __cpp_lib_chrono_udls != 201304L
1660 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
1661 # endif
1662 
1663 # ifndef __cpp_lib_clamp
1664 #   error "__cpp_lib_clamp should be defined in c++17"
1665 # endif
1666 # if __cpp_lib_clamp != 201603L
1667 #   error "__cpp_lib_clamp should have the value 201603L in c++17"
1668 # endif
1669 
1670 # ifndef __cpp_lib_complex_udls
1671 #   error "__cpp_lib_complex_udls should be defined in c++17"
1672 # endif
1673 # if __cpp_lib_complex_udls != 201309L
1674 #   error "__cpp_lib_complex_udls should have the value 201309L in c++17"
1675 # endif
1676 
1677 # ifdef __cpp_lib_concepts
1678 #   error "__cpp_lib_concepts should not be defined before c++20"
1679 # endif
1680 
1681 # ifdef __cpp_lib_constexpr_algorithms
1682 #   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
1683 # endif
1684 
1685 # ifdef __cpp_lib_constexpr_cmath
1686 #   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
1687 # endif
1688 
1689 # ifdef __cpp_lib_constexpr_complex
1690 #   error "__cpp_lib_constexpr_complex should not be defined before c++20"
1691 # endif
1692 
1693 # ifdef __cpp_lib_constexpr_dynamic_alloc
1694 #   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
1695 # endif
1696 
1697 # ifdef __cpp_lib_constexpr_functional
1698 #   error "__cpp_lib_constexpr_functional should not be defined before c++20"
1699 # endif
1700 
1701 # ifdef __cpp_lib_constexpr_iterator
1702 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
1703 # endif
1704 
1705 # ifdef __cpp_lib_constexpr_memory
1706 #   error "__cpp_lib_constexpr_memory should not be defined before c++20"
1707 # endif
1708 
1709 # ifdef __cpp_lib_constexpr_numeric
1710 #   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
1711 # endif
1712 
1713 # ifdef __cpp_lib_constexpr_string
1714 #   error "__cpp_lib_constexpr_string should not be defined before c++20"
1715 # endif
1716 
1717 # ifdef __cpp_lib_constexpr_string_view
1718 #   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
1719 # endif
1720 
1721 # ifdef __cpp_lib_constexpr_tuple
1722 #   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
1723 # endif
1724 
1725 # ifdef __cpp_lib_constexpr_typeinfo
1726 #   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
1727 # endif
1728 
1729 # ifdef __cpp_lib_constexpr_utility
1730 #   error "__cpp_lib_constexpr_utility should not be defined before c++20"
1731 # endif
1732 
1733 # ifdef __cpp_lib_constexpr_vector
1734 #   error "__cpp_lib_constexpr_vector should not be defined before c++20"
1735 # endif
1736 
1737 # ifdef __cpp_lib_coroutine
1738 #   error "__cpp_lib_coroutine should not be defined before c++20"
1739 # endif
1740 
1741 # ifdef __cpp_lib_destroying_delete
1742 #   error "__cpp_lib_destroying_delete should not be defined before c++20"
1743 # endif
1744 
1745 # ifndef __cpp_lib_enable_shared_from_this
1746 #   error "__cpp_lib_enable_shared_from_this should be defined in c++17"
1747 # endif
1748 # if __cpp_lib_enable_shared_from_this != 201603L
1749 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
1750 # endif
1751 
1752 # ifdef __cpp_lib_endian
1753 #   error "__cpp_lib_endian should not be defined before c++20"
1754 # endif
1755 
1756 # ifdef __cpp_lib_erase_if
1757 #   error "__cpp_lib_erase_if should not be defined before c++20"
1758 # endif
1759 
1760 # ifndef __cpp_lib_exchange_function
1761 #   error "__cpp_lib_exchange_function should be defined in c++17"
1762 # endif
1763 # if __cpp_lib_exchange_function != 201304L
1764 #   error "__cpp_lib_exchange_function should have the value 201304L in c++17"
1765 # endif
1766 
1767 # if !defined(_LIBCPP_VERSION)
1768 #   ifndef __cpp_lib_execution
1769 #     error "__cpp_lib_execution should be defined in c++17"
1770 #   endif
1771 #   if __cpp_lib_execution != 201603L
1772 #     error "__cpp_lib_execution should have the value 201603L in c++17"
1773 #   endif
1774 # else // _LIBCPP_VERSION
1775 #   ifdef __cpp_lib_execution
1776 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
1777 #   endif
1778 # endif
1779 
1780 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
1781 #   ifndef __cpp_lib_filesystem
1782 #     error "__cpp_lib_filesystem should be defined in c++17"
1783 #   endif
1784 #   if __cpp_lib_filesystem != 201703L
1785 #     error "__cpp_lib_filesystem should have the value 201703L in c++17"
1786 #   endif
1787 # else
1788 #   ifdef __cpp_lib_filesystem
1789 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
1790 #   endif
1791 # endif
1792 
1793 # ifdef __cpp_lib_format
1794 #   error "__cpp_lib_format should not be defined before c++20"
1795 # endif
1796 
1797 # ifndef __cpp_lib_gcd_lcm
1798 #   error "__cpp_lib_gcd_lcm should be defined in c++17"
1799 # endif
1800 # if __cpp_lib_gcd_lcm != 201606L
1801 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
1802 # endif
1803 
1804 # ifndef __cpp_lib_generic_associative_lookup
1805 #   error "__cpp_lib_generic_associative_lookup should be defined in c++17"
1806 # endif
1807 # if __cpp_lib_generic_associative_lookup != 201304L
1808 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
1809 # endif
1810 
1811 # ifdef __cpp_lib_generic_unordered_lookup
1812 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
1813 # endif
1814 
1815 # if !defined(_LIBCPP_VERSION)
1816 #   ifndef __cpp_lib_hardware_interference_size
1817 #     error "__cpp_lib_hardware_interference_size should be defined in c++17"
1818 #   endif
1819 #   if __cpp_lib_hardware_interference_size != 201703L
1820 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
1821 #   endif
1822 # else // _LIBCPP_VERSION
1823 #   ifdef __cpp_lib_hardware_interference_size
1824 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
1825 #   endif
1826 # endif
1827 
1828 # ifndef __cpp_lib_has_unique_object_representations
1829 #   error "__cpp_lib_has_unique_object_representations should be defined in c++17"
1830 # endif
1831 # if __cpp_lib_has_unique_object_representations != 201606L
1832 #   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
1833 # endif
1834 
1835 # ifndef __cpp_lib_hypot
1836 #   error "__cpp_lib_hypot should be defined in c++17"
1837 # endif
1838 # if __cpp_lib_hypot != 201603L
1839 #   error "__cpp_lib_hypot should have the value 201603L in c++17"
1840 # endif
1841 
1842 # ifndef __cpp_lib_incomplete_container_elements
1843 #   error "__cpp_lib_incomplete_container_elements should be defined in c++17"
1844 # endif
1845 # if __cpp_lib_incomplete_container_elements != 201505L
1846 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
1847 # endif
1848 
1849 # ifdef __cpp_lib_int_pow2
1850 #   error "__cpp_lib_int_pow2 should not be defined before c++20"
1851 # endif
1852 
1853 # ifdef __cpp_lib_integer_comparison_functions
1854 #   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
1855 # endif
1856 
1857 # ifndef __cpp_lib_integer_sequence
1858 #   error "__cpp_lib_integer_sequence should be defined in c++17"
1859 # endif
1860 # if __cpp_lib_integer_sequence != 201304L
1861 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
1862 # endif
1863 
1864 # ifndef __cpp_lib_integral_constant_callable
1865 #   error "__cpp_lib_integral_constant_callable should be defined in c++17"
1866 # endif
1867 # if __cpp_lib_integral_constant_callable != 201304L
1868 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
1869 # endif
1870 
1871 # ifdef __cpp_lib_interpolate
1872 #   error "__cpp_lib_interpolate should not be defined before c++20"
1873 # endif
1874 
1875 # ifndef __cpp_lib_invoke
1876 #   error "__cpp_lib_invoke should be defined in c++17"
1877 # endif
1878 # if __cpp_lib_invoke != 201411L
1879 #   error "__cpp_lib_invoke should have the value 201411L in c++17"
1880 # endif
1881 
1882 # ifdef __cpp_lib_invoke_r
1883 #   error "__cpp_lib_invoke_r should not be defined before c++2b"
1884 # endif
1885 
1886 # ifndef __cpp_lib_is_aggregate
1887 #   error "__cpp_lib_is_aggregate should be defined in c++17"
1888 # endif
1889 # if __cpp_lib_is_aggregate != 201703L
1890 #   error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
1891 # endif
1892 
1893 # ifdef __cpp_lib_is_constant_evaluated
1894 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
1895 # endif
1896 
1897 # ifndef __cpp_lib_is_final
1898 #   error "__cpp_lib_is_final should be defined in c++17"
1899 # endif
1900 # if __cpp_lib_is_final != 201402L
1901 #   error "__cpp_lib_is_final should have the value 201402L in c++17"
1902 # endif
1903 
1904 # ifndef __cpp_lib_is_invocable
1905 #   error "__cpp_lib_is_invocable should be defined in c++17"
1906 # endif
1907 # if __cpp_lib_is_invocable != 201703L
1908 #   error "__cpp_lib_is_invocable should have the value 201703L in c++17"
1909 # endif
1910 
1911 # ifdef __cpp_lib_is_layout_compatible
1912 #   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
1913 # endif
1914 
1915 # ifdef __cpp_lib_is_nothrow_convertible
1916 #   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
1917 # endif
1918 
1919 # ifndef __cpp_lib_is_null_pointer
1920 #   error "__cpp_lib_is_null_pointer should be defined in c++17"
1921 # endif
1922 # if __cpp_lib_is_null_pointer != 201309L
1923 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
1924 # endif
1925 
1926 # ifdef __cpp_lib_is_pointer_interconvertible
1927 #   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
1928 # endif
1929 
1930 # ifdef __cpp_lib_is_scoped_enum
1931 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
1932 # endif
1933 
1934 # ifndef __cpp_lib_is_swappable
1935 #   error "__cpp_lib_is_swappable should be defined in c++17"
1936 # endif
1937 # if __cpp_lib_is_swappable != 201603L
1938 #   error "__cpp_lib_is_swappable should have the value 201603L in c++17"
1939 # endif
1940 
1941 # ifdef __cpp_lib_jthread
1942 #   error "__cpp_lib_jthread should not be defined before c++20"
1943 # endif
1944 
1945 # ifdef __cpp_lib_latch
1946 #   error "__cpp_lib_latch should not be defined before c++20"
1947 # endif
1948 
1949 # ifndef __cpp_lib_launder
1950 #   error "__cpp_lib_launder should be defined in c++17"
1951 # endif
1952 # if __cpp_lib_launder != 201606L
1953 #   error "__cpp_lib_launder should have the value 201606L in c++17"
1954 # endif
1955 
1956 # ifdef __cpp_lib_list_remove_return_type
1957 #   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
1958 # endif
1959 
1960 # ifndef __cpp_lib_logical_traits
1961 #   error "__cpp_lib_logical_traits should be defined in c++17"
1962 # endif
1963 # if __cpp_lib_logical_traits != 201510L
1964 #   error "__cpp_lib_logical_traits should have the value 201510L in c++17"
1965 # endif
1966 
1967 # ifndef __cpp_lib_make_from_tuple
1968 #   error "__cpp_lib_make_from_tuple should be defined in c++17"
1969 # endif
1970 # if __cpp_lib_make_from_tuple != 201606L
1971 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
1972 # endif
1973 
1974 # ifndef __cpp_lib_make_reverse_iterator
1975 #   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
1976 # endif
1977 # if __cpp_lib_make_reverse_iterator != 201402L
1978 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
1979 # endif
1980 
1981 # ifndef __cpp_lib_make_unique
1982 #   error "__cpp_lib_make_unique should be defined in c++17"
1983 # endif
1984 # if __cpp_lib_make_unique != 201304L
1985 #   error "__cpp_lib_make_unique should have the value 201304L in c++17"
1986 # endif
1987 
1988 # ifndef __cpp_lib_map_try_emplace
1989 #   error "__cpp_lib_map_try_emplace should be defined in c++17"
1990 # endif
1991 # if __cpp_lib_map_try_emplace != 201411L
1992 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
1993 # endif
1994 
1995 # ifdef __cpp_lib_math_constants
1996 #   error "__cpp_lib_math_constants should not be defined before c++20"
1997 # endif
1998 
1999 # if !defined(_LIBCPP_VERSION)
2000 #   ifndef __cpp_lib_math_special_functions
2001 #     error "__cpp_lib_math_special_functions should be defined in c++17"
2002 #   endif
2003 #   if __cpp_lib_math_special_functions != 201603L
2004 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
2005 #   endif
2006 # else // _LIBCPP_VERSION
2007 #   ifdef __cpp_lib_math_special_functions
2008 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
2009 #   endif
2010 # endif
2011 
2012 # if !defined(_LIBCPP_VERSION)
2013 #   ifndef __cpp_lib_memory_resource
2014 #     error "__cpp_lib_memory_resource should be defined in c++17"
2015 #   endif
2016 #   if __cpp_lib_memory_resource != 201603L
2017 #     error "__cpp_lib_memory_resource should have the value 201603L in c++17"
2018 #   endif
2019 # else // _LIBCPP_VERSION
2020 #   ifdef __cpp_lib_memory_resource
2021 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
2022 #   endif
2023 # endif
2024 
2025 # ifdef __cpp_lib_move_only_function
2026 #   error "__cpp_lib_move_only_function should not be defined before c++2b"
2027 # endif
2028 
2029 # ifndef __cpp_lib_node_extract
2030 #   error "__cpp_lib_node_extract should be defined in c++17"
2031 # endif
2032 # if __cpp_lib_node_extract != 201606L
2033 #   error "__cpp_lib_node_extract should have the value 201606L in c++17"
2034 # endif
2035 
2036 # ifndef __cpp_lib_nonmember_container_access
2037 #   error "__cpp_lib_nonmember_container_access should be defined in c++17"
2038 # endif
2039 # if __cpp_lib_nonmember_container_access != 201411L
2040 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
2041 # endif
2042 
2043 # ifndef __cpp_lib_not_fn
2044 #   error "__cpp_lib_not_fn should be defined in c++17"
2045 # endif
2046 # if __cpp_lib_not_fn != 201603L
2047 #   error "__cpp_lib_not_fn should have the value 201603L in c++17"
2048 # endif
2049 
2050 # ifndef __cpp_lib_null_iterators
2051 #   error "__cpp_lib_null_iterators should be defined in c++17"
2052 # endif
2053 # if __cpp_lib_null_iterators != 201304L
2054 #   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
2055 # endif
2056 
2057 # ifndef __cpp_lib_optional
2058 #   error "__cpp_lib_optional should be defined in c++17"
2059 # endif
2060 # if __cpp_lib_optional != 201606L
2061 #   error "__cpp_lib_optional should have the value 201606L in c++17"
2062 # endif
2063 
2064 # ifdef __cpp_lib_out_ptr
2065 #   error "__cpp_lib_out_ptr should not be defined before c++2b"
2066 # endif
2067 
2068 # if !defined(_LIBCPP_VERSION)
2069 #   ifndef __cpp_lib_parallel_algorithm
2070 #     error "__cpp_lib_parallel_algorithm should be defined in c++17"
2071 #   endif
2072 #   if __cpp_lib_parallel_algorithm != 201603L
2073 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
2074 #   endif
2075 # else // _LIBCPP_VERSION
2076 #   ifdef __cpp_lib_parallel_algorithm
2077 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
2078 #   endif
2079 # endif
2080 
2081 # ifdef __cpp_lib_polymorphic_allocator
2082 #   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
2083 # endif
2084 
2085 # ifndef __cpp_lib_quoted_string_io
2086 #   error "__cpp_lib_quoted_string_io should be defined in c++17"
2087 # endif
2088 # if __cpp_lib_quoted_string_io != 201304L
2089 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
2090 # endif
2091 
2092 # ifdef __cpp_lib_ranges
2093 #   error "__cpp_lib_ranges should not be defined before c++20"
2094 # endif
2095 
2096 # ifdef __cpp_lib_ranges_chunk
2097 #   error "__cpp_lib_ranges_chunk should not be defined before c++2b"
2098 # endif
2099 
2100 # ifdef __cpp_lib_ranges_chunk_by
2101 #   error "__cpp_lib_ranges_chunk_by should not be defined before c++2b"
2102 # endif
2103 
2104 # ifdef __cpp_lib_ranges_iota
2105 #   error "__cpp_lib_ranges_iota should not be defined before c++2b"
2106 # endif
2107 
2108 # ifdef __cpp_lib_ranges_join_with
2109 #   error "__cpp_lib_ranges_join_with should not be defined before c++2b"
2110 # endif
2111 
2112 # ifdef __cpp_lib_ranges_slide
2113 #   error "__cpp_lib_ranges_slide should not be defined before c++2b"
2114 # endif
2115 
2116 # ifdef __cpp_lib_ranges_starts_ends_with
2117 #   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
2118 # endif
2119 
2120 # ifdef __cpp_lib_ranges_to_container
2121 #   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
2122 # endif
2123 
2124 # ifdef __cpp_lib_ranges_zip
2125 #   error "__cpp_lib_ranges_zip should not be defined before c++2b"
2126 # endif
2127 
2128 # ifndef __cpp_lib_raw_memory_algorithms
2129 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
2130 # endif
2131 # if __cpp_lib_raw_memory_algorithms != 201606L
2132 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
2133 # endif
2134 
2135 # ifdef __cpp_lib_reference_from_temporary
2136 #   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
2137 # endif
2138 
2139 # ifdef __cpp_lib_remove_cvref
2140 #   error "__cpp_lib_remove_cvref should not be defined before c++20"
2141 # endif
2142 
2143 # ifndef __cpp_lib_result_of_sfinae
2144 #   error "__cpp_lib_result_of_sfinae should be defined in c++17"
2145 # endif
2146 # if __cpp_lib_result_of_sfinae != 201210L
2147 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
2148 # endif
2149 
2150 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
2151 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
2152 # endif
2153 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
2154 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
2155 # endif
2156 
2157 # ifndef __cpp_lib_sample
2158 #   error "__cpp_lib_sample should be defined in c++17"
2159 # endif
2160 # if __cpp_lib_sample != 201603L
2161 #   error "__cpp_lib_sample should have the value 201603L in c++17"
2162 # endif
2163 
2164 # ifndef __cpp_lib_scoped_lock
2165 #   error "__cpp_lib_scoped_lock should be defined in c++17"
2166 # endif
2167 # if __cpp_lib_scoped_lock != 201703L
2168 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
2169 # endif
2170 
2171 # ifdef __cpp_lib_semaphore
2172 #   error "__cpp_lib_semaphore should not be defined before c++20"
2173 # endif
2174 
2175 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
2176 #   ifndef __cpp_lib_shared_mutex
2177 #     error "__cpp_lib_shared_mutex should be defined in c++17"
2178 #   endif
2179 #   if __cpp_lib_shared_mutex != 201505L
2180 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
2181 #   endif
2182 # else
2183 #   ifdef __cpp_lib_shared_mutex
2184 #     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!"
2185 #   endif
2186 # endif
2187 
2188 # ifndef __cpp_lib_shared_ptr_arrays
2189 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
2190 # endif
2191 # if __cpp_lib_shared_ptr_arrays != 201611L
2192 #   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
2193 # endif
2194 
2195 # ifndef __cpp_lib_shared_ptr_weak_type
2196 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
2197 # endif
2198 # if __cpp_lib_shared_ptr_weak_type != 201606L
2199 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
2200 # endif
2201 
2202 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
2203 #   ifndef __cpp_lib_shared_timed_mutex
2204 #     error "__cpp_lib_shared_timed_mutex should be defined in c++17"
2205 #   endif
2206 #   if __cpp_lib_shared_timed_mutex != 201402L
2207 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
2208 #   endif
2209 # else
2210 #   ifdef __cpp_lib_shared_timed_mutex
2211 #     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!"
2212 #   endif
2213 # endif
2214 
2215 # ifdef __cpp_lib_shift
2216 #   error "__cpp_lib_shift should not be defined before c++20"
2217 # endif
2218 
2219 # ifdef __cpp_lib_smart_ptr_for_overwrite
2220 #   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
2221 # endif
2222 
2223 # ifdef __cpp_lib_source_location
2224 #   error "__cpp_lib_source_location should not be defined before c++20"
2225 # endif
2226 
2227 # ifdef __cpp_lib_span
2228 #   error "__cpp_lib_span should not be defined before c++20"
2229 # endif
2230 
2231 # ifdef __cpp_lib_spanstream
2232 #   error "__cpp_lib_spanstream should not be defined before c++2b"
2233 # endif
2234 
2235 # ifdef __cpp_lib_ssize
2236 #   error "__cpp_lib_ssize should not be defined before c++20"
2237 # endif
2238 
2239 # ifdef __cpp_lib_stacktrace
2240 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
2241 # endif
2242 
2243 # ifdef __cpp_lib_starts_ends_with
2244 #   error "__cpp_lib_starts_ends_with should not be defined before c++20"
2245 # endif
2246 
2247 # ifdef __cpp_lib_stdatomic_h
2248 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
2249 # endif
2250 
2251 # ifdef __cpp_lib_string_contains
2252 #   error "__cpp_lib_string_contains should not be defined before c++2b"
2253 # endif
2254 
2255 # ifdef __cpp_lib_string_resize_and_overwrite
2256 #   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b"
2257 # endif
2258 
2259 # ifndef __cpp_lib_string_udls
2260 #   error "__cpp_lib_string_udls should be defined in c++17"
2261 # endif
2262 # if __cpp_lib_string_udls != 201304L
2263 #   error "__cpp_lib_string_udls should have the value 201304L in c++17"
2264 # endif
2265 
2266 # ifndef __cpp_lib_string_view
2267 #   error "__cpp_lib_string_view should be defined in c++17"
2268 # endif
2269 # if __cpp_lib_string_view != 201606L
2270 #   error "__cpp_lib_string_view should have the value 201606L in c++17"
2271 # endif
2272 
2273 # ifdef __cpp_lib_syncbuf
2274 #   error "__cpp_lib_syncbuf should not be defined before c++20"
2275 # endif
2276 
2277 # ifdef __cpp_lib_three_way_comparison
2278 #   error "__cpp_lib_three_way_comparison should not be defined before c++20"
2279 # endif
2280 
2281 # ifdef __cpp_lib_to_address
2282 #   error "__cpp_lib_to_address should not be defined before c++20"
2283 # endif
2284 
2285 # ifdef __cpp_lib_to_array
2286 #   error "__cpp_lib_to_array should not be defined before c++20"
2287 # endif
2288 
2289 # if !defined(_LIBCPP_VERSION)
2290 #   ifndef __cpp_lib_to_chars
2291 #     error "__cpp_lib_to_chars should be defined in c++17"
2292 #   endif
2293 #   if __cpp_lib_to_chars != 201611L
2294 #     error "__cpp_lib_to_chars should have the value 201611L in c++17"
2295 #   endif
2296 # else // _LIBCPP_VERSION
2297 #   ifdef __cpp_lib_to_chars
2298 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
2299 #   endif
2300 # endif
2301 
2302 # ifdef __cpp_lib_to_underlying
2303 #   error "__cpp_lib_to_underlying should not be defined before c++2b"
2304 # endif
2305 
2306 # ifndef __cpp_lib_transformation_trait_aliases
2307 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
2308 # endif
2309 # if __cpp_lib_transformation_trait_aliases != 201304L
2310 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
2311 # endif
2312 
2313 # ifndef __cpp_lib_transparent_operators
2314 #   error "__cpp_lib_transparent_operators should be defined in c++17"
2315 # endif
2316 # if __cpp_lib_transparent_operators != 201510L
2317 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
2318 # endif
2319 
2320 # ifndef __cpp_lib_tuple_element_t
2321 #   error "__cpp_lib_tuple_element_t should be defined in c++17"
2322 # endif
2323 # if __cpp_lib_tuple_element_t != 201402L
2324 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
2325 # endif
2326 
2327 # ifndef __cpp_lib_tuples_by_type
2328 #   error "__cpp_lib_tuples_by_type should be defined in c++17"
2329 # endif
2330 # if __cpp_lib_tuples_by_type != 201304L
2331 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
2332 # endif
2333 
2334 # ifdef __cpp_lib_type_identity
2335 #   error "__cpp_lib_type_identity should not be defined before c++20"
2336 # endif
2337 
2338 # ifndef __cpp_lib_type_trait_variable_templates
2339 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
2340 # endif
2341 # if __cpp_lib_type_trait_variable_templates != 201510L
2342 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
2343 # endif
2344 
2345 # ifndef __cpp_lib_uncaught_exceptions
2346 #   error "__cpp_lib_uncaught_exceptions should be defined in c++17"
2347 # endif
2348 # if __cpp_lib_uncaught_exceptions != 201411L
2349 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
2350 # endif
2351 
2352 # ifndef __cpp_lib_unordered_map_try_emplace
2353 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
2354 # endif
2355 # if __cpp_lib_unordered_map_try_emplace != 201411L
2356 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
2357 # endif
2358 
2359 # ifdef __cpp_lib_unreachable
2360 #   error "__cpp_lib_unreachable should not be defined before c++2b"
2361 # endif
2362 
2363 # ifdef __cpp_lib_unwrap_ref
2364 #   error "__cpp_lib_unwrap_ref should not be defined before c++20"
2365 # endif
2366 
2367 # ifndef __cpp_lib_variant
2368 #   error "__cpp_lib_variant should be defined in c++17"
2369 # endif
2370 # if __cpp_lib_variant != 202102L
2371 #   error "__cpp_lib_variant should have the value 202102L in c++17"
2372 # endif
2373 
2374 # ifndef __cpp_lib_void_t
2375 #   error "__cpp_lib_void_t should be defined in c++17"
2376 # endif
2377 # if __cpp_lib_void_t != 201411L
2378 #   error "__cpp_lib_void_t should have the value 201411L in c++17"
2379 # endif
2380 
2381 #elif TEST_STD_VER == 20
2382 
2383 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
2384 #   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
2385 # endif
2386 
2387 # ifndef __cpp_lib_addressof_constexpr
2388 #   error "__cpp_lib_addressof_constexpr should be defined in c++20"
2389 # endif
2390 # if __cpp_lib_addressof_constexpr != 201603L
2391 #   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20"
2392 # endif
2393 
2394 # ifdef __cpp_lib_allocate_at_least
2395 #   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
2396 # endif
2397 
2398 # ifndef __cpp_lib_allocator_traits_is_always_equal
2399 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"
2400 # endif
2401 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
2402 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
2403 # endif
2404 
2405 # ifndef __cpp_lib_any
2406 #   error "__cpp_lib_any should be defined in c++20"
2407 # endif
2408 # if __cpp_lib_any != 201606L
2409 #   error "__cpp_lib_any should have the value 201606L in c++20"
2410 # endif
2411 
2412 # ifndef __cpp_lib_apply
2413 #   error "__cpp_lib_apply should be defined in c++20"
2414 # endif
2415 # if __cpp_lib_apply != 201603L
2416 #   error "__cpp_lib_apply should have the value 201603L in c++20"
2417 # endif
2418 
2419 # ifndef __cpp_lib_array_constexpr
2420 #   error "__cpp_lib_array_constexpr should be defined in c++20"
2421 # endif
2422 # if __cpp_lib_array_constexpr != 201811L
2423 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
2424 # endif
2425 
2426 # ifndef __cpp_lib_as_const
2427 #   error "__cpp_lib_as_const should be defined in c++20"
2428 # endif
2429 # if __cpp_lib_as_const != 201510L
2430 #   error "__cpp_lib_as_const should have the value 201510L in c++20"
2431 # endif
2432 
2433 # ifdef __cpp_lib_associative_heterogeneous_erasure
2434 #   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
2435 # endif
2436 
2437 # ifndef __cpp_lib_assume_aligned
2438 #   error "__cpp_lib_assume_aligned should be defined in c++20"
2439 # endif
2440 # if __cpp_lib_assume_aligned != 201811L
2441 #   error "__cpp_lib_assume_aligned should have the value 201811L in c++20"
2442 # endif
2443 
2444 # ifndef __cpp_lib_atomic_flag_test
2445 #   error "__cpp_lib_atomic_flag_test should be defined in c++20"
2446 # endif
2447 # if __cpp_lib_atomic_flag_test != 201907L
2448 #   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
2449 # endif
2450 
2451 # if !defined(_LIBCPP_VERSION)
2452 #   ifndef __cpp_lib_atomic_float
2453 #     error "__cpp_lib_atomic_float should be defined in c++20"
2454 #   endif
2455 #   if __cpp_lib_atomic_float != 201711L
2456 #     error "__cpp_lib_atomic_float should have the value 201711L in c++20"
2457 #   endif
2458 # else // _LIBCPP_VERSION
2459 #   ifdef __cpp_lib_atomic_float
2460 #     error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
2461 #   endif
2462 # endif
2463 
2464 # ifndef __cpp_lib_atomic_is_always_lock_free
2465 #   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20"
2466 # endif
2467 # if __cpp_lib_atomic_is_always_lock_free != 201603L
2468 #   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20"
2469 # endif
2470 
2471 # ifndef __cpp_lib_atomic_lock_free_type_aliases
2472 #   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20"
2473 # endif
2474 # if __cpp_lib_atomic_lock_free_type_aliases != 201907L
2475 #   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20"
2476 # endif
2477 
2478 # if !defined(_LIBCPP_VERSION)
2479 #   ifndef __cpp_lib_atomic_ref
2480 #     error "__cpp_lib_atomic_ref should be defined in c++20"
2481 #   endif
2482 #   if __cpp_lib_atomic_ref != 201806L
2483 #     error "__cpp_lib_atomic_ref should have the value 201806L in c++20"
2484 #   endif
2485 # else // _LIBCPP_VERSION
2486 #   ifdef __cpp_lib_atomic_ref
2487 #     error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
2488 #   endif
2489 # endif
2490 
2491 # if !defined(_LIBCPP_VERSION)
2492 #   ifndef __cpp_lib_atomic_shared_ptr
2493 #     error "__cpp_lib_atomic_shared_ptr should be defined in c++20"
2494 #   endif
2495 #   if __cpp_lib_atomic_shared_ptr != 201711L
2496 #     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20"
2497 #   endif
2498 # else // _LIBCPP_VERSION
2499 #   ifdef __cpp_lib_atomic_shared_ptr
2500 #     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
2501 #   endif
2502 # endif
2503 
2504 # ifndef __cpp_lib_atomic_value_initialization
2505 #   error "__cpp_lib_atomic_value_initialization should be defined in c++20"
2506 # endif
2507 # if __cpp_lib_atomic_value_initialization != 201911L
2508 #   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20"
2509 # endif
2510 
2511 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait)
2512 #   ifndef __cpp_lib_atomic_wait
2513 #     error "__cpp_lib_atomic_wait should be defined in c++20"
2514 #   endif
2515 #   if __cpp_lib_atomic_wait != 201907L
2516 #     error "__cpp_lib_atomic_wait should have the value 201907L in c++20"
2517 #   endif
2518 # else
2519 #   ifdef __cpp_lib_atomic_wait
2520 #     error "__cpp_lib_atomic_wait should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait) is not defined!"
2521 #   endif
2522 # endif
2523 
2524 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)
2525 #   ifndef __cpp_lib_barrier
2526 #     error "__cpp_lib_barrier should be defined in c++20"
2527 #   endif
2528 #   if __cpp_lib_barrier != 201907L
2529 #     error "__cpp_lib_barrier should have the value 201907L in c++20"
2530 #   endif
2531 # else
2532 #   ifdef __cpp_lib_barrier
2533 #     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!"
2534 #   endif
2535 # endif
2536 
2537 # ifdef __cpp_lib_bind_back
2538 #   error "__cpp_lib_bind_back should not be defined before c++2b"
2539 # endif
2540 
2541 # ifndef __cpp_lib_bind_front
2542 #   error "__cpp_lib_bind_front should be defined in c++20"
2543 # endif
2544 # if __cpp_lib_bind_front != 201907L
2545 #   error "__cpp_lib_bind_front should have the value 201907L in c++20"
2546 # endif
2547 
2548 # ifndef __cpp_lib_bit_cast
2549 #   error "__cpp_lib_bit_cast should be defined in c++20"
2550 # endif
2551 # if __cpp_lib_bit_cast != 201806L
2552 #   error "__cpp_lib_bit_cast should have the value 201806L in c++20"
2553 # endif
2554 
2555 # if !defined(_LIBCPP_VERSION)
2556 #   ifndef __cpp_lib_bitops
2557 #     error "__cpp_lib_bitops should be defined in c++20"
2558 #   endif
2559 #   if __cpp_lib_bitops != 201907L
2560 #     error "__cpp_lib_bitops should have the value 201907L in c++20"
2561 #   endif
2562 # else // _LIBCPP_VERSION
2563 #   ifdef __cpp_lib_bitops
2564 #     error "__cpp_lib_bitops should not be defined because it is unimplemented in libc++!"
2565 #   endif
2566 # endif
2567 
2568 # ifndef __cpp_lib_bool_constant
2569 #   error "__cpp_lib_bool_constant should be defined in c++20"
2570 # endif
2571 # if __cpp_lib_bool_constant != 201505L
2572 #   error "__cpp_lib_bool_constant should have the value 201505L in c++20"
2573 # endif
2574 
2575 # ifndef __cpp_lib_bounded_array_traits
2576 #   error "__cpp_lib_bounded_array_traits should be defined in c++20"
2577 # endif
2578 # if __cpp_lib_bounded_array_traits != 201902L
2579 #   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
2580 # endif
2581 
2582 # if !defined(_LIBCPP_VERSION)
2583 #   ifndef __cpp_lib_boyer_moore_searcher
2584 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++20"
2585 #   endif
2586 #   if __cpp_lib_boyer_moore_searcher != 201603L
2587 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20"
2588 #   endif
2589 # else // _LIBCPP_VERSION
2590 #   ifdef __cpp_lib_boyer_moore_searcher
2591 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
2592 #   endif
2593 # endif
2594 
2595 # ifndef __cpp_lib_byte
2596 #   error "__cpp_lib_byte should be defined in c++20"
2597 # endif
2598 # if __cpp_lib_byte != 201603L
2599 #   error "__cpp_lib_byte should have the value 201603L in c++20"
2600 # endif
2601 
2602 # ifdef __cpp_lib_byteswap
2603 #   error "__cpp_lib_byteswap should not be defined before c++2b"
2604 # endif
2605 
2606 # if defined(__cpp_char8_t)
2607 #   ifndef __cpp_lib_char8_t
2608 #     error "__cpp_lib_char8_t should be defined in c++20"
2609 #   endif
2610 #   if __cpp_lib_char8_t != 201811L
2611 #     error "__cpp_lib_char8_t should have the value 201811L in c++20"
2612 #   endif
2613 # else
2614 #   ifdef __cpp_lib_char8_t
2615 #     error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!"
2616 #   endif
2617 # endif
2618 
2619 # ifndef __cpp_lib_chrono
2620 #   error "__cpp_lib_chrono should be defined in c++20"
2621 # endif
2622 # if __cpp_lib_chrono != 201611L
2623 #   error "__cpp_lib_chrono should have the value 201611L in c++20"
2624 # endif
2625 
2626 # ifndef __cpp_lib_chrono_udls
2627 #   error "__cpp_lib_chrono_udls should be defined in c++20"
2628 # endif
2629 # if __cpp_lib_chrono_udls != 201304L
2630 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
2631 # endif
2632 
2633 # ifndef __cpp_lib_clamp
2634 #   error "__cpp_lib_clamp should be defined in c++20"
2635 # endif
2636 # if __cpp_lib_clamp != 201603L
2637 #   error "__cpp_lib_clamp should have the value 201603L in c++20"
2638 # endif
2639 
2640 # ifndef __cpp_lib_complex_udls
2641 #   error "__cpp_lib_complex_udls should be defined in c++20"
2642 # endif
2643 # if __cpp_lib_complex_udls != 201309L
2644 #   error "__cpp_lib_complex_udls should have the value 201309L in c++20"
2645 # endif
2646 
2647 # ifndef __cpp_lib_concepts
2648 #   error "__cpp_lib_concepts should be defined in c++20"
2649 # endif
2650 # if __cpp_lib_concepts != 202002L
2651 #   error "__cpp_lib_concepts should have the value 202002L in c++20"
2652 # endif
2653 
2654 # ifndef __cpp_lib_constexpr_algorithms
2655 #   error "__cpp_lib_constexpr_algorithms should be defined in c++20"
2656 # endif
2657 # if __cpp_lib_constexpr_algorithms != 201806L
2658 #   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
2659 # endif
2660 
2661 # ifdef __cpp_lib_constexpr_cmath
2662 #   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
2663 # endif
2664 
2665 # if !defined(_LIBCPP_VERSION)
2666 #   ifndef __cpp_lib_constexpr_complex
2667 #     error "__cpp_lib_constexpr_complex should be defined in c++20"
2668 #   endif
2669 #   if __cpp_lib_constexpr_complex != 201711L
2670 #     error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
2671 #   endif
2672 # else // _LIBCPP_VERSION
2673 #   ifdef __cpp_lib_constexpr_complex
2674 #     error "__cpp_lib_constexpr_complex should not be defined because it is unimplemented in libc++!"
2675 #   endif
2676 # endif
2677 
2678 # ifndef __cpp_lib_constexpr_dynamic_alloc
2679 #   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
2680 # endif
2681 # if __cpp_lib_constexpr_dynamic_alloc != 201907L
2682 #   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
2683 # endif
2684 
2685 # ifndef __cpp_lib_constexpr_functional
2686 #   error "__cpp_lib_constexpr_functional should be defined in c++20"
2687 # endif
2688 # if __cpp_lib_constexpr_functional != 201907L
2689 #   error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
2690 # endif
2691 
2692 # ifndef __cpp_lib_constexpr_iterator
2693 #   error "__cpp_lib_constexpr_iterator should be defined in c++20"
2694 # endif
2695 # if __cpp_lib_constexpr_iterator != 201811L
2696 #   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
2697 # endif
2698 
2699 # ifndef __cpp_lib_constexpr_memory
2700 #   error "__cpp_lib_constexpr_memory should be defined in c++20"
2701 # endif
2702 # if __cpp_lib_constexpr_memory != 201811L
2703 #   error "__cpp_lib_constexpr_memory should have the value 201811L in c++20"
2704 # endif
2705 
2706 # ifndef __cpp_lib_constexpr_numeric
2707 #   error "__cpp_lib_constexpr_numeric should be defined in c++20"
2708 # endif
2709 # if __cpp_lib_constexpr_numeric != 201911L
2710 #   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20"
2711 # endif
2712 
2713 # ifndef __cpp_lib_constexpr_string
2714 #   error "__cpp_lib_constexpr_string should be defined in c++20"
2715 # endif
2716 # if __cpp_lib_constexpr_string != 201907L
2717 #   error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
2718 # endif
2719 
2720 # ifndef __cpp_lib_constexpr_string_view
2721 #   error "__cpp_lib_constexpr_string_view should be defined in c++20"
2722 # endif
2723 # if __cpp_lib_constexpr_string_view != 201811L
2724 #   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
2725 # endif
2726 
2727 # ifndef __cpp_lib_constexpr_tuple
2728 #   error "__cpp_lib_constexpr_tuple should be defined in c++20"
2729 # endif
2730 # if __cpp_lib_constexpr_tuple != 201811L
2731 #   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20"
2732 # endif
2733 
2734 # ifdef __cpp_lib_constexpr_typeinfo
2735 #   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
2736 # endif
2737 
2738 # ifndef __cpp_lib_constexpr_utility
2739 #   error "__cpp_lib_constexpr_utility should be defined in c++20"
2740 # endif
2741 # if __cpp_lib_constexpr_utility != 201811L
2742 #   error "__cpp_lib_constexpr_utility should have the value 201811L in c++20"
2743 # endif
2744 
2745 # if !defined(_LIBCPP_VERSION)
2746 #   ifndef __cpp_lib_constexpr_vector
2747 #     error "__cpp_lib_constexpr_vector should be defined in c++20"
2748 #   endif
2749 #   if __cpp_lib_constexpr_vector != 201907L
2750 #     error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
2751 #   endif
2752 # else // _LIBCPP_VERSION
2753 #   ifdef __cpp_lib_constexpr_vector
2754 #     error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!"
2755 #   endif
2756 # endif
2757 
2758 # ifndef __cpp_lib_coroutine
2759 #   error "__cpp_lib_coroutine should be defined in c++20"
2760 # endif
2761 # if __cpp_lib_coroutine != 201902L
2762 #   error "__cpp_lib_coroutine should have the value 201902L in c++20"
2763 # endif
2764 
2765 # if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
2766 #   ifndef __cpp_lib_destroying_delete
2767 #     error "__cpp_lib_destroying_delete should be defined in c++20"
2768 #   endif
2769 #   if __cpp_lib_destroying_delete != 201806L
2770 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++20"
2771 #   endif
2772 # else
2773 #   ifdef __cpp_lib_destroying_delete
2774 #     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!"
2775 #   endif
2776 # endif
2777 
2778 # ifndef __cpp_lib_enable_shared_from_this
2779 #   error "__cpp_lib_enable_shared_from_this should be defined in c++20"
2780 # endif
2781 # if __cpp_lib_enable_shared_from_this != 201603L
2782 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
2783 # endif
2784 
2785 # ifndef __cpp_lib_endian
2786 #   error "__cpp_lib_endian should be defined in c++20"
2787 # endif
2788 # if __cpp_lib_endian != 201907L
2789 #   error "__cpp_lib_endian should have the value 201907L in c++20"
2790 # endif
2791 
2792 # ifndef __cpp_lib_erase_if
2793 #   error "__cpp_lib_erase_if should be defined in c++20"
2794 # endif
2795 # if __cpp_lib_erase_if != 202002L
2796 #   error "__cpp_lib_erase_if should have the value 202002L in c++20"
2797 # endif
2798 
2799 # ifndef __cpp_lib_exchange_function
2800 #   error "__cpp_lib_exchange_function should be defined in c++20"
2801 # endif
2802 # if __cpp_lib_exchange_function != 201304L
2803 #   error "__cpp_lib_exchange_function should have the value 201304L in c++20"
2804 # endif
2805 
2806 # if !defined(_LIBCPP_VERSION)
2807 #   ifndef __cpp_lib_execution
2808 #     error "__cpp_lib_execution should be defined in c++20"
2809 #   endif
2810 #   if __cpp_lib_execution != 201902L
2811 #     error "__cpp_lib_execution should have the value 201902L in c++20"
2812 #   endif
2813 # else // _LIBCPP_VERSION
2814 #   ifdef __cpp_lib_execution
2815 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
2816 #   endif
2817 # endif
2818 
2819 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
2820 #   ifndef __cpp_lib_filesystem
2821 #     error "__cpp_lib_filesystem should be defined in c++20"
2822 #   endif
2823 #   if __cpp_lib_filesystem != 201703L
2824 #     error "__cpp_lib_filesystem should have the value 201703L in c++20"
2825 #   endif
2826 # else
2827 #   ifdef __cpp_lib_filesystem
2828 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
2829 #   endif
2830 # endif
2831 
2832 # if !defined(_LIBCPP_VERSION)
2833 #   ifndef __cpp_lib_format
2834 #     error "__cpp_lib_format should be defined in c++20"
2835 #   endif
2836 #   if __cpp_lib_format != 202106L
2837 #     error "__cpp_lib_format should have the value 202106L in c++20"
2838 #   endif
2839 # else // _LIBCPP_VERSION
2840 #   ifdef __cpp_lib_format
2841 #     error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
2842 #   endif
2843 # endif
2844 
2845 # ifndef __cpp_lib_gcd_lcm
2846 #   error "__cpp_lib_gcd_lcm should be defined in c++20"
2847 # endif
2848 # if __cpp_lib_gcd_lcm != 201606L
2849 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++20"
2850 # endif
2851 
2852 # ifndef __cpp_lib_generic_associative_lookup
2853 #   error "__cpp_lib_generic_associative_lookup should be defined in c++20"
2854 # endif
2855 # if __cpp_lib_generic_associative_lookup != 201304L
2856 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"
2857 # endif
2858 
2859 # ifndef __cpp_lib_generic_unordered_lookup
2860 #   error "__cpp_lib_generic_unordered_lookup should be defined in c++20"
2861 # endif
2862 # if __cpp_lib_generic_unordered_lookup != 201811L
2863 #   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
2864 # endif
2865 
2866 # if !defined(_LIBCPP_VERSION)
2867 #   ifndef __cpp_lib_hardware_interference_size
2868 #     error "__cpp_lib_hardware_interference_size should be defined in c++20"
2869 #   endif
2870 #   if __cpp_lib_hardware_interference_size != 201703L
2871 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20"
2872 #   endif
2873 # else // _LIBCPP_VERSION
2874 #   ifdef __cpp_lib_hardware_interference_size
2875 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
2876 #   endif
2877 # endif
2878 
2879 # ifndef __cpp_lib_has_unique_object_representations
2880 #   error "__cpp_lib_has_unique_object_representations should be defined in c++20"
2881 # endif
2882 # if __cpp_lib_has_unique_object_representations != 201606L
2883 #   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
2884 # endif
2885 
2886 # ifndef __cpp_lib_hypot
2887 #   error "__cpp_lib_hypot should be defined in c++20"
2888 # endif
2889 # if __cpp_lib_hypot != 201603L
2890 #   error "__cpp_lib_hypot should have the value 201603L in c++20"
2891 # endif
2892 
2893 # ifndef __cpp_lib_incomplete_container_elements
2894 #   error "__cpp_lib_incomplete_container_elements should be defined in c++20"
2895 # endif
2896 # if __cpp_lib_incomplete_container_elements != 201505L
2897 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
2898 # endif
2899 
2900 # ifndef __cpp_lib_int_pow2
2901 #   error "__cpp_lib_int_pow2 should be defined in c++20"
2902 # endif
2903 # if __cpp_lib_int_pow2 != 202002L
2904 #   error "__cpp_lib_int_pow2 should have the value 202002L in c++20"
2905 # endif
2906 
2907 # ifndef __cpp_lib_integer_comparison_functions
2908 #   error "__cpp_lib_integer_comparison_functions should be defined in c++20"
2909 # endif
2910 # if __cpp_lib_integer_comparison_functions != 202002L
2911 #   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20"
2912 # endif
2913 
2914 # ifndef __cpp_lib_integer_sequence
2915 #   error "__cpp_lib_integer_sequence should be defined in c++20"
2916 # endif
2917 # if __cpp_lib_integer_sequence != 201304L
2918 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++20"
2919 # endif
2920 
2921 # ifndef __cpp_lib_integral_constant_callable
2922 #   error "__cpp_lib_integral_constant_callable should be defined in c++20"
2923 # endif
2924 # if __cpp_lib_integral_constant_callable != 201304L
2925 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20"
2926 # endif
2927 
2928 # ifndef __cpp_lib_interpolate
2929 #   error "__cpp_lib_interpolate should be defined in c++20"
2930 # endif
2931 # if __cpp_lib_interpolate != 201902L
2932 #   error "__cpp_lib_interpolate should have the value 201902L in c++20"
2933 # endif
2934 
2935 # ifndef __cpp_lib_invoke
2936 #   error "__cpp_lib_invoke should be defined in c++20"
2937 # endif
2938 # if __cpp_lib_invoke != 201411L
2939 #   error "__cpp_lib_invoke should have the value 201411L in c++20"
2940 # endif
2941 
2942 # ifdef __cpp_lib_invoke_r
2943 #   error "__cpp_lib_invoke_r should not be defined before c++2b"
2944 # endif
2945 
2946 # ifndef __cpp_lib_is_aggregate
2947 #   error "__cpp_lib_is_aggregate should be defined in c++20"
2948 # endif
2949 # if __cpp_lib_is_aggregate != 201703L
2950 #   error "__cpp_lib_is_aggregate should have the value 201703L in c++20"
2951 # endif
2952 
2953 # ifndef __cpp_lib_is_constant_evaluated
2954 #   error "__cpp_lib_is_constant_evaluated should be defined in c++20"
2955 # endif
2956 # if __cpp_lib_is_constant_evaluated != 201811L
2957 #   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
2958 # endif
2959 
2960 # ifndef __cpp_lib_is_final
2961 #   error "__cpp_lib_is_final should be defined in c++20"
2962 # endif
2963 # if __cpp_lib_is_final != 201402L
2964 #   error "__cpp_lib_is_final should have the value 201402L in c++20"
2965 # endif
2966 
2967 # ifndef __cpp_lib_is_invocable
2968 #   error "__cpp_lib_is_invocable should be defined in c++20"
2969 # endif
2970 # if __cpp_lib_is_invocable != 201703L
2971 #   error "__cpp_lib_is_invocable should have the value 201703L in c++20"
2972 # endif
2973 
2974 # if !defined(_LIBCPP_VERSION)
2975 #   ifndef __cpp_lib_is_layout_compatible
2976 #     error "__cpp_lib_is_layout_compatible should be defined in c++20"
2977 #   endif
2978 #   if __cpp_lib_is_layout_compatible != 201907L
2979 #     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20"
2980 #   endif
2981 # else // _LIBCPP_VERSION
2982 #   ifdef __cpp_lib_is_layout_compatible
2983 #     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
2984 #   endif
2985 # endif
2986 
2987 # ifndef __cpp_lib_is_nothrow_convertible
2988 #   error "__cpp_lib_is_nothrow_convertible should be defined in c++20"
2989 # endif
2990 # if __cpp_lib_is_nothrow_convertible != 201806L
2991 #   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20"
2992 # endif
2993 
2994 # ifndef __cpp_lib_is_null_pointer
2995 #   error "__cpp_lib_is_null_pointer should be defined in c++20"
2996 # endif
2997 # if __cpp_lib_is_null_pointer != 201309L
2998 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++20"
2999 # endif
3000 
3001 # if !defined(_LIBCPP_VERSION)
3002 #   ifndef __cpp_lib_is_pointer_interconvertible
3003 #     error "__cpp_lib_is_pointer_interconvertible should be defined in c++20"
3004 #   endif
3005 #   if __cpp_lib_is_pointer_interconvertible != 201907L
3006 #     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20"
3007 #   endif
3008 # else // _LIBCPP_VERSION
3009 #   ifdef __cpp_lib_is_pointer_interconvertible
3010 #     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
3011 #   endif
3012 # endif
3013 
3014 # ifdef __cpp_lib_is_scoped_enum
3015 #   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
3016 # endif
3017 
3018 # ifndef __cpp_lib_is_swappable
3019 #   error "__cpp_lib_is_swappable should be defined in c++20"
3020 # endif
3021 # if __cpp_lib_is_swappable != 201603L
3022 #   error "__cpp_lib_is_swappable should have the value 201603L in c++20"
3023 # endif
3024 
3025 # if !defined(_LIBCPP_VERSION)
3026 #   ifndef __cpp_lib_jthread
3027 #     error "__cpp_lib_jthread should be defined in c++20"
3028 #   endif
3029 #   if __cpp_lib_jthread != 201911L
3030 #     error "__cpp_lib_jthread should have the value 201911L in c++20"
3031 #   endif
3032 # else // _LIBCPP_VERSION
3033 #   ifdef __cpp_lib_jthread
3034 #     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
3035 #   endif
3036 # endif
3037 
3038 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch)
3039 #   ifndef __cpp_lib_latch
3040 #     error "__cpp_lib_latch should be defined in c++20"
3041 #   endif
3042 #   if __cpp_lib_latch != 201907L
3043 #     error "__cpp_lib_latch should have the value 201907L in c++20"
3044 #   endif
3045 # else
3046 #   ifdef __cpp_lib_latch
3047 #     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!"
3048 #   endif
3049 # endif
3050 
3051 # ifndef __cpp_lib_launder
3052 #   error "__cpp_lib_launder should be defined in c++20"
3053 # endif
3054 # if __cpp_lib_launder != 201606L
3055 #   error "__cpp_lib_launder should have the value 201606L in c++20"
3056 # endif
3057 
3058 # ifndef __cpp_lib_list_remove_return_type
3059 #   error "__cpp_lib_list_remove_return_type should be defined in c++20"
3060 # endif
3061 # if __cpp_lib_list_remove_return_type != 201806L
3062 #   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20"
3063 # endif
3064 
3065 # ifndef __cpp_lib_logical_traits
3066 #   error "__cpp_lib_logical_traits should be defined in c++20"
3067 # endif
3068 # if __cpp_lib_logical_traits != 201510L
3069 #   error "__cpp_lib_logical_traits should have the value 201510L in c++20"
3070 # endif
3071 
3072 # ifndef __cpp_lib_make_from_tuple
3073 #   error "__cpp_lib_make_from_tuple should be defined in c++20"
3074 # endif
3075 # if __cpp_lib_make_from_tuple != 201606L
3076 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++20"
3077 # endif
3078 
3079 # ifndef __cpp_lib_make_reverse_iterator
3080 #   error "__cpp_lib_make_reverse_iterator should be defined in c++20"
3081 # endif
3082 # if __cpp_lib_make_reverse_iterator != 201402L
3083 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
3084 # endif
3085 
3086 # ifndef __cpp_lib_make_unique
3087 #   error "__cpp_lib_make_unique should be defined in c++20"
3088 # endif
3089 # if __cpp_lib_make_unique != 201304L
3090 #   error "__cpp_lib_make_unique should have the value 201304L in c++20"
3091 # endif
3092 
3093 # ifndef __cpp_lib_map_try_emplace
3094 #   error "__cpp_lib_map_try_emplace should be defined in c++20"
3095 # endif
3096 # if __cpp_lib_map_try_emplace != 201411L
3097 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"
3098 # endif
3099 
3100 # ifndef __cpp_lib_math_constants
3101 #   error "__cpp_lib_math_constants should be defined in c++20"
3102 # endif
3103 # if __cpp_lib_math_constants != 201907L
3104 #   error "__cpp_lib_math_constants should have the value 201907L in c++20"
3105 # endif
3106 
3107 # if !defined(_LIBCPP_VERSION)
3108 #   ifndef __cpp_lib_math_special_functions
3109 #     error "__cpp_lib_math_special_functions should be defined in c++20"
3110 #   endif
3111 #   if __cpp_lib_math_special_functions != 201603L
3112 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++20"
3113 #   endif
3114 # else // _LIBCPP_VERSION
3115 #   ifdef __cpp_lib_math_special_functions
3116 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
3117 #   endif
3118 # endif
3119 
3120 # if !defined(_LIBCPP_VERSION)
3121 #   ifndef __cpp_lib_memory_resource
3122 #     error "__cpp_lib_memory_resource should be defined in c++20"
3123 #   endif
3124 #   if __cpp_lib_memory_resource != 201603L
3125 #     error "__cpp_lib_memory_resource should have the value 201603L in c++20"
3126 #   endif
3127 # else // _LIBCPP_VERSION
3128 #   ifdef __cpp_lib_memory_resource
3129 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
3130 #   endif
3131 # endif
3132 
3133 # ifdef __cpp_lib_move_only_function
3134 #   error "__cpp_lib_move_only_function should not be defined before c++2b"
3135 # endif
3136 
3137 # ifndef __cpp_lib_node_extract
3138 #   error "__cpp_lib_node_extract should be defined in c++20"
3139 # endif
3140 # if __cpp_lib_node_extract != 201606L
3141 #   error "__cpp_lib_node_extract should have the value 201606L in c++20"
3142 # endif
3143 
3144 # ifndef __cpp_lib_nonmember_container_access
3145 #   error "__cpp_lib_nonmember_container_access should be defined in c++20"
3146 # endif
3147 # if __cpp_lib_nonmember_container_access != 201411L
3148 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
3149 # endif
3150 
3151 # ifndef __cpp_lib_not_fn
3152 #   error "__cpp_lib_not_fn should be defined in c++20"
3153 # endif
3154 # if __cpp_lib_not_fn != 201603L
3155 #   error "__cpp_lib_not_fn should have the value 201603L in c++20"
3156 # endif
3157 
3158 # ifndef __cpp_lib_null_iterators
3159 #   error "__cpp_lib_null_iterators should be defined in c++20"
3160 # endif
3161 # if __cpp_lib_null_iterators != 201304L
3162 #   error "__cpp_lib_null_iterators should have the value 201304L in c++20"
3163 # endif
3164 
3165 # ifndef __cpp_lib_optional
3166 #   error "__cpp_lib_optional should be defined in c++20"
3167 # endif
3168 # if __cpp_lib_optional != 201606L
3169 #   error "__cpp_lib_optional should have the value 201606L in c++20"
3170 # endif
3171 
3172 # ifdef __cpp_lib_out_ptr
3173 #   error "__cpp_lib_out_ptr should not be defined before c++2b"
3174 # endif
3175 
3176 # if !defined(_LIBCPP_VERSION)
3177 #   ifndef __cpp_lib_parallel_algorithm
3178 #     error "__cpp_lib_parallel_algorithm should be defined in c++20"
3179 #   endif
3180 #   if __cpp_lib_parallel_algorithm != 201603L
3181 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20"
3182 #   endif
3183 # else // _LIBCPP_VERSION
3184 #   ifdef __cpp_lib_parallel_algorithm
3185 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
3186 #   endif
3187 # endif
3188 
3189 # if !defined(_LIBCPP_VERSION)
3190 #   ifndef __cpp_lib_polymorphic_allocator
3191 #     error "__cpp_lib_polymorphic_allocator should be defined in c++20"
3192 #   endif
3193 #   if __cpp_lib_polymorphic_allocator != 201902L
3194 #     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20"
3195 #   endif
3196 # else // _LIBCPP_VERSION
3197 #   ifdef __cpp_lib_polymorphic_allocator
3198 #     error "__cpp_lib_polymorphic_allocator should not be defined because it is unimplemented in libc++!"
3199 #   endif
3200 # endif
3201 
3202 # ifndef __cpp_lib_quoted_string_io
3203 #   error "__cpp_lib_quoted_string_io should be defined in c++20"
3204 # endif
3205 # if __cpp_lib_quoted_string_io != 201304L
3206 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++20"
3207 # endif
3208 
3209 # if !defined(_LIBCPP_VERSION)
3210 #   ifndef __cpp_lib_ranges
3211 #     error "__cpp_lib_ranges should be defined in c++20"
3212 #   endif
3213 #   if __cpp_lib_ranges != 201811L
3214 #     error "__cpp_lib_ranges should have the value 201811L in c++20"
3215 #   endif
3216 # else // _LIBCPP_VERSION
3217 #   ifdef __cpp_lib_ranges
3218 #     error "__cpp_lib_ranges should not be defined because it is unimplemented in libc++!"
3219 #   endif
3220 # endif
3221 
3222 # ifdef __cpp_lib_ranges_chunk
3223 #   error "__cpp_lib_ranges_chunk should not be defined before c++2b"
3224 # endif
3225 
3226 # ifdef __cpp_lib_ranges_chunk_by
3227 #   error "__cpp_lib_ranges_chunk_by should not be defined before c++2b"
3228 # endif
3229 
3230 # ifdef __cpp_lib_ranges_iota
3231 #   error "__cpp_lib_ranges_iota should not be defined before c++2b"
3232 # endif
3233 
3234 # ifdef __cpp_lib_ranges_join_with
3235 #   error "__cpp_lib_ranges_join_with should not be defined before c++2b"
3236 # endif
3237 
3238 # ifdef __cpp_lib_ranges_slide
3239 #   error "__cpp_lib_ranges_slide should not be defined before c++2b"
3240 # endif
3241 
3242 # ifdef __cpp_lib_ranges_starts_ends_with
3243 #   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
3244 # endif
3245 
3246 # ifdef __cpp_lib_ranges_to_container
3247 #   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
3248 # endif
3249 
3250 # ifdef __cpp_lib_ranges_zip
3251 #   error "__cpp_lib_ranges_zip should not be defined before c++2b"
3252 # endif
3253 
3254 # ifndef __cpp_lib_raw_memory_algorithms
3255 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++20"
3256 # endif
3257 # if __cpp_lib_raw_memory_algorithms != 201606L
3258 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20"
3259 # endif
3260 
3261 # ifdef __cpp_lib_reference_from_temporary
3262 #   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
3263 # endif
3264 
3265 # ifndef __cpp_lib_remove_cvref
3266 #   error "__cpp_lib_remove_cvref should be defined in c++20"
3267 # endif
3268 # if __cpp_lib_remove_cvref != 201711L
3269 #   error "__cpp_lib_remove_cvref should have the value 201711L in c++20"
3270 # endif
3271 
3272 # ifndef __cpp_lib_result_of_sfinae
3273 #   error "__cpp_lib_result_of_sfinae should be defined in c++20"
3274 # endif
3275 # if __cpp_lib_result_of_sfinae != 201210L
3276 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20"
3277 # endif
3278 
3279 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
3280 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20"
3281 # endif
3282 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
3283 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20"
3284 # endif
3285 
3286 # ifndef __cpp_lib_sample
3287 #   error "__cpp_lib_sample should be defined in c++20"
3288 # endif
3289 # if __cpp_lib_sample != 201603L
3290 #   error "__cpp_lib_sample should have the value 201603L in c++20"
3291 # endif
3292 
3293 # ifndef __cpp_lib_scoped_lock
3294 #   error "__cpp_lib_scoped_lock should be defined in c++20"
3295 # endif
3296 # if __cpp_lib_scoped_lock != 201703L
3297 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++20"
3298 # endif
3299 
3300 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore)
3301 #   ifndef __cpp_lib_semaphore
3302 #     error "__cpp_lib_semaphore should be defined in c++20"
3303 #   endif
3304 #   if __cpp_lib_semaphore != 201907L
3305 #     error "__cpp_lib_semaphore should have the value 201907L in c++20"
3306 #   endif
3307 # else
3308 #   ifdef __cpp_lib_semaphore
3309 #     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!"
3310 #   endif
3311 # endif
3312 
3313 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
3314 #   ifndef __cpp_lib_shared_mutex
3315 #     error "__cpp_lib_shared_mutex should be defined in c++20"
3316 #   endif
3317 #   if __cpp_lib_shared_mutex != 201505L
3318 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++20"
3319 #   endif
3320 # else
3321 #   ifdef __cpp_lib_shared_mutex
3322 #     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!"
3323 #   endif
3324 # endif
3325 
3326 # ifndef __cpp_lib_shared_ptr_arrays
3327 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++20"
3328 # endif
3329 # if __cpp_lib_shared_ptr_arrays != 201707L
3330 #   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20"
3331 # endif
3332 
3333 # ifndef __cpp_lib_shared_ptr_weak_type
3334 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++20"
3335 # endif
3336 # if __cpp_lib_shared_ptr_weak_type != 201606L
3337 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20"
3338 # endif
3339 
3340 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
3341 #   ifndef __cpp_lib_shared_timed_mutex
3342 #     error "__cpp_lib_shared_timed_mutex should be defined in c++20"
3343 #   endif
3344 #   if __cpp_lib_shared_timed_mutex != 201402L
3345 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20"
3346 #   endif
3347 # else
3348 #   ifdef __cpp_lib_shared_timed_mutex
3349 #     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!"
3350 #   endif
3351 # endif
3352 
3353 # ifndef __cpp_lib_shift
3354 #   error "__cpp_lib_shift should be defined in c++20"
3355 # endif
3356 # if __cpp_lib_shift != 201806L
3357 #   error "__cpp_lib_shift should have the value 201806L in c++20"
3358 # endif
3359 
3360 # if !defined(_LIBCPP_VERSION)
3361 #   ifndef __cpp_lib_smart_ptr_for_overwrite
3362 #     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20"
3363 #   endif
3364 #   if __cpp_lib_smart_ptr_for_overwrite != 202002L
3365 #     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20"
3366 #   endif
3367 # else // _LIBCPP_VERSION
3368 #   ifdef __cpp_lib_smart_ptr_for_overwrite
3369 #     error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
3370 #   endif
3371 # endif
3372 
3373 # if !defined(_LIBCPP_VERSION)
3374 #   ifndef __cpp_lib_source_location
3375 #     error "__cpp_lib_source_location should be defined in c++20"
3376 #   endif
3377 #   if __cpp_lib_source_location != 201907L
3378 #     error "__cpp_lib_source_location should have the value 201907L in c++20"
3379 #   endif
3380 # else // _LIBCPP_VERSION
3381 #   ifdef __cpp_lib_source_location
3382 #     error "__cpp_lib_source_location should not be defined because it is unimplemented in libc++!"
3383 #   endif
3384 # endif
3385 
3386 # ifndef __cpp_lib_span
3387 #   error "__cpp_lib_span should be defined in c++20"
3388 # endif
3389 # if __cpp_lib_span != 202002L
3390 #   error "__cpp_lib_span should have the value 202002L in c++20"
3391 # endif
3392 
3393 # ifdef __cpp_lib_spanstream
3394 #   error "__cpp_lib_spanstream should not be defined before c++2b"
3395 # endif
3396 
3397 # ifndef __cpp_lib_ssize
3398 #   error "__cpp_lib_ssize should be defined in c++20"
3399 # endif
3400 # if __cpp_lib_ssize != 201902L
3401 #   error "__cpp_lib_ssize should have the value 201902L in c++20"
3402 # endif
3403 
3404 # ifdef __cpp_lib_stacktrace
3405 #   error "__cpp_lib_stacktrace should not be defined before c++2b"
3406 # endif
3407 
3408 # ifndef __cpp_lib_starts_ends_with
3409 #   error "__cpp_lib_starts_ends_with should be defined in c++20"
3410 # endif
3411 # if __cpp_lib_starts_ends_with != 201711L
3412 #   error "__cpp_lib_starts_ends_with should have the value 201711L in c++20"
3413 # endif
3414 
3415 # ifdef __cpp_lib_stdatomic_h
3416 #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
3417 # endif
3418 
3419 # ifdef __cpp_lib_string_contains
3420 #   error "__cpp_lib_string_contains should not be defined before c++2b"
3421 # endif
3422 
3423 # ifdef __cpp_lib_string_resize_and_overwrite
3424 #   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b"
3425 # endif
3426 
3427 # ifndef __cpp_lib_string_udls
3428 #   error "__cpp_lib_string_udls should be defined in c++20"
3429 # endif
3430 # if __cpp_lib_string_udls != 201304L
3431 #   error "__cpp_lib_string_udls should have the value 201304L in c++20"
3432 # endif
3433 
3434 # ifndef __cpp_lib_string_view
3435 #   error "__cpp_lib_string_view should be defined in c++20"
3436 # endif
3437 # if __cpp_lib_string_view != 201803L
3438 #   error "__cpp_lib_string_view should have the value 201803L in c++20"
3439 # endif
3440 
3441 # if !defined(_LIBCPP_VERSION)
3442 #   ifndef __cpp_lib_syncbuf
3443 #     error "__cpp_lib_syncbuf should be defined in c++20"
3444 #   endif
3445 #   if __cpp_lib_syncbuf != 201803L
3446 #     error "__cpp_lib_syncbuf should have the value 201803L in c++20"
3447 #   endif
3448 # else // _LIBCPP_VERSION
3449 #   ifdef __cpp_lib_syncbuf
3450 #     error "__cpp_lib_syncbuf should not be defined because it is unimplemented in libc++!"
3451 #   endif
3452 # endif
3453 
3454 # if !defined(_LIBCPP_VERSION)
3455 #   ifndef __cpp_lib_three_way_comparison
3456 #     error "__cpp_lib_three_way_comparison should be defined in c++20"
3457 #   endif
3458 #   if __cpp_lib_three_way_comparison != 201907L
3459 #     error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
3460 #   endif
3461 # else // _LIBCPP_VERSION
3462 #   ifdef __cpp_lib_three_way_comparison
3463 #     error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
3464 #   endif
3465 # endif
3466 
3467 # ifndef __cpp_lib_to_address
3468 #   error "__cpp_lib_to_address should be defined in c++20"
3469 # endif
3470 # if __cpp_lib_to_address != 201711L
3471 #   error "__cpp_lib_to_address should have the value 201711L in c++20"
3472 # endif
3473 
3474 # ifndef __cpp_lib_to_array
3475 #   error "__cpp_lib_to_array should be defined in c++20"
3476 # endif
3477 # if __cpp_lib_to_array != 201907L
3478 #   error "__cpp_lib_to_array should have the value 201907L in c++20"
3479 # endif
3480 
3481 # if !defined(_LIBCPP_VERSION)
3482 #   ifndef __cpp_lib_to_chars
3483 #     error "__cpp_lib_to_chars should be defined in c++20"
3484 #   endif
3485 #   if __cpp_lib_to_chars != 201611L
3486 #     error "__cpp_lib_to_chars should have the value 201611L in c++20"
3487 #   endif
3488 # else // _LIBCPP_VERSION
3489 #   ifdef __cpp_lib_to_chars
3490 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
3491 #   endif
3492 # endif
3493 
3494 # ifdef __cpp_lib_to_underlying
3495 #   error "__cpp_lib_to_underlying should not be defined before c++2b"
3496 # endif
3497 
3498 # ifndef __cpp_lib_transformation_trait_aliases
3499 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++20"
3500 # endif
3501 # if __cpp_lib_transformation_trait_aliases != 201304L
3502 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20"
3503 # endif
3504 
3505 # ifndef __cpp_lib_transparent_operators
3506 #   error "__cpp_lib_transparent_operators should be defined in c++20"
3507 # endif
3508 # if __cpp_lib_transparent_operators != 201510L
3509 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++20"
3510 # endif
3511 
3512 # ifndef __cpp_lib_tuple_element_t
3513 #   error "__cpp_lib_tuple_element_t should be defined in c++20"
3514 # endif
3515 # if __cpp_lib_tuple_element_t != 201402L
3516 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
3517 # endif
3518 
3519 # ifndef __cpp_lib_tuples_by_type
3520 #   error "__cpp_lib_tuples_by_type should be defined in c++20"
3521 # endif
3522 # if __cpp_lib_tuples_by_type != 201304L
3523 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++20"
3524 # endif
3525 
3526 # ifndef __cpp_lib_type_identity
3527 #   error "__cpp_lib_type_identity should be defined in c++20"
3528 # endif
3529 # if __cpp_lib_type_identity != 201806L
3530 #   error "__cpp_lib_type_identity should have the value 201806L in c++20"
3531 # endif
3532 
3533 # ifndef __cpp_lib_type_trait_variable_templates
3534 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++20"
3535 # endif
3536 # if __cpp_lib_type_trait_variable_templates != 201510L
3537 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20"
3538 # endif
3539 
3540 # ifndef __cpp_lib_uncaught_exceptions
3541 #   error "__cpp_lib_uncaught_exceptions should be defined in c++20"
3542 # endif
3543 # if __cpp_lib_uncaught_exceptions != 201411L
3544 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20"
3545 # endif
3546 
3547 # ifndef __cpp_lib_unordered_map_try_emplace
3548 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
3549 # endif
3550 # if __cpp_lib_unordered_map_try_emplace != 201411L
3551 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20"
3552 # endif
3553 
3554 # ifdef __cpp_lib_unreachable
3555 #   error "__cpp_lib_unreachable should not be defined before c++2b"
3556 # endif
3557 
3558 # ifndef __cpp_lib_unwrap_ref
3559 #   error "__cpp_lib_unwrap_ref should be defined in c++20"
3560 # endif
3561 # if __cpp_lib_unwrap_ref != 201811L
3562 #   error "__cpp_lib_unwrap_ref should have the value 201811L in c++20"
3563 # endif
3564 
3565 # ifndef __cpp_lib_variant
3566 #   error "__cpp_lib_variant should be defined in c++20"
3567 # endif
3568 # if __cpp_lib_variant != 202102L
3569 #   error "__cpp_lib_variant should have the value 202102L in c++20"
3570 # endif
3571 
3572 # ifndef __cpp_lib_void_t
3573 #   error "__cpp_lib_void_t should be defined in c++20"
3574 # endif
3575 # if __cpp_lib_void_t != 201411L
3576 #   error "__cpp_lib_void_t should have the value 201411L in c++20"
3577 # endif
3578 
3579 #elif TEST_STD_VER > 20
3580 
3581 # ifndef __cpp_lib_adaptor_iterator_pair_constructor
3582 #   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++2b"
3583 # endif
3584 # if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
3585 #   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++2b"
3586 # endif
3587 
3588 # ifndef __cpp_lib_addressof_constexpr
3589 #   error "__cpp_lib_addressof_constexpr should be defined in c++2b"
3590 # endif
3591 # if __cpp_lib_addressof_constexpr != 201603L
3592 #   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++2b"
3593 # endif
3594 
3595 # ifndef __cpp_lib_allocate_at_least
3596 #   error "__cpp_lib_allocate_at_least should be defined in c++2b"
3597 # endif
3598 # if __cpp_lib_allocate_at_least != 202106L
3599 #   error "__cpp_lib_allocate_at_least should have the value 202106L in c++2b"
3600 # endif
3601 
3602 # ifndef __cpp_lib_allocator_traits_is_always_equal
3603 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
3604 # endif
3605 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
3606 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++2b"
3607 # endif
3608 
3609 # ifndef __cpp_lib_any
3610 #   error "__cpp_lib_any should be defined in c++2b"
3611 # endif
3612 # if __cpp_lib_any != 201606L
3613 #   error "__cpp_lib_any should have the value 201606L in c++2b"
3614 # endif
3615 
3616 # ifndef __cpp_lib_apply
3617 #   error "__cpp_lib_apply should be defined in c++2b"
3618 # endif
3619 # if __cpp_lib_apply != 201603L
3620 #   error "__cpp_lib_apply should have the value 201603L in c++2b"
3621 # endif
3622 
3623 # ifndef __cpp_lib_array_constexpr
3624 #   error "__cpp_lib_array_constexpr should be defined in c++2b"
3625 # endif
3626 # if __cpp_lib_array_constexpr != 201811L
3627 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++2b"
3628 # endif
3629 
3630 # ifndef __cpp_lib_as_const
3631 #   error "__cpp_lib_as_const should be defined in c++2b"
3632 # endif
3633 # if __cpp_lib_as_const != 201510L
3634 #   error "__cpp_lib_as_const should have the value 201510L in c++2b"
3635 # endif
3636 
3637 # if !defined(_LIBCPP_VERSION)
3638 #   ifndef __cpp_lib_associative_heterogeneous_erasure
3639 #     error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++2b"
3640 #   endif
3641 #   if __cpp_lib_associative_heterogeneous_erasure != 202110L
3642 #     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++2b"
3643 #   endif
3644 # else // _LIBCPP_VERSION
3645 #   ifdef __cpp_lib_associative_heterogeneous_erasure
3646 #     error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
3647 #   endif
3648 # endif
3649 
3650 # ifndef __cpp_lib_assume_aligned
3651 #   error "__cpp_lib_assume_aligned should be defined in c++2b"
3652 # endif
3653 # if __cpp_lib_assume_aligned != 201811L
3654 #   error "__cpp_lib_assume_aligned should have the value 201811L in c++2b"
3655 # endif
3656 
3657 # ifndef __cpp_lib_atomic_flag_test
3658 #   error "__cpp_lib_atomic_flag_test should be defined in c++2b"
3659 # endif
3660 # if __cpp_lib_atomic_flag_test != 201907L
3661 #   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++2b"
3662 # endif
3663 
3664 # if !defined(_LIBCPP_VERSION)
3665 #   ifndef __cpp_lib_atomic_float
3666 #     error "__cpp_lib_atomic_float should be defined in c++2b"
3667 #   endif
3668 #   if __cpp_lib_atomic_float != 201711L
3669 #     error "__cpp_lib_atomic_float should have the value 201711L in c++2b"
3670 #   endif
3671 # else // _LIBCPP_VERSION
3672 #   ifdef __cpp_lib_atomic_float
3673 #     error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
3674 #   endif
3675 # endif
3676 
3677 # ifndef __cpp_lib_atomic_is_always_lock_free
3678 #   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++2b"
3679 # endif
3680 # if __cpp_lib_atomic_is_always_lock_free != 201603L
3681 #   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++2b"
3682 # endif
3683 
3684 # ifndef __cpp_lib_atomic_lock_free_type_aliases
3685 #   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++2b"
3686 # endif
3687 # if __cpp_lib_atomic_lock_free_type_aliases != 201907L
3688 #   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++2b"
3689 # endif
3690 
3691 # if !defined(_LIBCPP_VERSION)
3692 #   ifndef __cpp_lib_atomic_ref
3693 #     error "__cpp_lib_atomic_ref should be defined in c++2b"
3694 #   endif
3695 #   if __cpp_lib_atomic_ref != 201806L
3696 #     error "__cpp_lib_atomic_ref should have the value 201806L in c++2b"
3697 #   endif
3698 # else // _LIBCPP_VERSION
3699 #   ifdef __cpp_lib_atomic_ref
3700 #     error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
3701 #   endif
3702 # endif
3703 
3704 # if !defined(_LIBCPP_VERSION)
3705 #   ifndef __cpp_lib_atomic_shared_ptr
3706 #     error "__cpp_lib_atomic_shared_ptr should be defined in c++2b"
3707 #   endif
3708 #   if __cpp_lib_atomic_shared_ptr != 201711L
3709 #     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++2b"
3710 #   endif
3711 # else // _LIBCPP_VERSION
3712 #   ifdef __cpp_lib_atomic_shared_ptr
3713 #     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
3714 #   endif
3715 # endif
3716 
3717 # ifndef __cpp_lib_atomic_value_initialization
3718 #   error "__cpp_lib_atomic_value_initialization should be defined in c++2b"
3719 # endif
3720 # if __cpp_lib_atomic_value_initialization != 201911L
3721 #   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++2b"
3722 # endif
3723 
3724 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait)
3725 #   ifndef __cpp_lib_atomic_wait
3726 #     error "__cpp_lib_atomic_wait should be defined in c++2b"
3727 #   endif
3728 #   if __cpp_lib_atomic_wait != 201907L
3729 #     error "__cpp_lib_atomic_wait should have the value 201907L in c++2b"
3730 #   endif
3731 # else
3732 #   ifdef __cpp_lib_atomic_wait
3733 #     error "__cpp_lib_atomic_wait should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait) is not defined!"
3734 #   endif
3735 # endif
3736 
3737 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)
3738 #   ifndef __cpp_lib_barrier
3739 #     error "__cpp_lib_barrier should be defined in c++2b"
3740 #   endif
3741 #   if __cpp_lib_barrier != 201907L
3742 #     error "__cpp_lib_barrier should have the value 201907L in c++2b"
3743 #   endif
3744 # else
3745 #   ifdef __cpp_lib_barrier
3746 #     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!"
3747 #   endif
3748 # endif
3749 
3750 # if !defined(_LIBCPP_VERSION)
3751 #   ifndef __cpp_lib_bind_back
3752 #     error "__cpp_lib_bind_back should be defined in c++2b"
3753 #   endif
3754 #   if __cpp_lib_bind_back != 202202L
3755 #     error "__cpp_lib_bind_back should have the value 202202L in c++2b"
3756 #   endif
3757 # else // _LIBCPP_VERSION
3758 #   ifdef __cpp_lib_bind_back
3759 #     error "__cpp_lib_bind_back should not be defined because it is unimplemented in libc++!"
3760 #   endif
3761 # endif
3762 
3763 # ifndef __cpp_lib_bind_front
3764 #   error "__cpp_lib_bind_front should be defined in c++2b"
3765 # endif
3766 # if __cpp_lib_bind_front != 201907L
3767 #   error "__cpp_lib_bind_front should have the value 201907L in c++2b"
3768 # endif
3769 
3770 # ifndef __cpp_lib_bit_cast
3771 #   error "__cpp_lib_bit_cast should be defined in c++2b"
3772 # endif
3773 # if __cpp_lib_bit_cast != 201806L
3774 #   error "__cpp_lib_bit_cast should have the value 201806L in c++2b"
3775 # endif
3776 
3777 # if !defined(_LIBCPP_VERSION)
3778 #   ifndef __cpp_lib_bitops
3779 #     error "__cpp_lib_bitops should be defined in c++2b"
3780 #   endif
3781 #   if __cpp_lib_bitops != 201907L
3782 #     error "__cpp_lib_bitops should have the value 201907L in c++2b"
3783 #   endif
3784 # else // _LIBCPP_VERSION
3785 #   ifdef __cpp_lib_bitops
3786 #     error "__cpp_lib_bitops should not be defined because it is unimplemented in libc++!"
3787 #   endif
3788 # endif
3789 
3790 # ifndef __cpp_lib_bool_constant
3791 #   error "__cpp_lib_bool_constant should be defined in c++2b"
3792 # endif
3793 # if __cpp_lib_bool_constant != 201505L
3794 #   error "__cpp_lib_bool_constant should have the value 201505L in c++2b"
3795 # endif
3796 
3797 # ifndef __cpp_lib_bounded_array_traits
3798 #   error "__cpp_lib_bounded_array_traits should be defined in c++2b"
3799 # endif
3800 # if __cpp_lib_bounded_array_traits != 201902L
3801 #   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++2b"
3802 # endif
3803 
3804 # if !defined(_LIBCPP_VERSION)
3805 #   ifndef __cpp_lib_boyer_moore_searcher
3806 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++2b"
3807 #   endif
3808 #   if __cpp_lib_boyer_moore_searcher != 201603L
3809 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++2b"
3810 #   endif
3811 # else // _LIBCPP_VERSION
3812 #   ifdef __cpp_lib_boyer_moore_searcher
3813 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
3814 #   endif
3815 # endif
3816 
3817 # ifndef __cpp_lib_byte
3818 #   error "__cpp_lib_byte should be defined in c++2b"
3819 # endif
3820 # if __cpp_lib_byte != 201603L
3821 #   error "__cpp_lib_byte should have the value 201603L in c++2b"
3822 # endif
3823 
3824 # ifndef __cpp_lib_byteswap
3825 #   error "__cpp_lib_byteswap should be defined in c++2b"
3826 # endif
3827 # if __cpp_lib_byteswap != 202110L
3828 #   error "__cpp_lib_byteswap should have the value 202110L in c++2b"
3829 # endif
3830 
3831 # if defined(__cpp_char8_t)
3832 #   ifndef __cpp_lib_char8_t
3833 #     error "__cpp_lib_char8_t should be defined in c++2b"
3834 #   endif
3835 #   if __cpp_lib_char8_t != 201811L
3836 #     error "__cpp_lib_char8_t should have the value 201811L in c++2b"
3837 #   endif
3838 # else
3839 #   ifdef __cpp_lib_char8_t
3840 #     error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!"
3841 #   endif
3842 # endif
3843 
3844 # ifndef __cpp_lib_chrono
3845 #   error "__cpp_lib_chrono should be defined in c++2b"
3846 # endif
3847 # if __cpp_lib_chrono != 201611L
3848 #   error "__cpp_lib_chrono should have the value 201611L in c++2b"
3849 # endif
3850 
3851 # ifndef __cpp_lib_chrono_udls
3852 #   error "__cpp_lib_chrono_udls should be defined in c++2b"
3853 # endif
3854 # if __cpp_lib_chrono_udls != 201304L
3855 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++2b"
3856 # endif
3857 
3858 # ifndef __cpp_lib_clamp
3859 #   error "__cpp_lib_clamp should be defined in c++2b"
3860 # endif
3861 # if __cpp_lib_clamp != 201603L
3862 #   error "__cpp_lib_clamp should have the value 201603L in c++2b"
3863 # endif
3864 
3865 # ifndef __cpp_lib_complex_udls
3866 #   error "__cpp_lib_complex_udls should be defined in c++2b"
3867 # endif
3868 # if __cpp_lib_complex_udls != 201309L
3869 #   error "__cpp_lib_complex_udls should have the value 201309L in c++2b"
3870 # endif
3871 
3872 # ifndef __cpp_lib_concepts
3873 #   error "__cpp_lib_concepts should be defined in c++2b"
3874 # endif
3875 # if __cpp_lib_concepts != 202002L
3876 #   error "__cpp_lib_concepts should have the value 202002L in c++2b"
3877 # endif
3878 
3879 # ifndef __cpp_lib_constexpr_algorithms
3880 #   error "__cpp_lib_constexpr_algorithms should be defined in c++2b"
3881 # endif
3882 # if __cpp_lib_constexpr_algorithms != 201806L
3883 #   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++2b"
3884 # endif
3885 
3886 # if !defined(_LIBCPP_VERSION)
3887 #   ifndef __cpp_lib_constexpr_cmath
3888 #     error "__cpp_lib_constexpr_cmath should be defined in c++2b"
3889 #   endif
3890 #   if __cpp_lib_constexpr_cmath != 202202L
3891 #     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++2b"
3892 #   endif
3893 # else // _LIBCPP_VERSION
3894 #   ifdef __cpp_lib_constexpr_cmath
3895 #     error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
3896 #   endif
3897 # endif
3898 
3899 # if !defined(_LIBCPP_VERSION)
3900 #   ifndef __cpp_lib_constexpr_complex
3901 #     error "__cpp_lib_constexpr_complex should be defined in c++2b"
3902 #   endif
3903 #   if __cpp_lib_constexpr_complex != 201711L
3904 #     error "__cpp_lib_constexpr_complex should have the value 201711L in c++2b"
3905 #   endif
3906 # else // _LIBCPP_VERSION
3907 #   ifdef __cpp_lib_constexpr_complex
3908 #     error "__cpp_lib_constexpr_complex should not be defined because it is unimplemented in libc++!"
3909 #   endif
3910 # endif
3911 
3912 # ifndef __cpp_lib_constexpr_dynamic_alloc
3913 #   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++2b"
3914 # endif
3915 # if __cpp_lib_constexpr_dynamic_alloc != 201907L
3916 #   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++2b"
3917 # endif
3918 
3919 # ifndef __cpp_lib_constexpr_functional
3920 #   error "__cpp_lib_constexpr_functional should be defined in c++2b"
3921 # endif
3922 # if __cpp_lib_constexpr_functional != 201907L
3923 #   error "__cpp_lib_constexpr_functional should have the value 201907L in c++2b"
3924 # endif
3925 
3926 # ifndef __cpp_lib_constexpr_iterator
3927 #   error "__cpp_lib_constexpr_iterator should be defined in c++2b"
3928 # endif
3929 # if __cpp_lib_constexpr_iterator != 201811L
3930 #   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++2b"
3931 # endif
3932 
3933 # ifndef __cpp_lib_constexpr_memory
3934 #   error "__cpp_lib_constexpr_memory should be defined in c++2b"
3935 # endif
3936 # if __cpp_lib_constexpr_memory != 201811L
3937 #   error "__cpp_lib_constexpr_memory should have the value 201811L in c++2b"
3938 # endif
3939 
3940 # ifndef __cpp_lib_constexpr_numeric
3941 #   error "__cpp_lib_constexpr_numeric should be defined in c++2b"
3942 # endif
3943 # if __cpp_lib_constexpr_numeric != 201911L
3944 #   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++2b"
3945 # endif
3946 
3947 # ifndef __cpp_lib_constexpr_string
3948 #   error "__cpp_lib_constexpr_string should be defined in c++2b"
3949 # endif
3950 # if __cpp_lib_constexpr_string != 201907L
3951 #   error "__cpp_lib_constexpr_string should have the value 201907L in c++2b"
3952 # endif
3953 
3954 # ifndef __cpp_lib_constexpr_string_view
3955 #   error "__cpp_lib_constexpr_string_view should be defined in c++2b"
3956 # endif
3957 # if __cpp_lib_constexpr_string_view != 201811L
3958 #   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++2b"
3959 # endif
3960 
3961 # ifndef __cpp_lib_constexpr_tuple
3962 #   error "__cpp_lib_constexpr_tuple should be defined in c++2b"
3963 # endif
3964 # if __cpp_lib_constexpr_tuple != 201811L
3965 #   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++2b"
3966 # endif
3967 
3968 # if !defined(_LIBCPP_VERSION)
3969 #   ifndef __cpp_lib_constexpr_typeinfo
3970 #     error "__cpp_lib_constexpr_typeinfo should be defined in c++2b"
3971 #   endif
3972 #   if __cpp_lib_constexpr_typeinfo != 202106L
3973 #     error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++2b"
3974 #   endif
3975 # else // _LIBCPP_VERSION
3976 #   ifdef __cpp_lib_constexpr_typeinfo
3977 #     error "__cpp_lib_constexpr_typeinfo should not be defined because it is unimplemented in libc++!"
3978 #   endif
3979 # endif
3980 
3981 # ifndef __cpp_lib_constexpr_utility
3982 #   error "__cpp_lib_constexpr_utility should be defined in c++2b"
3983 # endif
3984 # if __cpp_lib_constexpr_utility != 201811L
3985 #   error "__cpp_lib_constexpr_utility should have the value 201811L in c++2b"
3986 # endif
3987 
3988 # if !defined(_LIBCPP_VERSION)
3989 #   ifndef __cpp_lib_constexpr_vector
3990 #     error "__cpp_lib_constexpr_vector should be defined in c++2b"
3991 #   endif
3992 #   if __cpp_lib_constexpr_vector != 201907L
3993 #     error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b"
3994 #   endif
3995 # else // _LIBCPP_VERSION
3996 #   ifdef __cpp_lib_constexpr_vector
3997 #     error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!"
3998 #   endif
3999 # endif
4000 
4001 # ifndef __cpp_lib_coroutine
4002 #   error "__cpp_lib_coroutine should be defined in c++2b"
4003 # endif
4004 # if __cpp_lib_coroutine != 201902L
4005 #   error "__cpp_lib_coroutine should have the value 201902L in c++2b"
4006 # endif
4007 
4008 # if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
4009 #   ifndef __cpp_lib_destroying_delete
4010 #     error "__cpp_lib_destroying_delete should be defined in c++2b"
4011 #   endif
4012 #   if __cpp_lib_destroying_delete != 201806L
4013 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++2b"
4014 #   endif
4015 # else
4016 #   ifdef __cpp_lib_destroying_delete
4017 #     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!"
4018 #   endif
4019 # endif
4020 
4021 # ifndef __cpp_lib_enable_shared_from_this
4022 #   error "__cpp_lib_enable_shared_from_this should be defined in c++2b"
4023 # endif
4024 # if __cpp_lib_enable_shared_from_this != 201603L
4025 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++2b"
4026 # endif
4027 
4028 # ifndef __cpp_lib_endian
4029 #   error "__cpp_lib_endian should be defined in c++2b"
4030 # endif
4031 # if __cpp_lib_endian != 201907L
4032 #   error "__cpp_lib_endian should have the value 201907L in c++2b"
4033 # endif
4034 
4035 # ifndef __cpp_lib_erase_if
4036 #   error "__cpp_lib_erase_if should be defined in c++2b"
4037 # endif
4038 # if __cpp_lib_erase_if != 202002L
4039 #   error "__cpp_lib_erase_if should have the value 202002L in c++2b"
4040 # endif
4041 
4042 # ifndef __cpp_lib_exchange_function
4043 #   error "__cpp_lib_exchange_function should be defined in c++2b"
4044 # endif
4045 # if __cpp_lib_exchange_function != 201304L
4046 #   error "__cpp_lib_exchange_function should have the value 201304L in c++2b"
4047 # endif
4048 
4049 # if !defined(_LIBCPP_VERSION)
4050 #   ifndef __cpp_lib_execution
4051 #     error "__cpp_lib_execution should be defined in c++2b"
4052 #   endif
4053 #   if __cpp_lib_execution != 201902L
4054 #     error "__cpp_lib_execution should have the value 201902L in c++2b"
4055 #   endif
4056 # else // _LIBCPP_VERSION
4057 #   ifdef __cpp_lib_execution
4058 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
4059 #   endif
4060 # endif
4061 
4062 # if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem)
4063 #   ifndef __cpp_lib_filesystem
4064 #     error "__cpp_lib_filesystem should be defined in c++2b"
4065 #   endif
4066 #   if __cpp_lib_filesystem != 201703L
4067 #     error "__cpp_lib_filesystem should have the value 201703L in c++2b"
4068 #   endif
4069 # else
4070 #   ifdef __cpp_lib_filesystem
4071 #     error "__cpp_lib_filesystem should not be defined when !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_filesystem) is not defined!"
4072 #   endif
4073 # endif
4074 
4075 # if !defined(_LIBCPP_VERSION)
4076 #   ifndef __cpp_lib_format
4077 #     error "__cpp_lib_format should be defined in c++2b"
4078 #   endif
4079 #   if __cpp_lib_format != 202106L
4080 #     error "__cpp_lib_format should have the value 202106L in c++2b"
4081 #   endif
4082 # else // _LIBCPP_VERSION
4083 #   ifdef __cpp_lib_format
4084 #     error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
4085 #   endif
4086 # endif
4087 
4088 # ifndef __cpp_lib_gcd_lcm
4089 #   error "__cpp_lib_gcd_lcm should be defined in c++2b"
4090 # endif
4091 # if __cpp_lib_gcd_lcm != 201606L
4092 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++2b"
4093 # endif
4094 
4095 # ifndef __cpp_lib_generic_associative_lookup
4096 #   error "__cpp_lib_generic_associative_lookup should be defined in c++2b"
4097 # endif
4098 # if __cpp_lib_generic_associative_lookup != 201304L
4099 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++2b"
4100 # endif
4101 
4102 # ifndef __cpp_lib_generic_unordered_lookup
4103 #   error "__cpp_lib_generic_unordered_lookup should be defined in c++2b"
4104 # endif
4105 # if __cpp_lib_generic_unordered_lookup != 201811L
4106 #   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++2b"
4107 # endif
4108 
4109 # if !defined(_LIBCPP_VERSION)
4110 #   ifndef __cpp_lib_hardware_interference_size
4111 #     error "__cpp_lib_hardware_interference_size should be defined in c++2b"
4112 #   endif
4113 #   if __cpp_lib_hardware_interference_size != 201703L
4114 #     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++2b"
4115 #   endif
4116 # else // _LIBCPP_VERSION
4117 #   ifdef __cpp_lib_hardware_interference_size
4118 #     error "__cpp_lib_hardware_interference_size should not be defined because it is unimplemented in libc++!"
4119 #   endif
4120 # endif
4121 
4122 # ifndef __cpp_lib_has_unique_object_representations
4123 #   error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
4124 # endif
4125 # if __cpp_lib_has_unique_object_representations != 201606L
4126 #   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
4127 # endif
4128 
4129 # ifndef __cpp_lib_hypot
4130 #   error "__cpp_lib_hypot should be defined in c++2b"
4131 # endif
4132 # if __cpp_lib_hypot != 201603L
4133 #   error "__cpp_lib_hypot should have the value 201603L in c++2b"
4134 # endif
4135 
4136 # ifndef __cpp_lib_incomplete_container_elements
4137 #   error "__cpp_lib_incomplete_container_elements should be defined in c++2b"
4138 # endif
4139 # if __cpp_lib_incomplete_container_elements != 201505L
4140 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++2b"
4141 # endif
4142 
4143 # ifndef __cpp_lib_int_pow2
4144 #   error "__cpp_lib_int_pow2 should be defined in c++2b"
4145 # endif
4146 # if __cpp_lib_int_pow2 != 202002L
4147 #   error "__cpp_lib_int_pow2 should have the value 202002L in c++2b"
4148 # endif
4149 
4150 # ifndef __cpp_lib_integer_comparison_functions
4151 #   error "__cpp_lib_integer_comparison_functions should be defined in c++2b"
4152 # endif
4153 # if __cpp_lib_integer_comparison_functions != 202002L
4154 #   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++2b"
4155 # endif
4156 
4157 # ifndef __cpp_lib_integer_sequence
4158 #   error "__cpp_lib_integer_sequence should be defined in c++2b"
4159 # endif
4160 # if __cpp_lib_integer_sequence != 201304L
4161 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++2b"
4162 # endif
4163 
4164 # ifndef __cpp_lib_integral_constant_callable
4165 #   error "__cpp_lib_integral_constant_callable should be defined in c++2b"
4166 # endif
4167 # if __cpp_lib_integral_constant_callable != 201304L
4168 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++2b"
4169 # endif
4170 
4171 # ifndef __cpp_lib_interpolate
4172 #   error "__cpp_lib_interpolate should be defined in c++2b"
4173 # endif
4174 # if __cpp_lib_interpolate != 201902L
4175 #   error "__cpp_lib_interpolate should have the value 201902L in c++2b"
4176 # endif
4177 
4178 # ifndef __cpp_lib_invoke
4179 #   error "__cpp_lib_invoke should be defined in c++2b"
4180 # endif
4181 # if __cpp_lib_invoke != 201411L
4182 #   error "__cpp_lib_invoke should have the value 201411L in c++2b"
4183 # endif
4184 
4185 # if !defined(_LIBCPP_VERSION)
4186 #   ifndef __cpp_lib_invoke_r
4187 #     error "__cpp_lib_invoke_r should be defined in c++2b"
4188 #   endif
4189 #   if __cpp_lib_invoke_r != 202106L
4190 #     error "__cpp_lib_invoke_r should have the value 202106L in c++2b"
4191 #   endif
4192 # else // _LIBCPP_VERSION
4193 #   ifdef __cpp_lib_invoke_r
4194 #     error "__cpp_lib_invoke_r should not be defined because it is unimplemented in libc++!"
4195 #   endif
4196 # endif
4197 
4198 # ifndef __cpp_lib_is_aggregate
4199 #   error "__cpp_lib_is_aggregate should be defined in c++2b"
4200 # endif
4201 # if __cpp_lib_is_aggregate != 201703L
4202 #   error "__cpp_lib_is_aggregate should have the value 201703L in c++2b"
4203 # endif
4204 
4205 # ifndef __cpp_lib_is_constant_evaluated
4206 #   error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
4207 # endif
4208 # if __cpp_lib_is_constant_evaluated != 201811L
4209 #   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
4210 # endif
4211 
4212 # ifndef __cpp_lib_is_final
4213 #   error "__cpp_lib_is_final should be defined in c++2b"
4214 # endif
4215 # if __cpp_lib_is_final != 201402L
4216 #   error "__cpp_lib_is_final should have the value 201402L in c++2b"
4217 # endif
4218 
4219 # ifndef __cpp_lib_is_invocable
4220 #   error "__cpp_lib_is_invocable should be defined in c++2b"
4221 # endif
4222 # if __cpp_lib_is_invocable != 201703L
4223 #   error "__cpp_lib_is_invocable should have the value 201703L in c++2b"
4224 # endif
4225 
4226 # if !defined(_LIBCPP_VERSION)
4227 #   ifndef __cpp_lib_is_layout_compatible
4228 #     error "__cpp_lib_is_layout_compatible should be defined in c++2b"
4229 #   endif
4230 #   if __cpp_lib_is_layout_compatible != 201907L
4231 #     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++2b"
4232 #   endif
4233 # else // _LIBCPP_VERSION
4234 #   ifdef __cpp_lib_is_layout_compatible
4235 #     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
4236 #   endif
4237 # endif
4238 
4239 # ifndef __cpp_lib_is_nothrow_convertible
4240 #   error "__cpp_lib_is_nothrow_convertible should be defined in c++2b"
4241 # endif
4242 # if __cpp_lib_is_nothrow_convertible != 201806L
4243 #   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++2b"
4244 # endif
4245 
4246 # ifndef __cpp_lib_is_null_pointer
4247 #   error "__cpp_lib_is_null_pointer should be defined in c++2b"
4248 # endif
4249 # if __cpp_lib_is_null_pointer != 201309L
4250 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++2b"
4251 # endif
4252 
4253 # if !defined(_LIBCPP_VERSION)
4254 #   ifndef __cpp_lib_is_pointer_interconvertible
4255 #     error "__cpp_lib_is_pointer_interconvertible should be defined in c++2b"
4256 #   endif
4257 #   if __cpp_lib_is_pointer_interconvertible != 201907L
4258 #     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++2b"
4259 #   endif
4260 # else // _LIBCPP_VERSION
4261 #   ifdef __cpp_lib_is_pointer_interconvertible
4262 #     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
4263 #   endif
4264 # endif
4265 
4266 # ifndef __cpp_lib_is_scoped_enum
4267 #   error "__cpp_lib_is_scoped_enum should be defined in c++2b"
4268 # endif
4269 # if __cpp_lib_is_scoped_enum != 202011L
4270 #   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++2b"
4271 # endif
4272 
4273 # ifndef __cpp_lib_is_swappable
4274 #   error "__cpp_lib_is_swappable should be defined in c++2b"
4275 # endif
4276 # if __cpp_lib_is_swappable != 201603L
4277 #   error "__cpp_lib_is_swappable should have the value 201603L in c++2b"
4278 # endif
4279 
4280 # if !defined(_LIBCPP_VERSION)
4281 #   ifndef __cpp_lib_jthread
4282 #     error "__cpp_lib_jthread should be defined in c++2b"
4283 #   endif
4284 #   if __cpp_lib_jthread != 201911L
4285 #     error "__cpp_lib_jthread should have the value 201911L in c++2b"
4286 #   endif
4287 # else // _LIBCPP_VERSION
4288 #   ifdef __cpp_lib_jthread
4289 #     error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!"
4290 #   endif
4291 # endif
4292 
4293 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_latch)
4294 #   ifndef __cpp_lib_latch
4295 #     error "__cpp_lib_latch should be defined in c++2b"
4296 #   endif
4297 #   if __cpp_lib_latch != 201907L
4298 #     error "__cpp_lib_latch should have the value 201907L in c++2b"
4299 #   endif
4300 # else
4301 #   ifdef __cpp_lib_latch
4302 #     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!"
4303 #   endif
4304 # endif
4305 
4306 # ifndef __cpp_lib_launder
4307 #   error "__cpp_lib_launder should be defined in c++2b"
4308 # endif
4309 # if __cpp_lib_launder != 201606L
4310 #   error "__cpp_lib_launder should have the value 201606L in c++2b"
4311 # endif
4312 
4313 # ifndef __cpp_lib_list_remove_return_type
4314 #   error "__cpp_lib_list_remove_return_type should be defined in c++2b"
4315 # endif
4316 # if __cpp_lib_list_remove_return_type != 201806L
4317 #   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2b"
4318 # endif
4319 
4320 # ifndef __cpp_lib_logical_traits
4321 #   error "__cpp_lib_logical_traits should be defined in c++2b"
4322 # endif
4323 # if __cpp_lib_logical_traits != 201510L
4324 #   error "__cpp_lib_logical_traits should have the value 201510L in c++2b"
4325 # endif
4326 
4327 # ifndef __cpp_lib_make_from_tuple
4328 #   error "__cpp_lib_make_from_tuple should be defined in c++2b"
4329 # endif
4330 # if __cpp_lib_make_from_tuple != 201606L
4331 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++2b"
4332 # endif
4333 
4334 # ifndef __cpp_lib_make_reverse_iterator
4335 #   error "__cpp_lib_make_reverse_iterator should be defined in c++2b"
4336 # endif
4337 # if __cpp_lib_make_reverse_iterator != 201402L
4338 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++2b"
4339 # endif
4340 
4341 # ifndef __cpp_lib_make_unique
4342 #   error "__cpp_lib_make_unique should be defined in c++2b"
4343 # endif
4344 # if __cpp_lib_make_unique != 201304L
4345 #   error "__cpp_lib_make_unique should have the value 201304L in c++2b"
4346 # endif
4347 
4348 # ifndef __cpp_lib_map_try_emplace
4349 #   error "__cpp_lib_map_try_emplace should be defined in c++2b"
4350 # endif
4351 # if __cpp_lib_map_try_emplace != 201411L
4352 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++2b"
4353 # endif
4354 
4355 # ifndef __cpp_lib_math_constants
4356 #   error "__cpp_lib_math_constants should be defined in c++2b"
4357 # endif
4358 # if __cpp_lib_math_constants != 201907L
4359 #   error "__cpp_lib_math_constants should have the value 201907L in c++2b"
4360 # endif
4361 
4362 # if !defined(_LIBCPP_VERSION)
4363 #   ifndef __cpp_lib_math_special_functions
4364 #     error "__cpp_lib_math_special_functions should be defined in c++2b"
4365 #   endif
4366 #   if __cpp_lib_math_special_functions != 201603L
4367 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++2b"
4368 #   endif
4369 # else // _LIBCPP_VERSION
4370 #   ifdef __cpp_lib_math_special_functions
4371 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
4372 #   endif
4373 # endif
4374 
4375 # if !defined(_LIBCPP_VERSION)
4376 #   ifndef __cpp_lib_memory_resource
4377 #     error "__cpp_lib_memory_resource should be defined in c++2b"
4378 #   endif
4379 #   if __cpp_lib_memory_resource != 201603L
4380 #     error "__cpp_lib_memory_resource should have the value 201603L in c++2b"
4381 #   endif
4382 # else // _LIBCPP_VERSION
4383 #   ifdef __cpp_lib_memory_resource
4384 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
4385 #   endif
4386 # endif
4387 
4388 # if !defined(_LIBCPP_VERSION)
4389 #   ifndef __cpp_lib_move_only_function
4390 #     error "__cpp_lib_move_only_function should be defined in c++2b"
4391 #   endif
4392 #   if __cpp_lib_move_only_function != 202110L
4393 #     error "__cpp_lib_move_only_function should have the value 202110L in c++2b"
4394 #   endif
4395 # else // _LIBCPP_VERSION
4396 #   ifdef __cpp_lib_move_only_function
4397 #     error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
4398 #   endif
4399 # endif
4400 
4401 # ifndef __cpp_lib_node_extract
4402 #   error "__cpp_lib_node_extract should be defined in c++2b"
4403 # endif
4404 # if __cpp_lib_node_extract != 201606L
4405 #   error "__cpp_lib_node_extract should have the value 201606L in c++2b"
4406 # endif
4407 
4408 # ifndef __cpp_lib_nonmember_container_access
4409 #   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
4410 # endif
4411 # if __cpp_lib_nonmember_container_access != 201411L
4412 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++2b"
4413 # endif
4414 
4415 # ifndef __cpp_lib_not_fn
4416 #   error "__cpp_lib_not_fn should be defined in c++2b"
4417 # endif
4418 # if __cpp_lib_not_fn != 201603L
4419 #   error "__cpp_lib_not_fn should have the value 201603L in c++2b"
4420 # endif
4421 
4422 # ifndef __cpp_lib_null_iterators
4423 #   error "__cpp_lib_null_iterators should be defined in c++2b"
4424 # endif
4425 # if __cpp_lib_null_iterators != 201304L
4426 #   error "__cpp_lib_null_iterators should have the value 201304L in c++2b"
4427 # endif
4428 
4429 # ifndef __cpp_lib_optional
4430 #   error "__cpp_lib_optional should be defined in c++2b"
4431 # endif
4432 # if __cpp_lib_optional != 202110L
4433 #   error "__cpp_lib_optional should have the value 202110L in c++2b"
4434 # endif
4435 
4436 # if !defined(_LIBCPP_VERSION)
4437 #   ifndef __cpp_lib_out_ptr
4438 #     error "__cpp_lib_out_ptr should be defined in c++2b"
4439 #   endif
4440 #   if __cpp_lib_out_ptr != 202106L
4441 #     error "__cpp_lib_out_ptr should have the value 202106L in c++2b"
4442 #   endif
4443 # else // _LIBCPP_VERSION
4444 #   ifdef __cpp_lib_out_ptr
4445 #     error "__cpp_lib_out_ptr should not be defined because it is unimplemented in libc++!"
4446 #   endif
4447 # endif
4448 
4449 # if !defined(_LIBCPP_VERSION)
4450 #   ifndef __cpp_lib_parallel_algorithm
4451 #     error "__cpp_lib_parallel_algorithm should be defined in c++2b"
4452 #   endif
4453 #   if __cpp_lib_parallel_algorithm != 201603L
4454 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++2b"
4455 #   endif
4456 # else // _LIBCPP_VERSION
4457 #   ifdef __cpp_lib_parallel_algorithm
4458 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
4459 #   endif
4460 # endif
4461 
4462 # if !defined(_LIBCPP_VERSION)
4463 #   ifndef __cpp_lib_polymorphic_allocator
4464 #     error "__cpp_lib_polymorphic_allocator should be defined in c++2b"
4465 #   endif
4466 #   if __cpp_lib_polymorphic_allocator != 201902L
4467 #     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++2b"
4468 #   endif
4469 # else // _LIBCPP_VERSION
4470 #   ifdef __cpp_lib_polymorphic_allocator
4471 #     error "__cpp_lib_polymorphic_allocator should not be defined because it is unimplemented in libc++!"
4472 #   endif
4473 # endif
4474 
4475 # ifndef __cpp_lib_quoted_string_io
4476 #   error "__cpp_lib_quoted_string_io should be defined in c++2b"
4477 # endif
4478 # if __cpp_lib_quoted_string_io != 201304L
4479 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++2b"
4480 # endif
4481 
4482 # if !defined(_LIBCPP_VERSION)
4483 #   ifndef __cpp_lib_ranges
4484 #     error "__cpp_lib_ranges should be defined in c++2b"
4485 #   endif
4486 #   if __cpp_lib_ranges != 201811L
4487 #     error "__cpp_lib_ranges should have the value 201811L in c++2b"
4488 #   endif
4489 # else // _LIBCPP_VERSION
4490 #   ifdef __cpp_lib_ranges
4491 #     error "__cpp_lib_ranges should not be defined because it is unimplemented in libc++!"
4492 #   endif
4493 # endif
4494 
4495 # if !defined(_LIBCPP_VERSION)
4496 #   ifndef __cpp_lib_ranges_chunk
4497 #     error "__cpp_lib_ranges_chunk should be defined in c++2b"
4498 #   endif
4499 #   if __cpp_lib_ranges_chunk != 202202L
4500 #     error "__cpp_lib_ranges_chunk should have the value 202202L in c++2b"
4501 #   endif
4502 # else // _LIBCPP_VERSION
4503 #   ifdef __cpp_lib_ranges_chunk
4504 #     error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
4505 #   endif
4506 # endif
4507 
4508 # if !defined(_LIBCPP_VERSION)
4509 #   ifndef __cpp_lib_ranges_chunk_by
4510 #     error "__cpp_lib_ranges_chunk_by should be defined in c++2b"
4511 #   endif
4512 #   if __cpp_lib_ranges_chunk_by != 202202L
4513 #     error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++2b"
4514 #   endif
4515 # else // _LIBCPP_VERSION
4516 #   ifdef __cpp_lib_ranges_chunk_by
4517 #     error "__cpp_lib_ranges_chunk_by should not be defined because it is unimplemented in libc++!"
4518 #   endif
4519 # endif
4520 
4521 # if !defined(_LIBCPP_VERSION)
4522 #   ifndef __cpp_lib_ranges_iota
4523 #     error "__cpp_lib_ranges_iota should be defined in c++2b"
4524 #   endif
4525 #   if __cpp_lib_ranges_iota != 202202L
4526 #     error "__cpp_lib_ranges_iota should have the value 202202L in c++2b"
4527 #   endif
4528 # else // _LIBCPP_VERSION
4529 #   ifdef __cpp_lib_ranges_iota
4530 #     error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
4531 #   endif
4532 # endif
4533 
4534 # if !defined(_LIBCPP_VERSION)
4535 #   ifndef __cpp_lib_ranges_join_with
4536 #     error "__cpp_lib_ranges_join_with should be defined in c++2b"
4537 #   endif
4538 #   if __cpp_lib_ranges_join_with != 202202L
4539 #     error "__cpp_lib_ranges_join_with should have the value 202202L in c++2b"
4540 #   endif
4541 # else // _LIBCPP_VERSION
4542 #   ifdef __cpp_lib_ranges_join_with
4543 #     error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
4544 #   endif
4545 # endif
4546 
4547 # if !defined(_LIBCPP_VERSION)
4548 #   ifndef __cpp_lib_ranges_slide
4549 #     error "__cpp_lib_ranges_slide should be defined in c++2b"
4550 #   endif
4551 #   if __cpp_lib_ranges_slide != 202202L
4552 #     error "__cpp_lib_ranges_slide should have the value 202202L in c++2b"
4553 #   endif
4554 # else // _LIBCPP_VERSION
4555 #   ifdef __cpp_lib_ranges_slide
4556 #     error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
4557 #   endif
4558 # endif
4559 
4560 # if !defined(_LIBCPP_VERSION)
4561 #   ifndef __cpp_lib_ranges_starts_ends_with
4562 #     error "__cpp_lib_ranges_starts_ends_with should be defined in c++2b"
4563 #   endif
4564 #   if __cpp_lib_ranges_starts_ends_with != 202106L
4565 #     error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++2b"
4566 #   endif
4567 # else // _LIBCPP_VERSION
4568 #   ifdef __cpp_lib_ranges_starts_ends_with
4569 #     error "__cpp_lib_ranges_starts_ends_with should not be defined because it is unimplemented in libc++!"
4570 #   endif
4571 # endif
4572 
4573 # if !defined(_LIBCPP_VERSION)
4574 #   ifndef __cpp_lib_ranges_to_container
4575 #     error "__cpp_lib_ranges_to_container should be defined in c++2b"
4576 #   endif
4577 #   if __cpp_lib_ranges_to_container != 202202L
4578 #     error "__cpp_lib_ranges_to_container should have the value 202202L in c++2b"
4579 #   endif
4580 # else // _LIBCPP_VERSION
4581 #   ifdef __cpp_lib_ranges_to_container
4582 #     error "__cpp_lib_ranges_to_container should not be defined because it is unimplemented in libc++!"
4583 #   endif
4584 # endif
4585 
4586 # if !defined(_LIBCPP_VERSION)
4587 #   ifndef __cpp_lib_ranges_zip
4588 #     error "__cpp_lib_ranges_zip should be defined in c++2b"
4589 #   endif
4590 #   if __cpp_lib_ranges_zip != 202110L
4591 #     error "__cpp_lib_ranges_zip should have the value 202110L in c++2b"
4592 #   endif
4593 # else // _LIBCPP_VERSION
4594 #   ifdef __cpp_lib_ranges_zip
4595 #     error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
4596 #   endif
4597 # endif
4598 
4599 # ifndef __cpp_lib_raw_memory_algorithms
4600 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++2b"
4601 # endif
4602 # if __cpp_lib_raw_memory_algorithms != 201606L
4603 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++2b"
4604 # endif
4605 
4606 # if !defined(_LIBCPP_VERSION)
4607 #   ifndef __cpp_lib_reference_from_temporary
4608 #     error "__cpp_lib_reference_from_temporary should be defined in c++2b"
4609 #   endif
4610 #   if __cpp_lib_reference_from_temporary != 202202L
4611 #     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++2b"
4612 #   endif
4613 # else // _LIBCPP_VERSION
4614 #   ifdef __cpp_lib_reference_from_temporary
4615 #     error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
4616 #   endif
4617 # endif
4618 
4619 # ifndef __cpp_lib_remove_cvref
4620 #   error "__cpp_lib_remove_cvref should be defined in c++2b"
4621 # endif
4622 # if __cpp_lib_remove_cvref != 201711L
4623 #   error "__cpp_lib_remove_cvref should have the value 201711L in c++2b"
4624 # endif
4625 
4626 # ifndef __cpp_lib_result_of_sfinae
4627 #   error "__cpp_lib_result_of_sfinae should be defined in c++2b"
4628 # endif
4629 # if __cpp_lib_result_of_sfinae != 201210L
4630 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++2b"
4631 # endif
4632 
4633 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
4634 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++2b"
4635 # endif
4636 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
4637 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++2b"
4638 # endif
4639 
4640 # ifndef __cpp_lib_sample
4641 #   error "__cpp_lib_sample should be defined in c++2b"
4642 # endif
4643 # if __cpp_lib_sample != 201603L
4644 #   error "__cpp_lib_sample should have the value 201603L in c++2b"
4645 # endif
4646 
4647 # ifndef __cpp_lib_scoped_lock
4648 #   error "__cpp_lib_scoped_lock should be defined in c++2b"
4649 # endif
4650 # if __cpp_lib_scoped_lock != 201703L
4651 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++2b"
4652 # endif
4653 
4654 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore)
4655 #   ifndef __cpp_lib_semaphore
4656 #     error "__cpp_lib_semaphore should be defined in c++2b"
4657 #   endif
4658 #   if __cpp_lib_semaphore != 201907L
4659 #     error "__cpp_lib_semaphore should have the value 201907L in c++2b"
4660 #   endif
4661 # else
4662 #   ifdef __cpp_lib_semaphore
4663 #     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!"
4664 #   endif
4665 # endif
4666 
4667 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_mutex)
4668 #   ifndef __cpp_lib_shared_mutex
4669 #     error "__cpp_lib_shared_mutex should be defined in c++2b"
4670 #   endif
4671 #   if __cpp_lib_shared_mutex != 201505L
4672 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++2b"
4673 #   endif
4674 # else
4675 #   ifdef __cpp_lib_shared_mutex
4676 #     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!"
4677 #   endif
4678 # endif
4679 
4680 # ifndef __cpp_lib_shared_ptr_arrays
4681 #   error "__cpp_lib_shared_ptr_arrays should be defined in c++2b"
4682 # endif
4683 # if __cpp_lib_shared_ptr_arrays != 201707L
4684 #   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++2b"
4685 # endif
4686 
4687 # ifndef __cpp_lib_shared_ptr_weak_type
4688 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++2b"
4689 # endif
4690 # if __cpp_lib_shared_ptr_weak_type != 201606L
4691 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++2b"
4692 # endif
4693 
4694 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_shared_timed_mutex)
4695 #   ifndef __cpp_lib_shared_timed_mutex
4696 #     error "__cpp_lib_shared_timed_mutex should be defined in c++2b"
4697 #   endif
4698 #   if __cpp_lib_shared_timed_mutex != 201402L
4699 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++2b"
4700 #   endif
4701 # else
4702 #   ifdef __cpp_lib_shared_timed_mutex
4703 #     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!"
4704 #   endif
4705 # endif
4706 
4707 # ifndef __cpp_lib_shift
4708 #   error "__cpp_lib_shift should be defined in c++2b"
4709 # endif
4710 # if __cpp_lib_shift != 201806L
4711 #   error "__cpp_lib_shift should have the value 201806L in c++2b"
4712 # endif
4713 
4714 # if !defined(_LIBCPP_VERSION)
4715 #   ifndef __cpp_lib_smart_ptr_for_overwrite
4716 #     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++2b"
4717 #   endif
4718 #   if __cpp_lib_smart_ptr_for_overwrite != 202002L
4719 #     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++2b"
4720 #   endif
4721 # else // _LIBCPP_VERSION
4722 #   ifdef __cpp_lib_smart_ptr_for_overwrite
4723 #     error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
4724 #   endif
4725 # endif
4726 
4727 # if !defined(_LIBCPP_VERSION)
4728 #   ifndef __cpp_lib_source_location
4729 #     error "__cpp_lib_source_location should be defined in c++2b"
4730 #   endif
4731 #   if __cpp_lib_source_location != 201907L
4732 #     error "__cpp_lib_source_location should have the value 201907L in c++2b"
4733 #   endif
4734 # else // _LIBCPP_VERSION
4735 #   ifdef __cpp_lib_source_location
4736 #     error "__cpp_lib_source_location should not be defined because it is unimplemented in libc++!"
4737 #   endif
4738 # endif
4739 
4740 # ifndef __cpp_lib_span
4741 #   error "__cpp_lib_span should be defined in c++2b"
4742 # endif
4743 # if __cpp_lib_span != 202002L
4744 #   error "__cpp_lib_span should have the value 202002L in c++2b"
4745 # endif
4746 
4747 # if !defined(_LIBCPP_VERSION)
4748 #   ifndef __cpp_lib_spanstream
4749 #     error "__cpp_lib_spanstream should be defined in c++2b"
4750 #   endif
4751 #   if __cpp_lib_spanstream != 202106L
4752 #     error "__cpp_lib_spanstream should have the value 202106L in c++2b"
4753 #   endif
4754 # else // _LIBCPP_VERSION
4755 #   ifdef __cpp_lib_spanstream
4756 #     error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
4757 #   endif
4758 # endif
4759 
4760 # ifndef __cpp_lib_ssize
4761 #   error "__cpp_lib_ssize should be defined in c++2b"
4762 # endif
4763 # if __cpp_lib_ssize != 201902L
4764 #   error "__cpp_lib_ssize should have the value 201902L in c++2b"
4765 # endif
4766 
4767 # if !defined(_LIBCPP_VERSION)
4768 #   ifndef __cpp_lib_stacktrace
4769 #     error "__cpp_lib_stacktrace should be defined in c++2b"
4770 #   endif
4771 #   if __cpp_lib_stacktrace != 202011L
4772 #     error "__cpp_lib_stacktrace should have the value 202011L in c++2b"
4773 #   endif
4774 # else // _LIBCPP_VERSION
4775 #   ifdef __cpp_lib_stacktrace
4776 #     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
4777 #   endif
4778 # endif
4779 
4780 # ifndef __cpp_lib_starts_ends_with
4781 #   error "__cpp_lib_starts_ends_with should be defined in c++2b"
4782 # endif
4783 # if __cpp_lib_starts_ends_with != 201711L
4784 #   error "__cpp_lib_starts_ends_with should have the value 201711L in c++2b"
4785 # endif
4786 
4787 # ifndef __cpp_lib_stdatomic_h
4788 #   error "__cpp_lib_stdatomic_h should be defined in c++2b"
4789 # endif
4790 # if __cpp_lib_stdatomic_h != 202011L
4791 #   error "__cpp_lib_stdatomic_h should have the value 202011L in c++2b"
4792 # endif
4793 
4794 # ifndef __cpp_lib_string_contains
4795 #   error "__cpp_lib_string_contains should be defined in c++2b"
4796 # endif
4797 # if __cpp_lib_string_contains != 202011L
4798 #   error "__cpp_lib_string_contains should have the value 202011L in c++2b"
4799 # endif
4800 
4801 # ifndef __cpp_lib_string_resize_and_overwrite
4802 #   error "__cpp_lib_string_resize_and_overwrite should be defined in c++2b"
4803 # endif
4804 # if __cpp_lib_string_resize_and_overwrite != 202110L
4805 #   error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++2b"
4806 # endif
4807 
4808 # ifndef __cpp_lib_string_udls
4809 #   error "__cpp_lib_string_udls should be defined in c++2b"
4810 # endif
4811 # if __cpp_lib_string_udls != 201304L
4812 #   error "__cpp_lib_string_udls should have the value 201304L in c++2b"
4813 # endif
4814 
4815 # ifndef __cpp_lib_string_view
4816 #   error "__cpp_lib_string_view should be defined in c++2b"
4817 # endif
4818 # if __cpp_lib_string_view != 201803L
4819 #   error "__cpp_lib_string_view should have the value 201803L in c++2b"
4820 # endif
4821 
4822 # if !defined(_LIBCPP_VERSION)
4823 #   ifndef __cpp_lib_syncbuf
4824 #     error "__cpp_lib_syncbuf should be defined in c++2b"
4825 #   endif
4826 #   if __cpp_lib_syncbuf != 201803L
4827 #     error "__cpp_lib_syncbuf should have the value 201803L in c++2b"
4828 #   endif
4829 # else // _LIBCPP_VERSION
4830 #   ifdef __cpp_lib_syncbuf
4831 #     error "__cpp_lib_syncbuf should not be defined because it is unimplemented in libc++!"
4832 #   endif
4833 # endif
4834 
4835 # if !defined(_LIBCPP_VERSION)
4836 #   ifndef __cpp_lib_three_way_comparison
4837 #     error "__cpp_lib_three_way_comparison should be defined in c++2b"
4838 #   endif
4839 #   if __cpp_lib_three_way_comparison != 201907L
4840 #     error "__cpp_lib_three_way_comparison should have the value 201907L in c++2b"
4841 #   endif
4842 # else // _LIBCPP_VERSION
4843 #   ifdef __cpp_lib_three_way_comparison
4844 #     error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
4845 #   endif
4846 # endif
4847 
4848 # ifndef __cpp_lib_to_address
4849 #   error "__cpp_lib_to_address should be defined in c++2b"
4850 # endif
4851 # if __cpp_lib_to_address != 201711L
4852 #   error "__cpp_lib_to_address should have the value 201711L in c++2b"
4853 # endif
4854 
4855 # ifndef __cpp_lib_to_array
4856 #   error "__cpp_lib_to_array should be defined in c++2b"
4857 # endif
4858 # if __cpp_lib_to_array != 201907L
4859 #   error "__cpp_lib_to_array should have the value 201907L in c++2b"
4860 # endif
4861 
4862 # if !defined(_LIBCPP_VERSION)
4863 #   ifndef __cpp_lib_to_chars
4864 #     error "__cpp_lib_to_chars should be defined in c++2b"
4865 #   endif
4866 #   if __cpp_lib_to_chars != 201611L
4867 #     error "__cpp_lib_to_chars should have the value 201611L in c++2b"
4868 #   endif
4869 # else // _LIBCPP_VERSION
4870 #   ifdef __cpp_lib_to_chars
4871 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
4872 #   endif
4873 # endif
4874 
4875 # ifndef __cpp_lib_to_underlying
4876 #   error "__cpp_lib_to_underlying should be defined in c++2b"
4877 # endif
4878 # if __cpp_lib_to_underlying != 202102L
4879 #   error "__cpp_lib_to_underlying should have the value 202102L in c++2b"
4880 # endif
4881 
4882 # ifndef __cpp_lib_transformation_trait_aliases
4883 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++2b"
4884 # endif
4885 # if __cpp_lib_transformation_trait_aliases != 201304L
4886 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++2b"
4887 # endif
4888 
4889 # ifndef __cpp_lib_transparent_operators
4890 #   error "__cpp_lib_transparent_operators should be defined in c++2b"
4891 # endif
4892 # if __cpp_lib_transparent_operators != 201510L
4893 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++2b"
4894 # endif
4895 
4896 # ifndef __cpp_lib_tuple_element_t
4897 #   error "__cpp_lib_tuple_element_t should be defined in c++2b"
4898 # endif
4899 # if __cpp_lib_tuple_element_t != 201402L
4900 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++2b"
4901 # endif
4902 
4903 # ifndef __cpp_lib_tuples_by_type
4904 #   error "__cpp_lib_tuples_by_type should be defined in c++2b"
4905 # endif
4906 # if __cpp_lib_tuples_by_type != 201304L
4907 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++2b"
4908 # endif
4909 
4910 # ifndef __cpp_lib_type_identity
4911 #   error "__cpp_lib_type_identity should be defined in c++2b"
4912 # endif
4913 # if __cpp_lib_type_identity != 201806L
4914 #   error "__cpp_lib_type_identity should have the value 201806L in c++2b"
4915 # endif
4916 
4917 # ifndef __cpp_lib_type_trait_variable_templates
4918 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++2b"
4919 # endif
4920 # if __cpp_lib_type_trait_variable_templates != 201510L
4921 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++2b"
4922 # endif
4923 
4924 # ifndef __cpp_lib_uncaught_exceptions
4925 #   error "__cpp_lib_uncaught_exceptions should be defined in c++2b"
4926 # endif
4927 # if __cpp_lib_uncaught_exceptions != 201411L
4928 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++2b"
4929 # endif
4930 
4931 # ifndef __cpp_lib_unordered_map_try_emplace
4932 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++2b"
4933 # endif
4934 # if __cpp_lib_unordered_map_try_emplace != 201411L
4935 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++2b"
4936 # endif
4937 
4938 # ifndef __cpp_lib_unreachable
4939 #   error "__cpp_lib_unreachable should be defined in c++2b"
4940 # endif
4941 # if __cpp_lib_unreachable != 202202L
4942 #   error "__cpp_lib_unreachable should have the value 202202L in c++2b"
4943 # endif
4944 
4945 # ifndef __cpp_lib_unwrap_ref
4946 #   error "__cpp_lib_unwrap_ref should be defined in c++2b"
4947 # endif
4948 # if __cpp_lib_unwrap_ref != 201811L
4949 #   error "__cpp_lib_unwrap_ref should have the value 201811L in c++2b"
4950 # endif
4951 
4952 # ifndef __cpp_lib_variant
4953 #   error "__cpp_lib_variant should be defined in c++2b"
4954 # endif
4955 # if __cpp_lib_variant != 202102L
4956 #   error "__cpp_lib_variant should have the value 202102L in c++2b"
4957 # endif
4958 
4959 # ifndef __cpp_lib_void_t
4960 #   error "__cpp_lib_void_t should be defined in c++2b"
4961 # endif
4962 # if __cpp_lib_void_t != 201411L
4963 #   error "__cpp_lib_void_t should have the value 201411L in c++2b"
4964 # endif
4965 
4966 #endif // TEST_STD_VER > 20
4967 
4968