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++23]
20 __cpp_lib_addressof_constexpr 201603L [C++17]
21 __cpp_lib_allocate_at_least 202302L [C++23]
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++23]
29 __cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
30 __cpp_lib_assume_aligned 201811L [C++20]
31 __cpp_lib_atomic_flag_test 201907L [C++20]
32 __cpp_lib_atomic_float 201711L [C++20]
33 __cpp_lib_atomic_is_always_lock_free 201603L [C++17]
34 __cpp_lib_atomic_lock_free_type_aliases 201907L [C++20]
35 __cpp_lib_atomic_min_max 202403L [C++26]
36 __cpp_lib_atomic_ref 201806L [C++20]
37 __cpp_lib_atomic_shared_ptr 201711L [C++20]
38 __cpp_lib_atomic_value_initialization 201911L [C++20]
39 __cpp_lib_atomic_wait 201907L [C++20]
40 __cpp_lib_barrier 201907L [C++20]
41 __cpp_lib_bind_back 202202L [C++23]
42 __cpp_lib_bind_front 201907L [C++20]
43 202306L [C++26]
44 __cpp_lib_bit_cast 201806L [C++20]
45 __cpp_lib_bitops 201907L [C++20]
46 __cpp_lib_bitset 202306L [C++26]
47 __cpp_lib_bool_constant 201505L [C++17]
48 __cpp_lib_bounded_array_traits 201902L [C++20]
49 __cpp_lib_boyer_moore_searcher 201603L [C++17]
50 __cpp_lib_byte 201603L [C++17]
51 __cpp_lib_byteswap 202110L [C++23]
52 __cpp_lib_char8_t 201907L [C++20]
53 __cpp_lib_chrono 201611L [C++17]
54 __cpp_lib_chrono_udls 201304L [C++14]
55 __cpp_lib_clamp 201603L [C++17]
56 __cpp_lib_complex_udls 201309L [C++14]
57 __cpp_lib_concepts 202002L [C++20]
58 __cpp_lib_constexpr_algorithms 201806L [C++20]
59 __cpp_lib_constexpr_bitset 202207L [C++23]
60 __cpp_lib_constexpr_charconv 202207L [C++23]
61 __cpp_lib_constexpr_cmath 202202L [C++23]
62 __cpp_lib_constexpr_complex 201711L [C++20]
63 __cpp_lib_constexpr_dynamic_alloc 201907L [C++20]
64 __cpp_lib_constexpr_functional 201907L [C++20]
65 __cpp_lib_constexpr_iterator 201811L [C++20]
66 __cpp_lib_constexpr_memory 201811L [C++20]
67 202202L [C++23]
68 __cpp_lib_constexpr_numeric 201911L [C++20]
69 __cpp_lib_constexpr_string 201907L [C++20]
70 __cpp_lib_constexpr_string_view 201811L [C++20]
71 __cpp_lib_constexpr_tuple 201811L [C++20]
72 __cpp_lib_constexpr_typeinfo 202106L [C++23]
73 __cpp_lib_constexpr_utility 201811L [C++20]
74 __cpp_lib_constexpr_vector 201907L [C++20]
75 __cpp_lib_constrained_equality 202403L [C++26]
76 __cpp_lib_copyable_function 202306L [C++26]
77 __cpp_lib_coroutine 201902L [C++20]
78 __cpp_lib_debugging 202311L [C++26]
79 __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
80 __cpp_lib_destroying_delete 201806L [C++20]
81 __cpp_lib_enable_shared_from_this 201603L [C++17]
82 __cpp_lib_endian 201907L [C++20]
83 __cpp_lib_erase_if 202002L [C++20]
84 __cpp_lib_exchange_function 201304L [C++14]
85 __cpp_lib_execution 201603L [C++17]
86 201902L [C++20]
87 __cpp_lib_expected 202211L [C++23]
88 __cpp_lib_filesystem 201703L [C++17]
89 __cpp_lib_format 202106L [C++20]
90 __cpp_lib_format_path 202403L [C++23]
91 __cpp_lib_format_ranges 202207L [C++23]
92 __cpp_lib_format_uchar 202311L [C++20]
93 __cpp_lib_formatters 202302L [C++23]
94 __cpp_lib_forward_like 202207L [C++23]
95 __cpp_lib_freestanding_algorithm 202311L [C++26]
96 __cpp_lib_freestanding_array 202311L [C++26]
97 __cpp_lib_freestanding_cstring 202306L [C++26]
98 __cpp_lib_freestanding_expected 202311L [C++26]
99 __cpp_lib_freestanding_mdspan 202311L [C++26]
100 __cpp_lib_freestanding_optional 202311L [C++26]
101 __cpp_lib_freestanding_string_view 202311L [C++26]
102 __cpp_lib_freestanding_variant 202311L [C++26]
103 __cpp_lib_fstream_native_handle 202306L [C++26]
104 __cpp_lib_function_ref 202306L [C++26]
105 __cpp_lib_gcd_lcm 201606L [C++17]
106 __cpp_lib_generate_random 202403L [C++26]
107 __cpp_lib_generic_associative_lookup 201304L [C++14]
108 __cpp_lib_generic_unordered_lookup 201811L [C++20]
109 __cpp_lib_hardware_interference_size 201703L [C++17]
110 __cpp_lib_has_unique_object_representations 201606L [C++17]
111 __cpp_lib_hazard_pointer 202306L [C++26]
112 __cpp_lib_hypot 201603L [C++17]
113 __cpp_lib_incomplete_container_elements 201505L [C++17]
114 __cpp_lib_int_pow2 202002L [C++20]
115 __cpp_lib_integer_comparison_functions 202002L [C++20]
116 __cpp_lib_integer_sequence 201304L [C++14]
117 __cpp_lib_integral_constant_callable 201304L [C++14]
118 __cpp_lib_interpolate 201902L [C++20]
119 __cpp_lib_invoke 201411L [C++17]
120 __cpp_lib_invoke_r 202106L [C++23]
121 __cpp_lib_ios_noreplace 202207L [C++23]
122 __cpp_lib_is_aggregate 201703L [C++17]
123 __cpp_lib_is_constant_evaluated 201811L [C++20]
124 __cpp_lib_is_final 201402L [C++14]
125 __cpp_lib_is_invocable 201703L [C++17]
126 __cpp_lib_is_layout_compatible 201907L [C++20]
127 __cpp_lib_is_nothrow_convertible 201806L [C++20]
128 __cpp_lib_is_null_pointer 201309L [C++14]
129 __cpp_lib_is_pointer_interconvertible 201907L [C++20]
130 __cpp_lib_is_scoped_enum 202011L [C++23]
131 __cpp_lib_is_swappable 201603L [C++17]
132 __cpp_lib_jthread 201911L [C++20]
133 __cpp_lib_latch 201907L [C++20]
134 __cpp_lib_launder 201606L [C++17]
135 __cpp_lib_linalg 202311L [C++26]
136 __cpp_lib_list_remove_return_type 201806L [C++20]
137 __cpp_lib_logical_traits 201510L [C++17]
138 __cpp_lib_make_from_tuple 201606L [C++17]
139 __cpp_lib_make_reverse_iterator 201402L [C++14]
140 __cpp_lib_make_unique 201304L [C++14]
141 __cpp_lib_map_try_emplace 201411L [C++17]
142 __cpp_lib_math_constants 201907L [C++20]
143 __cpp_lib_math_special_functions 201603L [C++17]
144 __cpp_lib_mdspan 202207L [C++23]
145 __cpp_lib_memory_resource 201603L [C++17]
146 __cpp_lib_move_iterator_concept 202207L [C++20]
147 __cpp_lib_move_only_function 202110L [C++23]
148 __cpp_lib_node_extract 201606L [C++17]
149 __cpp_lib_nonmember_container_access 201411L [C++17]
150 __cpp_lib_not_fn 201603L [C++17]
151 __cpp_lib_null_iterators 201304L [C++14]
152 __cpp_lib_optional 201606L [C++17]
153 202110L [C++23]
154 __cpp_lib_out_ptr 202106L [C++23]
155 202311L [C++26]
156 __cpp_lib_parallel_algorithm 201603L [C++17]
157 __cpp_lib_polymorphic_allocator 201902L [C++20]
158 __cpp_lib_print 202207L [C++23]
159 __cpp_lib_quoted_string_io 201304L [C++14]
160 __cpp_lib_ranges 202207L [C++20]
161 __cpp_lib_ranges_as_const 202207L [C++23]
162 __cpp_lib_ranges_as_rvalue 202207L [C++23]
163 __cpp_lib_ranges_chunk 202202L [C++23]
164 __cpp_lib_ranges_chunk_by 202202L [C++23]
165 __cpp_lib_ranges_concat 202403L [C++26]
166 __cpp_lib_ranges_contains 202207L [C++23]
167 __cpp_lib_ranges_iota 202202L [C++23]
168 __cpp_lib_ranges_join_with 202202L [C++23]
169 __cpp_lib_ranges_repeat 202207L [C++23]
170 __cpp_lib_ranges_slide 202202L [C++23]
171 __cpp_lib_ranges_starts_ends_with 202106L [C++23]
172 __cpp_lib_ranges_to_container 202202L [C++23]
173 __cpp_lib_ranges_zip 202110L [C++23]
174 __cpp_lib_ratio 202306L [C++26]
175 __cpp_lib_raw_memory_algorithms 201606L [C++17]
176 __cpp_lib_rcu 202306L [C++26]
177 __cpp_lib_reference_from_temporary 202202L [C++23]
178 __cpp_lib_reference_wrapper 202403L [C++26]
179 __cpp_lib_remove_cvref 201711L [C++20]
180 __cpp_lib_result_of_sfinae 201210L [C++14]
181 __cpp_lib_robust_nonmodifying_seq_ops 201304L [C++14]
182 __cpp_lib_sample 201603L [C++17]
183 __cpp_lib_saturation_arithmetic 202311L [C++26]
184 __cpp_lib_scoped_lock 201703L [C++17]
185 __cpp_lib_semaphore 201907L [C++20]
186 __cpp_lib_shared_mutex 201505L [C++17]
187 __cpp_lib_shared_ptr_arrays 201611L [C++17]
188 201707L [C++20]
189 __cpp_lib_shared_ptr_weak_type 201606L [C++17]
190 __cpp_lib_shared_timed_mutex 201402L [C++14]
191 __cpp_lib_shift 201806L [C++20]
192 __cpp_lib_smart_ptr_for_overwrite 202002L [C++20]
193 __cpp_lib_smart_ptr_owner_equality 202306L [C++26]
194 __cpp_lib_source_location 201907L [C++20]
195 __cpp_lib_span 202002L [C++20]
196 __cpp_lib_span_at 202311L [C++26]
197 __cpp_lib_span_initializer_list 202311L [C++26]
198 __cpp_lib_spanstream 202106L [C++23]
199 __cpp_lib_ssize 201902L [C++20]
200 __cpp_lib_sstream_from_string_view 202306L [C++26]
201 __cpp_lib_stacktrace 202011L [C++23]
202 __cpp_lib_starts_ends_with 201711L [C++20]
203 __cpp_lib_stdatomic_h 202011L [C++23]
204 __cpp_lib_string_contains 202011L [C++23]
205 __cpp_lib_string_resize_and_overwrite 202110L [C++23]
206 __cpp_lib_string_udls 201304L [C++14]
207 __cpp_lib_string_view 201606L [C++17]
208 201803L [C++20]
209 __cpp_lib_submdspan 202306L [C++26]
210 __cpp_lib_syncbuf 201803L [C++20]
211 __cpp_lib_text_encoding 202306L [C++26]
212 __cpp_lib_three_way_comparison 201907L [C++20]
213 __cpp_lib_to_address 201711L [C++20]
214 __cpp_lib_to_array 201907L [C++20]
215 __cpp_lib_to_chars 201611L [C++17]
216 202306L [C++26]
217 __cpp_lib_to_string 202306L [C++23]
218 __cpp_lib_to_underlying 202102L [C++23]
219 __cpp_lib_transformation_trait_aliases 201304L [C++14]
220 __cpp_lib_transparent_operators 201210L [C++14]
221 201510L [C++17]
222 __cpp_lib_tuple_element_t 201402L [C++14]
223 __cpp_lib_tuple_like 202207L [C++23]
224 202311L [C++26]
225 __cpp_lib_tuples_by_type 201304L [C++14]
226 __cpp_lib_type_identity 201806L [C++20]
227 __cpp_lib_type_trait_variable_templates 201510L [C++17]
228 __cpp_lib_uncaught_exceptions 201411L [C++17]
229 __cpp_lib_unordered_map_try_emplace 201411L [C++17]
230 __cpp_lib_unreachable 202202L [C++23]
231 __cpp_lib_unwrap_ref 201811L [C++20]
232 __cpp_lib_variant 202102L [C++17]
233 __cpp_lib_void_t 201411L [C++17]
234 __cpp_lib_within_lifetime 202306L [C++26]
235*/
236
237#include <version>
238#include "test_macros.h"
239
240#if TEST_STD_VER < 14
241
242# ifdef __cpp_lib_adaptor_iterator_pair_constructor
243# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
244# endif
245
246# ifdef __cpp_lib_addressof_constexpr
247# error "__cpp_lib_addressof_constexpr should not be defined before c++17"
248# endif
249
250# ifdef __cpp_lib_allocate_at_least
251# error "__cpp_lib_allocate_at_least should not be defined before c++23"
252# endif
253
254# ifdef __cpp_lib_allocator_traits_is_always_equal
255# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
256# endif
257
258# ifdef __cpp_lib_any
259# error "__cpp_lib_any should not be defined before c++17"
260# endif
261
262# ifdef __cpp_lib_apply
263# error "__cpp_lib_apply should not be defined before c++17"
264# endif
265
266# ifdef __cpp_lib_array_constexpr
267# error "__cpp_lib_array_constexpr should not be defined before c++17"
268# endif
269
270# ifdef __cpp_lib_as_const
271# error "__cpp_lib_as_const should not be defined before c++17"
272# endif
273
274# ifdef __cpp_lib_associative_heterogeneous_erasure
275# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
276# endif
277
278# ifdef __cpp_lib_associative_heterogeneous_insertion
279# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
280# endif
281
282# ifdef __cpp_lib_assume_aligned
283# error "__cpp_lib_assume_aligned should not be defined before c++20"
284# endif
285
286# ifdef __cpp_lib_atomic_flag_test
287# error "__cpp_lib_atomic_flag_test should not be defined before c++20"
288# endif
289
290# ifdef __cpp_lib_atomic_float
291# error "__cpp_lib_atomic_float should not be defined before c++20"
292# endif
293
294# ifdef __cpp_lib_atomic_is_always_lock_free
295# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
296# endif
297
298# ifdef __cpp_lib_atomic_lock_free_type_aliases
299# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
300# endif
301
302# ifdef __cpp_lib_atomic_min_max
303# error "__cpp_lib_atomic_min_max should not be defined before c++26"
304# endif
305
306# ifdef __cpp_lib_atomic_ref
307# error "__cpp_lib_atomic_ref should not be defined before c++20"
308# endif
309
310# ifdef __cpp_lib_atomic_shared_ptr
311# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
312# endif
313
314# ifdef __cpp_lib_atomic_value_initialization
315# error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
316# endif
317
318# ifdef __cpp_lib_atomic_wait
319# error "__cpp_lib_atomic_wait should not be defined before c++20"
320# endif
321
322# ifdef __cpp_lib_barrier
323# error "__cpp_lib_barrier should not be defined before c++20"
324# endif
325
326# ifdef __cpp_lib_bind_back
327# error "__cpp_lib_bind_back should not be defined before c++23"
328# endif
329
330# ifdef __cpp_lib_bind_front
331# error "__cpp_lib_bind_front should not be defined before c++20"
332# endif
333
334# ifdef __cpp_lib_bit_cast
335# error "__cpp_lib_bit_cast should not be defined before c++20"
336# endif
337
338# ifdef __cpp_lib_bitops
339# error "__cpp_lib_bitops should not be defined before c++20"
340# endif
341
342# ifdef __cpp_lib_bitset
343# error "__cpp_lib_bitset should not be defined before c++26"
344# endif
345
346# ifdef __cpp_lib_bool_constant
347# error "__cpp_lib_bool_constant should not be defined before c++17"
348# endif
349
350# ifdef __cpp_lib_bounded_array_traits
351# error "__cpp_lib_bounded_array_traits should not be defined before c++20"
352# endif
353
354# ifdef __cpp_lib_boyer_moore_searcher
355# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
356# endif
357
358# ifdef __cpp_lib_byte
359# error "__cpp_lib_byte should not be defined before c++17"
360# endif
361
362# ifdef __cpp_lib_byteswap
363# error "__cpp_lib_byteswap should not be defined before c++23"
364# endif
365
366# ifdef __cpp_lib_char8_t
367# error "__cpp_lib_char8_t should not be defined before c++20"
368# endif
369
370# ifdef __cpp_lib_chrono
371# error "__cpp_lib_chrono should not be defined before c++17"
372# endif
373
374# ifdef __cpp_lib_chrono_udls
375# error "__cpp_lib_chrono_udls should not be defined before c++14"
376# endif
377
378# ifdef __cpp_lib_clamp
379# error "__cpp_lib_clamp should not be defined before c++17"
380# endif
381
382# ifdef __cpp_lib_complex_udls
383# error "__cpp_lib_complex_udls should not be defined before c++14"
384# endif
385
386# ifdef __cpp_lib_concepts
387# error "__cpp_lib_concepts should not be defined before c++20"
388# endif
389
390# ifdef __cpp_lib_constexpr_algorithms
391# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
392# endif
393
394# ifdef __cpp_lib_constexpr_bitset
395# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
396# endif
397
398# ifdef __cpp_lib_constexpr_charconv
399# error "__cpp_lib_constexpr_charconv should not be defined before c++23"
400# endif
401
402# ifdef __cpp_lib_constexpr_cmath
403# error "__cpp_lib_constexpr_cmath should not be defined before c++23"
404# endif
405
406# ifdef __cpp_lib_constexpr_complex
407# error "__cpp_lib_constexpr_complex should not be defined before c++20"
408# endif
409
410# ifdef __cpp_lib_constexpr_dynamic_alloc
411# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
412# endif
413
414# ifdef __cpp_lib_constexpr_functional
415# error "__cpp_lib_constexpr_functional should not be defined before c++20"
416# endif
417
418# ifdef __cpp_lib_constexpr_iterator
419# error "__cpp_lib_constexpr_iterator should not be defined before c++20"
420# endif
421
422# ifdef __cpp_lib_constexpr_memory
423# error "__cpp_lib_constexpr_memory should not be defined before c++20"
424# endif
425
426# ifdef __cpp_lib_constexpr_numeric
427# error "__cpp_lib_constexpr_numeric should not be defined before c++20"
428# endif
429
430# ifdef __cpp_lib_constexpr_string
431# error "__cpp_lib_constexpr_string should not be defined before c++20"
432# endif
433
434# ifdef __cpp_lib_constexpr_string_view
435# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
436# endif
437
438# ifdef __cpp_lib_constexpr_tuple
439# error "__cpp_lib_constexpr_tuple should not be defined before c++20"
440# endif
441
442# ifdef __cpp_lib_constexpr_typeinfo
443# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
444# endif
445
446# ifdef __cpp_lib_constexpr_utility
447# error "__cpp_lib_constexpr_utility should not be defined before c++20"
448# endif
449
450# ifdef __cpp_lib_constexpr_vector
451# error "__cpp_lib_constexpr_vector should not be defined before c++20"
452# endif
453
454# ifdef __cpp_lib_constrained_equality
455# error "__cpp_lib_constrained_equality should not be defined before c++26"
456# endif
457
458# ifdef __cpp_lib_copyable_function
459# error "__cpp_lib_copyable_function should not be defined before c++26"
460# endif
461
462# ifdef __cpp_lib_coroutine
463# error "__cpp_lib_coroutine should not be defined before c++20"
464# endif
465
466# ifdef __cpp_lib_debugging
467# error "__cpp_lib_debugging should not be defined before c++26"
468# endif
469
470# ifdef __cpp_lib_default_template_type_for_algorithm_values
471# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
472# endif
473
474# ifdef __cpp_lib_destroying_delete
475# error "__cpp_lib_destroying_delete should not be defined before c++20"
476# endif
477
478# ifdef __cpp_lib_enable_shared_from_this
479# error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
480# endif
481
482# ifdef __cpp_lib_endian
483# error "__cpp_lib_endian should not be defined before c++20"
484# endif
485
486# ifdef __cpp_lib_erase_if
487# error "__cpp_lib_erase_if should not be defined before c++20"
488# endif
489
490# ifdef __cpp_lib_exchange_function
491# error "__cpp_lib_exchange_function should not be defined before c++14"
492# endif
493
494# ifdef __cpp_lib_execution
495# error "__cpp_lib_execution should not be defined before c++17"
496# endif
497
498# ifdef __cpp_lib_expected
499# error "__cpp_lib_expected should not be defined before c++23"
500# endif
501
502# ifdef __cpp_lib_filesystem
503# error "__cpp_lib_filesystem should not be defined before c++17"
504# endif
505
506# ifdef __cpp_lib_format
507# error "__cpp_lib_format should not be defined before c++20"
508# endif
509
510# ifdef __cpp_lib_format_path
511# error "__cpp_lib_format_path should not be defined before c++23"
512# endif
513
514# ifdef __cpp_lib_format_ranges
515# error "__cpp_lib_format_ranges should not be defined before c++23"
516# endif
517
518# ifdef __cpp_lib_format_uchar
519# error "__cpp_lib_format_uchar should not be defined before c++20"
520# endif
521
522# ifdef __cpp_lib_formatters
523# error "__cpp_lib_formatters should not be defined before c++23"
524# endif
525
526# ifdef __cpp_lib_forward_like
527# error "__cpp_lib_forward_like should not be defined before c++23"
528# endif
529
530# ifdef __cpp_lib_freestanding_algorithm
531# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
532# endif
533
534# ifdef __cpp_lib_freestanding_array
535# error "__cpp_lib_freestanding_array should not be defined before c++26"
536# endif
537
538# ifdef __cpp_lib_freestanding_cstring
539# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
540# endif
541
542# ifdef __cpp_lib_freestanding_expected
543# error "__cpp_lib_freestanding_expected should not be defined before c++26"
544# endif
545
546# ifdef __cpp_lib_freestanding_mdspan
547# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
548# endif
549
550# ifdef __cpp_lib_freestanding_optional
551# error "__cpp_lib_freestanding_optional should not be defined before c++26"
552# endif
553
554# ifdef __cpp_lib_freestanding_string_view
555# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
556# endif
557
558# ifdef __cpp_lib_freestanding_variant
559# error "__cpp_lib_freestanding_variant should not be defined before c++26"
560# endif
561
562# ifdef __cpp_lib_fstream_native_handle
563# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
564# endif
565
566# ifdef __cpp_lib_function_ref
567# error "__cpp_lib_function_ref should not be defined before c++26"
568# endif
569
570# ifdef __cpp_lib_gcd_lcm
571# error "__cpp_lib_gcd_lcm should not be defined before c++17"
572# endif
573
574# ifdef __cpp_lib_generate_random
575# error "__cpp_lib_generate_random should not be defined before c++26"
576# endif
577
578# ifdef __cpp_lib_generic_associative_lookup
579# error "__cpp_lib_generic_associative_lookup should not be defined before c++14"
580# endif
581
582# ifdef __cpp_lib_generic_unordered_lookup
583# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
584# endif
585
586# ifdef __cpp_lib_hardware_interference_size
587# error "__cpp_lib_hardware_interference_size should not be defined before c++17"
588# endif
589
590# ifdef __cpp_lib_has_unique_object_representations
591# error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
592# endif
593
594# ifdef __cpp_lib_hazard_pointer
595# error "__cpp_lib_hazard_pointer should not be defined before c++26"
596# endif
597
598# ifdef __cpp_lib_hypot
599# error "__cpp_lib_hypot should not be defined before c++17"
600# endif
601
602# ifdef __cpp_lib_incomplete_container_elements
603# error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
604# endif
605
606# ifdef __cpp_lib_int_pow2
607# error "__cpp_lib_int_pow2 should not be defined before c++20"
608# endif
609
610# ifdef __cpp_lib_integer_comparison_functions
611# error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
612# endif
613
614# ifdef __cpp_lib_integer_sequence
615# error "__cpp_lib_integer_sequence should not be defined before c++14"
616# endif
617
618# ifdef __cpp_lib_integral_constant_callable
619# error "__cpp_lib_integral_constant_callable should not be defined before c++14"
620# endif
621
622# ifdef __cpp_lib_interpolate
623# error "__cpp_lib_interpolate should not be defined before c++20"
624# endif
625
626# ifdef __cpp_lib_invoke
627# error "__cpp_lib_invoke should not be defined before c++17"
628# endif
629
630# ifdef __cpp_lib_invoke_r
631# error "__cpp_lib_invoke_r should not be defined before c++23"
632# endif
633
634# ifdef __cpp_lib_ios_noreplace
635# error "__cpp_lib_ios_noreplace should not be defined before c++23"
636# endif
637
638# ifdef __cpp_lib_is_aggregate
639# error "__cpp_lib_is_aggregate should not be defined before c++17"
640# endif
641
642# ifdef __cpp_lib_is_constant_evaluated
643# error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
644# endif
645
646# ifdef __cpp_lib_is_final
647# error "__cpp_lib_is_final should not be defined before c++14"
648# endif
649
650# ifdef __cpp_lib_is_invocable
651# error "__cpp_lib_is_invocable should not be defined before c++17"
652# endif
653
654# ifdef __cpp_lib_is_layout_compatible
655# error "__cpp_lib_is_layout_compatible should not be defined before c++20"
656# endif
657
658# ifdef __cpp_lib_is_nothrow_convertible
659# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
660# endif
661
662# ifdef __cpp_lib_is_null_pointer
663# error "__cpp_lib_is_null_pointer should not be defined before c++14"
664# endif
665
666# ifdef __cpp_lib_is_pointer_interconvertible
667# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
668# endif
669
670# ifdef __cpp_lib_is_scoped_enum
671# error "__cpp_lib_is_scoped_enum should not be defined before c++23"
672# endif
673
674# ifdef __cpp_lib_is_swappable
675# error "__cpp_lib_is_swappable should not be defined before c++17"
676# endif
677
678# ifdef __cpp_lib_jthread
679# error "__cpp_lib_jthread should not be defined before c++20"
680# endif
681
682# ifdef __cpp_lib_latch
683# error "__cpp_lib_latch should not be defined before c++20"
684# endif
685
686# ifdef __cpp_lib_launder
687# error "__cpp_lib_launder should not be defined before c++17"
688# endif
689
690# ifdef __cpp_lib_linalg
691# error "__cpp_lib_linalg should not be defined before c++26"
692# endif
693
694# ifdef __cpp_lib_list_remove_return_type
695# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
696# endif
697
698# ifdef __cpp_lib_logical_traits
699# error "__cpp_lib_logical_traits should not be defined before c++17"
700# endif
701
702# ifdef __cpp_lib_make_from_tuple
703# error "__cpp_lib_make_from_tuple should not be defined before c++17"
704# endif
705
706# ifdef __cpp_lib_make_reverse_iterator
707# error "__cpp_lib_make_reverse_iterator should not be defined before c++14"
708# endif
709
710# ifdef __cpp_lib_make_unique
711# error "__cpp_lib_make_unique should not be defined before c++14"
712# endif
713
714# ifdef __cpp_lib_map_try_emplace
715# error "__cpp_lib_map_try_emplace should not be defined before c++17"
716# endif
717
718# ifdef __cpp_lib_math_constants
719# error "__cpp_lib_math_constants should not be defined before c++20"
720# endif
721
722# ifdef __cpp_lib_math_special_functions
723# error "__cpp_lib_math_special_functions should not be defined before c++17"
724# endif
725
726# ifdef __cpp_lib_mdspan
727# error "__cpp_lib_mdspan should not be defined before c++23"
728# endif
729
730# ifdef __cpp_lib_memory_resource
731# error "__cpp_lib_memory_resource should not be defined before c++17"
732# endif
733
734# ifdef __cpp_lib_move_iterator_concept
735# error "__cpp_lib_move_iterator_concept should not be defined before c++20"
736# endif
737
738# ifdef __cpp_lib_move_only_function
739# error "__cpp_lib_move_only_function should not be defined before c++23"
740# endif
741
742# ifdef __cpp_lib_node_extract
743# error "__cpp_lib_node_extract should not be defined before c++17"
744# endif
745
746# ifdef __cpp_lib_nonmember_container_access
747# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
748# endif
749
750# ifdef __cpp_lib_not_fn
751# error "__cpp_lib_not_fn should not be defined before c++17"
752# endif
753
754# ifdef __cpp_lib_null_iterators
755# error "__cpp_lib_null_iterators should not be defined before c++14"
756# endif
757
758# ifdef __cpp_lib_optional
759# error "__cpp_lib_optional should not be defined before c++17"
760# endif
761
762# ifdef __cpp_lib_out_ptr
763# error "__cpp_lib_out_ptr should not be defined before c++23"
764# endif
765
766# ifdef __cpp_lib_parallel_algorithm
767# error "__cpp_lib_parallel_algorithm should not be defined before c++17"
768# endif
769
770# ifdef __cpp_lib_polymorphic_allocator
771# error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
772# endif
773
774# ifdef __cpp_lib_print
775# error "__cpp_lib_print should not be defined before c++23"
776# endif
777
778# ifdef __cpp_lib_quoted_string_io
779# error "__cpp_lib_quoted_string_io should not be defined before c++14"
780# endif
781
782# ifdef __cpp_lib_ranges
783# error "__cpp_lib_ranges should not be defined before c++20"
784# endif
785
786# ifdef __cpp_lib_ranges_as_const
787# error "__cpp_lib_ranges_as_const should not be defined before c++23"
788# endif
789
790# ifdef __cpp_lib_ranges_as_rvalue
791# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
792# endif
793
794# ifdef __cpp_lib_ranges_chunk
795# error "__cpp_lib_ranges_chunk should not be defined before c++23"
796# endif
797
798# ifdef __cpp_lib_ranges_chunk_by
799# error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
800# endif
801
802# ifdef __cpp_lib_ranges_concat
803# error "__cpp_lib_ranges_concat should not be defined before c++26"
804# endif
805
806# ifdef __cpp_lib_ranges_contains
807# error "__cpp_lib_ranges_contains should not be defined before c++23"
808# endif
809
810# ifdef __cpp_lib_ranges_iota
811# error "__cpp_lib_ranges_iota should not be defined before c++23"
812# endif
813
814# ifdef __cpp_lib_ranges_join_with
815# error "__cpp_lib_ranges_join_with should not be defined before c++23"
816# endif
817
818# ifdef __cpp_lib_ranges_repeat
819# error "__cpp_lib_ranges_repeat should not be defined before c++23"
820# endif
821
822# ifdef __cpp_lib_ranges_slide
823# error "__cpp_lib_ranges_slide should not be defined before c++23"
824# endif
825
826# ifdef __cpp_lib_ranges_starts_ends_with
827# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
828# endif
829
830# ifdef __cpp_lib_ranges_to_container
831# error "__cpp_lib_ranges_to_container should not be defined before c++23"
832# endif
833
834# ifdef __cpp_lib_ranges_zip
835# error "__cpp_lib_ranges_zip should not be defined before c++23"
836# endif
837
838# ifdef __cpp_lib_ratio
839# error "__cpp_lib_ratio should not be defined before c++26"
840# endif
841
842# ifdef __cpp_lib_raw_memory_algorithms
843# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
844# endif
845
846# ifdef __cpp_lib_rcu
847# error "__cpp_lib_rcu should not be defined before c++26"
848# endif
849
850# ifdef __cpp_lib_reference_from_temporary
851# error "__cpp_lib_reference_from_temporary should not be defined before c++23"
852# endif
853
854# ifdef __cpp_lib_reference_wrapper
855# error "__cpp_lib_reference_wrapper should not be defined before c++26"
856# endif
857
858# ifdef __cpp_lib_remove_cvref
859# error "__cpp_lib_remove_cvref should not be defined before c++20"
860# endif
861
862# ifdef __cpp_lib_result_of_sfinae
863# error "__cpp_lib_result_of_sfinae should not be defined before c++14"
864# endif
865
866# ifdef __cpp_lib_robust_nonmodifying_seq_ops
867# error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14"
868# endif
869
870# ifdef __cpp_lib_sample
871# error "__cpp_lib_sample should not be defined before c++17"
872# endif
873
874# ifdef __cpp_lib_saturation_arithmetic
875# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
876# endif
877
878# ifdef __cpp_lib_scoped_lock
879# error "__cpp_lib_scoped_lock should not be defined before c++17"
880# endif
881
882# ifdef __cpp_lib_semaphore
883# error "__cpp_lib_semaphore should not be defined before c++20"
884# endif
885
886# ifdef __cpp_lib_shared_mutex
887# error "__cpp_lib_shared_mutex should not be defined before c++17"
888# endif
889
890# ifdef __cpp_lib_shared_ptr_arrays
891# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
892# endif
893
894# ifdef __cpp_lib_shared_ptr_weak_type
895# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
896# endif
897
898# ifdef __cpp_lib_shared_timed_mutex
899# error "__cpp_lib_shared_timed_mutex should not be defined before c++14"
900# endif
901
902# ifdef __cpp_lib_shift
903# error "__cpp_lib_shift should not be defined before c++20"
904# endif
905
906# ifdef __cpp_lib_smart_ptr_for_overwrite
907# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
908# endif
909
910# ifdef __cpp_lib_smart_ptr_owner_equality
911# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
912# endif
913
914# ifdef __cpp_lib_source_location
915# error "__cpp_lib_source_location should not be defined before c++20"
916# endif
917
918# ifdef __cpp_lib_span
919# error "__cpp_lib_span should not be defined before c++20"
920# endif
921
922# ifdef __cpp_lib_span_at
923# error "__cpp_lib_span_at should not be defined before c++26"
924# endif
925
926# ifdef __cpp_lib_span_initializer_list
927# error "__cpp_lib_span_initializer_list should not be defined before c++26"
928# endif
929
930# ifdef __cpp_lib_spanstream
931# error "__cpp_lib_spanstream should not be defined before c++23"
932# endif
933
934# ifdef __cpp_lib_ssize
935# error "__cpp_lib_ssize should not be defined before c++20"
936# endif
937
938# ifdef __cpp_lib_sstream_from_string_view
939# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
940# endif
941
942# ifdef __cpp_lib_stacktrace
943# error "__cpp_lib_stacktrace should not be defined before c++23"
944# endif
945
946# ifdef __cpp_lib_starts_ends_with
947# error "__cpp_lib_starts_ends_with should not be defined before c++20"
948# endif
949
950# ifdef __cpp_lib_stdatomic_h
951# error "__cpp_lib_stdatomic_h should not be defined before c++23"
952# endif
953
954# ifdef __cpp_lib_string_contains
955# error "__cpp_lib_string_contains should not be defined before c++23"
956# endif
957
958# ifdef __cpp_lib_string_resize_and_overwrite
959# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
960# endif
961
962# ifdef __cpp_lib_string_udls
963# error "__cpp_lib_string_udls should not be defined before c++14"
964# endif
965
966# ifdef __cpp_lib_string_view
967# error "__cpp_lib_string_view should not be defined before c++17"
968# endif
969
970# ifdef __cpp_lib_submdspan
971# error "__cpp_lib_submdspan should not be defined before c++26"
972# endif
973
974# ifdef __cpp_lib_syncbuf
975# error "__cpp_lib_syncbuf should not be defined before c++20"
976# endif
977
978# ifdef __cpp_lib_text_encoding
979# error "__cpp_lib_text_encoding should not be defined before c++26"
980# endif
981
982# ifdef __cpp_lib_three_way_comparison
983# error "__cpp_lib_three_way_comparison should not be defined before c++20"
984# endif
985
986# ifdef __cpp_lib_to_address
987# error "__cpp_lib_to_address should not be defined before c++20"
988# endif
989
990# ifdef __cpp_lib_to_array
991# error "__cpp_lib_to_array should not be defined before c++20"
992# endif
993
994# ifdef __cpp_lib_to_chars
995# error "__cpp_lib_to_chars should not be defined before c++17"
996# endif
997
998# ifdef __cpp_lib_to_string
999# error "__cpp_lib_to_string should not be defined before c++23"
1000# endif
1001
1002# ifdef __cpp_lib_to_underlying
1003# error "__cpp_lib_to_underlying should not be defined before c++23"
1004# endif
1005
1006# ifdef __cpp_lib_transformation_trait_aliases
1007# error "__cpp_lib_transformation_trait_aliases should not be defined before c++14"
1008# endif
1009
1010# ifdef __cpp_lib_transparent_operators
1011# error "__cpp_lib_transparent_operators should not be defined before c++14"
1012# endif
1013
1014# ifdef __cpp_lib_tuple_element_t
1015# error "__cpp_lib_tuple_element_t should not be defined before c++14"
1016# endif
1017
1018# ifdef __cpp_lib_tuple_like
1019# error "__cpp_lib_tuple_like should not be defined before c++23"
1020# endif
1021
1022# ifdef __cpp_lib_tuples_by_type
1023# error "__cpp_lib_tuples_by_type should not be defined before c++14"
1024# endif
1025
1026# ifdef __cpp_lib_type_identity
1027# error "__cpp_lib_type_identity should not be defined before c++20"
1028# endif
1029
1030# ifdef __cpp_lib_type_trait_variable_templates
1031# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
1032# endif
1033
1034# ifdef __cpp_lib_uncaught_exceptions
1035# error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
1036# endif
1037
1038# ifdef __cpp_lib_unordered_map_try_emplace
1039# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
1040# endif
1041
1042# ifdef __cpp_lib_unreachable
1043# error "__cpp_lib_unreachable should not be defined before c++23"
1044# endif
1045
1046# ifdef __cpp_lib_unwrap_ref
1047# error "__cpp_lib_unwrap_ref should not be defined before c++20"
1048# endif
1049
1050# ifdef __cpp_lib_variant
1051# error "__cpp_lib_variant should not be defined before c++17"
1052# endif
1053
1054# ifdef __cpp_lib_void_t
1055# error "__cpp_lib_void_t should not be defined before c++17"
1056# endif
1057
1058# ifdef __cpp_lib_within_lifetime
1059# error "__cpp_lib_within_lifetime should not be defined before c++26"
1060# endif
1061
1062#elif TEST_STD_VER == 14
1063
1064# ifdef __cpp_lib_adaptor_iterator_pair_constructor
1065# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
1066# endif
1067
1068# ifdef __cpp_lib_addressof_constexpr
1069# error "__cpp_lib_addressof_constexpr should not be defined before c++17"
1070# endif
1071
1072# ifdef __cpp_lib_allocate_at_least
1073# error "__cpp_lib_allocate_at_least should not be defined before c++23"
1074# endif
1075
1076# ifdef __cpp_lib_allocator_traits_is_always_equal
1077# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
1078# endif
1079
1080# ifdef __cpp_lib_any
1081# error "__cpp_lib_any should not be defined before c++17"
1082# endif
1083
1084# ifdef __cpp_lib_apply
1085# error "__cpp_lib_apply should not be defined before c++17"
1086# endif
1087
1088# ifdef __cpp_lib_array_constexpr
1089# error "__cpp_lib_array_constexpr should not be defined before c++17"
1090# endif
1091
1092# ifdef __cpp_lib_as_const
1093# error "__cpp_lib_as_const should not be defined before c++17"
1094# endif
1095
1096# ifdef __cpp_lib_associative_heterogeneous_erasure
1097# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
1098# endif
1099
1100# ifdef __cpp_lib_associative_heterogeneous_insertion
1101# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
1102# endif
1103
1104# ifdef __cpp_lib_assume_aligned
1105# error "__cpp_lib_assume_aligned should not be defined before c++20"
1106# endif
1107
1108# ifdef __cpp_lib_atomic_flag_test
1109# error "__cpp_lib_atomic_flag_test should not be defined before c++20"
1110# endif
1111
1112# ifdef __cpp_lib_atomic_float
1113# error "__cpp_lib_atomic_float should not be defined before c++20"
1114# endif
1115
1116# ifdef __cpp_lib_atomic_is_always_lock_free
1117# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
1118# endif
1119
1120# ifdef __cpp_lib_atomic_lock_free_type_aliases
1121# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
1122# endif
1123
1124# ifdef __cpp_lib_atomic_min_max
1125# error "__cpp_lib_atomic_min_max should not be defined before c++26"
1126# endif
1127
1128# ifdef __cpp_lib_atomic_ref
1129# error "__cpp_lib_atomic_ref should not be defined before c++20"
1130# endif
1131
1132# ifdef __cpp_lib_atomic_shared_ptr
1133# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
1134# endif
1135
1136# ifdef __cpp_lib_atomic_value_initialization
1137# error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
1138# endif
1139
1140# ifdef __cpp_lib_atomic_wait
1141# error "__cpp_lib_atomic_wait should not be defined before c++20"
1142# endif
1143
1144# ifdef __cpp_lib_barrier
1145# error "__cpp_lib_barrier should not be defined before c++20"
1146# endif
1147
1148# ifdef __cpp_lib_bind_back
1149# error "__cpp_lib_bind_back should not be defined before c++23"
1150# endif
1151
1152# ifdef __cpp_lib_bind_front
1153# error "__cpp_lib_bind_front should not be defined before c++20"
1154# endif
1155
1156# ifdef __cpp_lib_bit_cast
1157# error "__cpp_lib_bit_cast should not be defined before c++20"
1158# endif
1159
1160# ifdef __cpp_lib_bitops
1161# error "__cpp_lib_bitops should not be defined before c++20"
1162# endif
1163
1164# ifdef __cpp_lib_bitset
1165# error "__cpp_lib_bitset should not be defined before c++26"
1166# endif
1167
1168# ifdef __cpp_lib_bool_constant
1169# error "__cpp_lib_bool_constant should not be defined before c++17"
1170# endif
1171
1172# ifdef __cpp_lib_bounded_array_traits
1173# error "__cpp_lib_bounded_array_traits should not be defined before c++20"
1174# endif
1175
1176# ifdef __cpp_lib_boyer_moore_searcher
1177# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
1178# endif
1179
1180# ifdef __cpp_lib_byte
1181# error "__cpp_lib_byte should not be defined before c++17"
1182# endif
1183
1184# ifdef __cpp_lib_byteswap
1185# error "__cpp_lib_byteswap should not be defined before c++23"
1186# endif
1187
1188# ifdef __cpp_lib_char8_t
1189# error "__cpp_lib_char8_t should not be defined before c++20"
1190# endif
1191
1192# ifdef __cpp_lib_chrono
1193# error "__cpp_lib_chrono should not be defined before c++17"
1194# endif
1195
1196# ifndef __cpp_lib_chrono_udls
1197# error "__cpp_lib_chrono_udls should be defined in c++14"
1198# endif
1199# if __cpp_lib_chrono_udls != 201304L
1200# error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
1201# endif
1202
1203# ifdef __cpp_lib_clamp
1204# error "__cpp_lib_clamp should not be defined before c++17"
1205# endif
1206
1207# ifndef __cpp_lib_complex_udls
1208# error "__cpp_lib_complex_udls should be defined in c++14"
1209# endif
1210# if __cpp_lib_complex_udls != 201309L
1211# error "__cpp_lib_complex_udls should have the value 201309L in c++14"
1212# endif
1213
1214# ifdef __cpp_lib_concepts
1215# error "__cpp_lib_concepts should not be defined before c++20"
1216# endif
1217
1218# ifdef __cpp_lib_constexpr_algorithms
1219# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
1220# endif
1221
1222# ifdef __cpp_lib_constexpr_bitset
1223# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
1224# endif
1225
1226# ifdef __cpp_lib_constexpr_charconv
1227# error "__cpp_lib_constexpr_charconv should not be defined before c++23"
1228# endif
1229
1230# ifdef __cpp_lib_constexpr_cmath
1231# error "__cpp_lib_constexpr_cmath should not be defined before c++23"
1232# endif
1233
1234# ifdef __cpp_lib_constexpr_complex
1235# error "__cpp_lib_constexpr_complex should not be defined before c++20"
1236# endif
1237
1238# ifdef __cpp_lib_constexpr_dynamic_alloc
1239# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
1240# endif
1241
1242# ifdef __cpp_lib_constexpr_functional
1243# error "__cpp_lib_constexpr_functional should not be defined before c++20"
1244# endif
1245
1246# ifdef __cpp_lib_constexpr_iterator
1247# error "__cpp_lib_constexpr_iterator should not be defined before c++20"
1248# endif
1249
1250# ifdef __cpp_lib_constexpr_memory
1251# error "__cpp_lib_constexpr_memory should not be defined before c++20"
1252# endif
1253
1254# ifdef __cpp_lib_constexpr_numeric
1255# error "__cpp_lib_constexpr_numeric should not be defined before c++20"
1256# endif
1257
1258# ifdef __cpp_lib_constexpr_string
1259# error "__cpp_lib_constexpr_string should not be defined before c++20"
1260# endif
1261
1262# ifdef __cpp_lib_constexpr_string_view
1263# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
1264# endif
1265
1266# ifdef __cpp_lib_constexpr_tuple
1267# error "__cpp_lib_constexpr_tuple should not be defined before c++20"
1268# endif
1269
1270# ifdef __cpp_lib_constexpr_typeinfo
1271# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
1272# endif
1273
1274# ifdef __cpp_lib_constexpr_utility
1275# error "__cpp_lib_constexpr_utility should not be defined before c++20"
1276# endif
1277
1278# ifdef __cpp_lib_constexpr_vector
1279# error "__cpp_lib_constexpr_vector should not be defined before c++20"
1280# endif
1281
1282# ifdef __cpp_lib_constrained_equality
1283# error "__cpp_lib_constrained_equality should not be defined before c++26"
1284# endif
1285
1286# ifdef __cpp_lib_copyable_function
1287# error "__cpp_lib_copyable_function should not be defined before c++26"
1288# endif
1289
1290# ifdef __cpp_lib_coroutine
1291# error "__cpp_lib_coroutine should not be defined before c++20"
1292# endif
1293
1294# ifdef __cpp_lib_debugging
1295# error "__cpp_lib_debugging should not be defined before c++26"
1296# endif
1297
1298# ifdef __cpp_lib_default_template_type_for_algorithm_values
1299# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
1300# endif
1301
1302# ifdef __cpp_lib_destroying_delete
1303# error "__cpp_lib_destroying_delete should not be defined before c++20"
1304# endif
1305
1306# ifdef __cpp_lib_enable_shared_from_this
1307# error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
1308# endif
1309
1310# ifdef __cpp_lib_endian
1311# error "__cpp_lib_endian should not be defined before c++20"
1312# endif
1313
1314# ifdef __cpp_lib_erase_if
1315# error "__cpp_lib_erase_if should not be defined before c++20"
1316# endif
1317
1318# ifndef __cpp_lib_exchange_function
1319# error "__cpp_lib_exchange_function should be defined in c++14"
1320# endif
1321# if __cpp_lib_exchange_function != 201304L
1322# error "__cpp_lib_exchange_function should have the value 201304L in c++14"
1323# endif
1324
1325# ifdef __cpp_lib_execution
1326# error "__cpp_lib_execution should not be defined before c++17"
1327# endif
1328
1329# ifdef __cpp_lib_expected
1330# error "__cpp_lib_expected should not be defined before c++23"
1331# endif
1332
1333# ifdef __cpp_lib_filesystem
1334# error "__cpp_lib_filesystem should not be defined before c++17"
1335# endif
1336
1337# ifdef __cpp_lib_format
1338# error "__cpp_lib_format should not be defined before c++20"
1339# endif
1340
1341# ifdef __cpp_lib_format_path
1342# error "__cpp_lib_format_path should not be defined before c++23"
1343# endif
1344
1345# ifdef __cpp_lib_format_ranges
1346# error "__cpp_lib_format_ranges should not be defined before c++23"
1347# endif
1348
1349# ifdef __cpp_lib_format_uchar
1350# error "__cpp_lib_format_uchar should not be defined before c++20"
1351# endif
1352
1353# ifdef __cpp_lib_formatters
1354# error "__cpp_lib_formatters should not be defined before c++23"
1355# endif
1356
1357# ifdef __cpp_lib_forward_like
1358# error "__cpp_lib_forward_like should not be defined before c++23"
1359# endif
1360
1361# ifdef __cpp_lib_freestanding_algorithm
1362# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
1363# endif
1364
1365# ifdef __cpp_lib_freestanding_array
1366# error "__cpp_lib_freestanding_array should not be defined before c++26"
1367# endif
1368
1369# ifdef __cpp_lib_freestanding_cstring
1370# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
1371# endif
1372
1373# ifdef __cpp_lib_freestanding_expected
1374# error "__cpp_lib_freestanding_expected should not be defined before c++26"
1375# endif
1376
1377# ifdef __cpp_lib_freestanding_mdspan
1378# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
1379# endif
1380
1381# ifdef __cpp_lib_freestanding_optional
1382# error "__cpp_lib_freestanding_optional should not be defined before c++26"
1383# endif
1384
1385# ifdef __cpp_lib_freestanding_string_view
1386# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
1387# endif
1388
1389# ifdef __cpp_lib_freestanding_variant
1390# error "__cpp_lib_freestanding_variant should not be defined before c++26"
1391# endif
1392
1393# ifdef __cpp_lib_fstream_native_handle
1394# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
1395# endif
1396
1397# ifdef __cpp_lib_function_ref
1398# error "__cpp_lib_function_ref should not be defined before c++26"
1399# endif
1400
1401# ifdef __cpp_lib_gcd_lcm
1402# error "__cpp_lib_gcd_lcm should not be defined before c++17"
1403# endif
1404
1405# ifdef __cpp_lib_generate_random
1406# error "__cpp_lib_generate_random should not be defined before c++26"
1407# endif
1408
1409# ifndef __cpp_lib_generic_associative_lookup
1410# error "__cpp_lib_generic_associative_lookup should be defined in c++14"
1411# endif
1412# if __cpp_lib_generic_associative_lookup != 201304L
1413# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14"
1414# endif
1415
1416# ifdef __cpp_lib_generic_unordered_lookup
1417# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
1418# endif
1419
1420# ifdef __cpp_lib_hardware_interference_size
1421# error "__cpp_lib_hardware_interference_size should not be defined before c++17"
1422# endif
1423
1424# ifdef __cpp_lib_has_unique_object_representations
1425# error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
1426# endif
1427
1428# ifdef __cpp_lib_hazard_pointer
1429# error "__cpp_lib_hazard_pointer should not be defined before c++26"
1430# endif
1431
1432# ifdef __cpp_lib_hypot
1433# error "__cpp_lib_hypot should not be defined before c++17"
1434# endif
1435
1436# ifdef __cpp_lib_incomplete_container_elements
1437# error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
1438# endif
1439
1440# ifdef __cpp_lib_int_pow2
1441# error "__cpp_lib_int_pow2 should not be defined before c++20"
1442# endif
1443
1444# ifdef __cpp_lib_integer_comparison_functions
1445# error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
1446# endif
1447
1448# ifndef __cpp_lib_integer_sequence
1449# error "__cpp_lib_integer_sequence should be defined in c++14"
1450# endif
1451# if __cpp_lib_integer_sequence != 201304L
1452# error "__cpp_lib_integer_sequence should have the value 201304L in c++14"
1453# endif
1454
1455# ifndef __cpp_lib_integral_constant_callable
1456# error "__cpp_lib_integral_constant_callable should be defined in c++14"
1457# endif
1458# if __cpp_lib_integral_constant_callable != 201304L
1459# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14"
1460# endif
1461
1462# ifdef __cpp_lib_interpolate
1463# error "__cpp_lib_interpolate should not be defined before c++20"
1464# endif
1465
1466# ifdef __cpp_lib_invoke
1467# error "__cpp_lib_invoke should not be defined before c++17"
1468# endif
1469
1470# ifdef __cpp_lib_invoke_r
1471# error "__cpp_lib_invoke_r should not be defined before c++23"
1472# endif
1473
1474# ifdef __cpp_lib_ios_noreplace
1475# error "__cpp_lib_ios_noreplace should not be defined before c++23"
1476# endif
1477
1478# ifdef __cpp_lib_is_aggregate
1479# error "__cpp_lib_is_aggregate should not be defined before c++17"
1480# endif
1481
1482# ifdef __cpp_lib_is_constant_evaluated
1483# error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
1484# endif
1485
1486# ifndef __cpp_lib_is_final
1487# error "__cpp_lib_is_final should be defined in c++14"
1488# endif
1489# if __cpp_lib_is_final != 201402L
1490# error "__cpp_lib_is_final should have the value 201402L in c++14"
1491# endif
1492
1493# ifdef __cpp_lib_is_invocable
1494# error "__cpp_lib_is_invocable should not be defined before c++17"
1495# endif
1496
1497# ifdef __cpp_lib_is_layout_compatible
1498# error "__cpp_lib_is_layout_compatible should not be defined before c++20"
1499# endif
1500
1501# ifdef __cpp_lib_is_nothrow_convertible
1502# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
1503# endif
1504
1505# ifndef __cpp_lib_is_null_pointer
1506# error "__cpp_lib_is_null_pointer should be defined in c++14"
1507# endif
1508# if __cpp_lib_is_null_pointer != 201309L
1509# error "__cpp_lib_is_null_pointer should have the value 201309L in c++14"
1510# endif
1511
1512# ifdef __cpp_lib_is_pointer_interconvertible
1513# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
1514# endif
1515
1516# ifdef __cpp_lib_is_scoped_enum
1517# error "__cpp_lib_is_scoped_enum should not be defined before c++23"
1518# endif
1519
1520# ifdef __cpp_lib_is_swappable
1521# error "__cpp_lib_is_swappable should not be defined before c++17"
1522# endif
1523
1524# ifdef __cpp_lib_jthread
1525# error "__cpp_lib_jthread should not be defined before c++20"
1526# endif
1527
1528# ifdef __cpp_lib_latch
1529# error "__cpp_lib_latch should not be defined before c++20"
1530# endif
1531
1532# ifdef __cpp_lib_launder
1533# error "__cpp_lib_launder should not be defined before c++17"
1534# endif
1535
1536# ifdef __cpp_lib_linalg
1537# error "__cpp_lib_linalg should not be defined before c++26"
1538# endif
1539
1540# ifdef __cpp_lib_list_remove_return_type
1541# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
1542# endif
1543
1544# ifdef __cpp_lib_logical_traits
1545# error "__cpp_lib_logical_traits should not be defined before c++17"
1546# endif
1547
1548# ifdef __cpp_lib_make_from_tuple
1549# error "__cpp_lib_make_from_tuple should not be defined before c++17"
1550# endif
1551
1552# ifndef __cpp_lib_make_reverse_iterator
1553# error "__cpp_lib_make_reverse_iterator should be defined in c++14"
1554# endif
1555# if __cpp_lib_make_reverse_iterator != 201402L
1556# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14"
1557# endif
1558
1559# ifndef __cpp_lib_make_unique
1560# error "__cpp_lib_make_unique should be defined in c++14"
1561# endif
1562# if __cpp_lib_make_unique != 201304L
1563# error "__cpp_lib_make_unique should have the value 201304L in c++14"
1564# endif
1565
1566# ifdef __cpp_lib_map_try_emplace
1567# error "__cpp_lib_map_try_emplace should not be defined before c++17"
1568# endif
1569
1570# ifdef __cpp_lib_math_constants
1571# error "__cpp_lib_math_constants should not be defined before c++20"
1572# endif
1573
1574# ifdef __cpp_lib_math_special_functions
1575# error "__cpp_lib_math_special_functions should not be defined before c++17"
1576# endif
1577
1578# ifdef __cpp_lib_mdspan
1579# error "__cpp_lib_mdspan should not be defined before c++23"
1580# endif
1581
1582# ifdef __cpp_lib_memory_resource
1583# error "__cpp_lib_memory_resource should not be defined before c++17"
1584# endif
1585
1586# ifdef __cpp_lib_move_iterator_concept
1587# error "__cpp_lib_move_iterator_concept should not be defined before c++20"
1588# endif
1589
1590# ifdef __cpp_lib_move_only_function
1591# error "__cpp_lib_move_only_function should not be defined before c++23"
1592# endif
1593
1594# ifdef __cpp_lib_node_extract
1595# error "__cpp_lib_node_extract should not be defined before c++17"
1596# endif
1597
1598# ifdef __cpp_lib_nonmember_container_access
1599# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
1600# endif
1601
1602# ifdef __cpp_lib_not_fn
1603# error "__cpp_lib_not_fn should not be defined before c++17"
1604# endif
1605
1606# ifndef __cpp_lib_null_iterators
1607# error "__cpp_lib_null_iterators should be defined in c++14"
1608# endif
1609# if __cpp_lib_null_iterators != 201304L
1610# error "__cpp_lib_null_iterators should have the value 201304L in c++14"
1611# endif
1612
1613# ifdef __cpp_lib_optional
1614# error "__cpp_lib_optional should not be defined before c++17"
1615# endif
1616
1617# ifdef __cpp_lib_out_ptr
1618# error "__cpp_lib_out_ptr should not be defined before c++23"
1619# endif
1620
1621# ifdef __cpp_lib_parallel_algorithm
1622# error "__cpp_lib_parallel_algorithm should not be defined before c++17"
1623# endif
1624
1625# ifdef __cpp_lib_polymorphic_allocator
1626# error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
1627# endif
1628
1629# ifdef __cpp_lib_print
1630# error "__cpp_lib_print should not be defined before c++23"
1631# endif
1632
1633# if !defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)
1634# ifndef __cpp_lib_quoted_string_io
1635# error "__cpp_lib_quoted_string_io should be defined in c++14"
1636# endif
1637# if __cpp_lib_quoted_string_io != 201304L
1638# error "__cpp_lib_quoted_string_io should have the value 201304L in c++14"
1639# endif
1640# else
1641# ifdef __cpp_lib_quoted_string_io
1642# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)' is not met!"
1643# endif
1644# endif
1645
1646# ifdef __cpp_lib_ranges
1647# error "__cpp_lib_ranges should not be defined before c++20"
1648# endif
1649
1650# ifdef __cpp_lib_ranges_as_const
1651# error "__cpp_lib_ranges_as_const should not be defined before c++23"
1652# endif
1653
1654# ifdef __cpp_lib_ranges_as_rvalue
1655# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
1656# endif
1657
1658# ifdef __cpp_lib_ranges_chunk
1659# error "__cpp_lib_ranges_chunk should not be defined before c++23"
1660# endif
1661
1662# ifdef __cpp_lib_ranges_chunk_by
1663# error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
1664# endif
1665
1666# ifdef __cpp_lib_ranges_concat
1667# error "__cpp_lib_ranges_concat should not be defined before c++26"
1668# endif
1669
1670# ifdef __cpp_lib_ranges_contains
1671# error "__cpp_lib_ranges_contains should not be defined before c++23"
1672# endif
1673
1674# ifdef __cpp_lib_ranges_iota
1675# error "__cpp_lib_ranges_iota should not be defined before c++23"
1676# endif
1677
1678# ifdef __cpp_lib_ranges_join_with
1679# error "__cpp_lib_ranges_join_with should not be defined before c++23"
1680# endif
1681
1682# ifdef __cpp_lib_ranges_repeat
1683# error "__cpp_lib_ranges_repeat should not be defined before c++23"
1684# endif
1685
1686# ifdef __cpp_lib_ranges_slide
1687# error "__cpp_lib_ranges_slide should not be defined before c++23"
1688# endif
1689
1690# ifdef __cpp_lib_ranges_starts_ends_with
1691# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
1692# endif
1693
1694# ifdef __cpp_lib_ranges_to_container
1695# error "__cpp_lib_ranges_to_container should not be defined before c++23"
1696# endif
1697
1698# ifdef __cpp_lib_ranges_zip
1699# error "__cpp_lib_ranges_zip should not be defined before c++23"
1700# endif
1701
1702# ifdef __cpp_lib_ratio
1703# error "__cpp_lib_ratio should not be defined before c++26"
1704# endif
1705
1706# ifdef __cpp_lib_raw_memory_algorithms
1707# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
1708# endif
1709
1710# ifdef __cpp_lib_rcu
1711# error "__cpp_lib_rcu should not be defined before c++26"
1712# endif
1713
1714# ifdef __cpp_lib_reference_from_temporary
1715# error "__cpp_lib_reference_from_temporary should not be defined before c++23"
1716# endif
1717
1718# ifdef __cpp_lib_reference_wrapper
1719# error "__cpp_lib_reference_wrapper should not be defined before c++26"
1720# endif
1721
1722# ifdef __cpp_lib_remove_cvref
1723# error "__cpp_lib_remove_cvref should not be defined before c++20"
1724# endif
1725
1726# ifndef __cpp_lib_result_of_sfinae
1727# error "__cpp_lib_result_of_sfinae should be defined in c++14"
1728# endif
1729# if __cpp_lib_result_of_sfinae != 201210L
1730# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14"
1731# endif
1732
1733# ifndef __cpp_lib_robust_nonmodifying_seq_ops
1734# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14"
1735# endif
1736# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
1737# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14"
1738# endif
1739
1740# ifdef __cpp_lib_sample
1741# error "__cpp_lib_sample should not be defined before c++17"
1742# endif
1743
1744# ifdef __cpp_lib_saturation_arithmetic
1745# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
1746# endif
1747
1748# ifdef __cpp_lib_scoped_lock
1749# error "__cpp_lib_scoped_lock should not be defined before c++17"
1750# endif
1751
1752# ifdef __cpp_lib_semaphore
1753# error "__cpp_lib_semaphore should not be defined before c++20"
1754# endif
1755
1756# ifdef __cpp_lib_shared_mutex
1757# error "__cpp_lib_shared_mutex should not be defined before c++17"
1758# endif
1759
1760# ifdef __cpp_lib_shared_ptr_arrays
1761# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
1762# endif
1763
1764# ifdef __cpp_lib_shared_ptr_weak_type
1765# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
1766# endif
1767
1768# if !defined(_LIBCPP_HAS_NO_THREADS)
1769# ifndef __cpp_lib_shared_timed_mutex
1770# error "__cpp_lib_shared_timed_mutex should be defined in c++14"
1771# endif
1772# if __cpp_lib_shared_timed_mutex != 201402L
1773# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14"
1774# endif
1775# else
1776# ifdef __cpp_lib_shared_timed_mutex
1777# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
1778# endif
1779# endif
1780
1781# ifdef __cpp_lib_shift
1782# error "__cpp_lib_shift should not be defined before c++20"
1783# endif
1784
1785# ifdef __cpp_lib_smart_ptr_for_overwrite
1786# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
1787# endif
1788
1789# ifdef __cpp_lib_smart_ptr_owner_equality
1790# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
1791# endif
1792
1793# ifdef __cpp_lib_source_location
1794# error "__cpp_lib_source_location should not be defined before c++20"
1795# endif
1796
1797# ifdef __cpp_lib_span
1798# error "__cpp_lib_span should not be defined before c++20"
1799# endif
1800
1801# ifdef __cpp_lib_span_at
1802# error "__cpp_lib_span_at should not be defined before c++26"
1803# endif
1804
1805# ifdef __cpp_lib_span_initializer_list
1806# error "__cpp_lib_span_initializer_list should not be defined before c++26"
1807# endif
1808
1809# ifdef __cpp_lib_spanstream
1810# error "__cpp_lib_spanstream should not be defined before c++23"
1811# endif
1812
1813# ifdef __cpp_lib_ssize
1814# error "__cpp_lib_ssize should not be defined before c++20"
1815# endif
1816
1817# ifdef __cpp_lib_sstream_from_string_view
1818# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
1819# endif
1820
1821# ifdef __cpp_lib_stacktrace
1822# error "__cpp_lib_stacktrace should not be defined before c++23"
1823# endif
1824
1825# ifdef __cpp_lib_starts_ends_with
1826# error "__cpp_lib_starts_ends_with should not be defined before c++20"
1827# endif
1828
1829# ifdef __cpp_lib_stdatomic_h
1830# error "__cpp_lib_stdatomic_h should not be defined before c++23"
1831# endif
1832
1833# ifdef __cpp_lib_string_contains
1834# error "__cpp_lib_string_contains should not be defined before c++23"
1835# endif
1836
1837# ifdef __cpp_lib_string_resize_and_overwrite
1838# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
1839# endif
1840
1841# ifndef __cpp_lib_string_udls
1842# error "__cpp_lib_string_udls should be defined in c++14"
1843# endif
1844# if __cpp_lib_string_udls != 201304L
1845# error "__cpp_lib_string_udls should have the value 201304L in c++14"
1846# endif
1847
1848# ifdef __cpp_lib_string_view
1849# error "__cpp_lib_string_view should not be defined before c++17"
1850# endif
1851
1852# ifdef __cpp_lib_submdspan
1853# error "__cpp_lib_submdspan should not be defined before c++26"
1854# endif
1855
1856# ifdef __cpp_lib_syncbuf
1857# error "__cpp_lib_syncbuf should not be defined before c++20"
1858# endif
1859
1860# ifdef __cpp_lib_text_encoding
1861# error "__cpp_lib_text_encoding should not be defined before c++26"
1862# endif
1863
1864# ifdef __cpp_lib_three_way_comparison
1865# error "__cpp_lib_three_way_comparison should not be defined before c++20"
1866# endif
1867
1868# ifdef __cpp_lib_to_address
1869# error "__cpp_lib_to_address should not be defined before c++20"
1870# endif
1871
1872# ifdef __cpp_lib_to_array
1873# error "__cpp_lib_to_array should not be defined before c++20"
1874# endif
1875
1876# ifdef __cpp_lib_to_chars
1877# error "__cpp_lib_to_chars should not be defined before c++17"
1878# endif
1879
1880# ifdef __cpp_lib_to_string
1881# error "__cpp_lib_to_string should not be defined before c++23"
1882# endif
1883
1884# ifdef __cpp_lib_to_underlying
1885# error "__cpp_lib_to_underlying should not be defined before c++23"
1886# endif
1887
1888# ifndef __cpp_lib_transformation_trait_aliases
1889# error "__cpp_lib_transformation_trait_aliases should be defined in c++14"
1890# endif
1891# if __cpp_lib_transformation_trait_aliases != 201304L
1892# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14"
1893# endif
1894
1895# ifndef __cpp_lib_transparent_operators
1896# error "__cpp_lib_transparent_operators should be defined in c++14"
1897# endif
1898# if __cpp_lib_transparent_operators != 201210L
1899# error "__cpp_lib_transparent_operators should have the value 201210L in c++14"
1900# endif
1901
1902# ifndef __cpp_lib_tuple_element_t
1903# error "__cpp_lib_tuple_element_t should be defined in c++14"
1904# endif
1905# if __cpp_lib_tuple_element_t != 201402L
1906# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14"
1907# endif
1908
1909# ifdef __cpp_lib_tuple_like
1910# error "__cpp_lib_tuple_like should not be defined before c++23"
1911# endif
1912
1913# ifndef __cpp_lib_tuples_by_type
1914# error "__cpp_lib_tuples_by_type should be defined in c++14"
1915# endif
1916# if __cpp_lib_tuples_by_type != 201304L
1917# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14"
1918# endif
1919
1920# ifdef __cpp_lib_type_identity
1921# error "__cpp_lib_type_identity should not be defined before c++20"
1922# endif
1923
1924# ifdef __cpp_lib_type_trait_variable_templates
1925# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
1926# endif
1927
1928# ifdef __cpp_lib_uncaught_exceptions
1929# error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
1930# endif
1931
1932# ifdef __cpp_lib_unordered_map_try_emplace
1933# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
1934# endif
1935
1936# ifdef __cpp_lib_unreachable
1937# error "__cpp_lib_unreachable should not be defined before c++23"
1938# endif
1939
1940# ifdef __cpp_lib_unwrap_ref
1941# error "__cpp_lib_unwrap_ref should not be defined before c++20"
1942# endif
1943
1944# ifdef __cpp_lib_variant
1945# error "__cpp_lib_variant should not be defined before c++17"
1946# endif
1947
1948# ifdef __cpp_lib_void_t
1949# error "__cpp_lib_void_t should not be defined before c++17"
1950# endif
1951
1952# ifdef __cpp_lib_within_lifetime
1953# error "__cpp_lib_within_lifetime should not be defined before c++26"
1954# endif
1955
1956#elif TEST_STD_VER == 17
1957
1958# ifdef __cpp_lib_adaptor_iterator_pair_constructor
1959# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
1960# endif
1961
1962# ifndef __cpp_lib_addressof_constexpr
1963# error "__cpp_lib_addressof_constexpr should be defined in c++17"
1964# endif
1965# if __cpp_lib_addressof_constexpr != 201603L
1966# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17"
1967# endif
1968
1969# ifdef __cpp_lib_allocate_at_least
1970# error "__cpp_lib_allocate_at_least should not be defined before c++23"
1971# endif
1972
1973# ifndef __cpp_lib_allocator_traits_is_always_equal
1974# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"
1975# endif
1976# if __cpp_lib_allocator_traits_is_always_equal != 201411L
1977# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
1978# endif
1979
1980# ifndef __cpp_lib_any
1981# error "__cpp_lib_any should be defined in c++17"
1982# endif
1983# if __cpp_lib_any != 201606L
1984# error "__cpp_lib_any should have the value 201606L in c++17"
1985# endif
1986
1987# ifndef __cpp_lib_apply
1988# error "__cpp_lib_apply should be defined in c++17"
1989# endif
1990# if __cpp_lib_apply != 201603L
1991# error "__cpp_lib_apply should have the value 201603L in c++17"
1992# endif
1993
1994# ifndef __cpp_lib_array_constexpr
1995# error "__cpp_lib_array_constexpr should be defined in c++17"
1996# endif
1997# if __cpp_lib_array_constexpr != 201603L
1998# error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
1999# endif
2000
2001# ifndef __cpp_lib_as_const
2002# error "__cpp_lib_as_const should be defined in c++17"
2003# endif
2004# if __cpp_lib_as_const != 201510L
2005# error "__cpp_lib_as_const should have the value 201510L in c++17"
2006# endif
2007
2008# ifdef __cpp_lib_associative_heterogeneous_erasure
2009# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
2010# endif
2011
2012# ifdef __cpp_lib_associative_heterogeneous_insertion
2013# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
2014# endif
2015
2016# ifdef __cpp_lib_assume_aligned
2017# error "__cpp_lib_assume_aligned should not be defined before c++20"
2018# endif
2019
2020# ifdef __cpp_lib_atomic_flag_test
2021# error "__cpp_lib_atomic_flag_test should not be defined before c++20"
2022# endif
2023
2024# ifdef __cpp_lib_atomic_float
2025# error "__cpp_lib_atomic_float should not be defined before c++20"
2026# endif
2027
2028# ifndef __cpp_lib_atomic_is_always_lock_free
2029# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17"
2030# endif
2031# if __cpp_lib_atomic_is_always_lock_free != 201603L
2032# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17"
2033# endif
2034
2035# ifdef __cpp_lib_atomic_lock_free_type_aliases
2036# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
2037# endif
2038
2039# ifdef __cpp_lib_atomic_min_max
2040# error "__cpp_lib_atomic_min_max should not be defined before c++26"
2041# endif
2042
2043# ifdef __cpp_lib_atomic_ref
2044# error "__cpp_lib_atomic_ref should not be defined before c++20"
2045# endif
2046
2047# ifdef __cpp_lib_atomic_shared_ptr
2048# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
2049# endif
2050
2051# ifdef __cpp_lib_atomic_value_initialization
2052# error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
2053# endif
2054
2055# ifdef __cpp_lib_atomic_wait
2056# error "__cpp_lib_atomic_wait should not be defined before c++20"
2057# endif
2058
2059# ifdef __cpp_lib_barrier
2060# error "__cpp_lib_barrier should not be defined before c++20"
2061# endif
2062
2063# ifdef __cpp_lib_bind_back
2064# error "__cpp_lib_bind_back should not be defined before c++23"
2065# endif
2066
2067# ifdef __cpp_lib_bind_front
2068# error "__cpp_lib_bind_front should not be defined before c++20"
2069# endif
2070
2071# ifdef __cpp_lib_bit_cast
2072# error "__cpp_lib_bit_cast should not be defined before c++20"
2073# endif
2074
2075# ifdef __cpp_lib_bitops
2076# error "__cpp_lib_bitops should not be defined before c++20"
2077# endif
2078
2079# ifdef __cpp_lib_bitset
2080# error "__cpp_lib_bitset should not be defined before c++26"
2081# endif
2082
2083# ifndef __cpp_lib_bool_constant
2084# error "__cpp_lib_bool_constant should be defined in c++17"
2085# endif
2086# if __cpp_lib_bool_constant != 201505L
2087# error "__cpp_lib_bool_constant should have the value 201505L in c++17"
2088# endif
2089
2090# ifdef __cpp_lib_bounded_array_traits
2091# error "__cpp_lib_bounded_array_traits should not be defined before c++20"
2092# endif
2093
2094# ifndef __cpp_lib_boyer_moore_searcher
2095# error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
2096# endif
2097# if __cpp_lib_boyer_moore_searcher != 201603L
2098# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
2099# endif
2100
2101# ifndef __cpp_lib_byte
2102# error "__cpp_lib_byte should be defined in c++17"
2103# endif
2104# if __cpp_lib_byte != 201603L
2105# error "__cpp_lib_byte should have the value 201603L in c++17"
2106# endif
2107
2108# ifdef __cpp_lib_byteswap
2109# error "__cpp_lib_byteswap should not be defined before c++23"
2110# endif
2111
2112# ifdef __cpp_lib_char8_t
2113# error "__cpp_lib_char8_t should not be defined before c++20"
2114# endif
2115
2116# ifndef __cpp_lib_chrono
2117# error "__cpp_lib_chrono should be defined in c++17"
2118# endif
2119# if __cpp_lib_chrono != 201611L
2120# error "__cpp_lib_chrono should have the value 201611L in c++17"
2121# endif
2122
2123# ifndef __cpp_lib_chrono_udls
2124# error "__cpp_lib_chrono_udls should be defined in c++17"
2125# endif
2126# if __cpp_lib_chrono_udls != 201304L
2127# error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
2128# endif
2129
2130# ifndef __cpp_lib_clamp
2131# error "__cpp_lib_clamp should be defined in c++17"
2132# endif
2133# if __cpp_lib_clamp != 201603L
2134# error "__cpp_lib_clamp should have the value 201603L in c++17"
2135# endif
2136
2137# ifndef __cpp_lib_complex_udls
2138# error "__cpp_lib_complex_udls should be defined in c++17"
2139# endif
2140# if __cpp_lib_complex_udls != 201309L
2141# error "__cpp_lib_complex_udls should have the value 201309L in c++17"
2142# endif
2143
2144# ifdef __cpp_lib_concepts
2145# error "__cpp_lib_concepts should not be defined before c++20"
2146# endif
2147
2148# ifdef __cpp_lib_constexpr_algorithms
2149# error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
2150# endif
2151
2152# ifdef __cpp_lib_constexpr_bitset
2153# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
2154# endif
2155
2156# ifdef __cpp_lib_constexpr_charconv
2157# error "__cpp_lib_constexpr_charconv should not be defined before c++23"
2158# endif
2159
2160# ifdef __cpp_lib_constexpr_cmath
2161# error "__cpp_lib_constexpr_cmath should not be defined before c++23"
2162# endif
2163
2164# ifdef __cpp_lib_constexpr_complex
2165# error "__cpp_lib_constexpr_complex should not be defined before c++20"
2166# endif
2167
2168# ifdef __cpp_lib_constexpr_dynamic_alloc
2169# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
2170# endif
2171
2172# ifdef __cpp_lib_constexpr_functional
2173# error "__cpp_lib_constexpr_functional should not be defined before c++20"
2174# endif
2175
2176# ifdef __cpp_lib_constexpr_iterator
2177# error "__cpp_lib_constexpr_iterator should not be defined before c++20"
2178# endif
2179
2180# ifdef __cpp_lib_constexpr_memory
2181# error "__cpp_lib_constexpr_memory should not be defined before c++20"
2182# endif
2183
2184# ifdef __cpp_lib_constexpr_numeric
2185# error "__cpp_lib_constexpr_numeric should not be defined before c++20"
2186# endif
2187
2188# ifdef __cpp_lib_constexpr_string
2189# error "__cpp_lib_constexpr_string should not be defined before c++20"
2190# endif
2191
2192# ifdef __cpp_lib_constexpr_string_view
2193# error "__cpp_lib_constexpr_string_view should not be defined before c++20"
2194# endif
2195
2196# ifdef __cpp_lib_constexpr_tuple
2197# error "__cpp_lib_constexpr_tuple should not be defined before c++20"
2198# endif
2199
2200# ifdef __cpp_lib_constexpr_typeinfo
2201# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
2202# endif
2203
2204# ifdef __cpp_lib_constexpr_utility
2205# error "__cpp_lib_constexpr_utility should not be defined before c++20"
2206# endif
2207
2208# ifdef __cpp_lib_constexpr_vector
2209# error "__cpp_lib_constexpr_vector should not be defined before c++20"
2210# endif
2211
2212# ifdef __cpp_lib_constrained_equality
2213# error "__cpp_lib_constrained_equality should not be defined before c++26"
2214# endif
2215
2216# ifdef __cpp_lib_copyable_function
2217# error "__cpp_lib_copyable_function should not be defined before c++26"
2218# endif
2219
2220# ifdef __cpp_lib_coroutine
2221# error "__cpp_lib_coroutine should not be defined before c++20"
2222# endif
2223
2224# ifdef __cpp_lib_debugging
2225# error "__cpp_lib_debugging should not be defined before c++26"
2226# endif
2227
2228# ifdef __cpp_lib_default_template_type_for_algorithm_values
2229# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
2230# endif
2231
2232# ifdef __cpp_lib_destroying_delete
2233# error "__cpp_lib_destroying_delete should not be defined before c++20"
2234# endif
2235
2236# ifndef __cpp_lib_enable_shared_from_this
2237# error "__cpp_lib_enable_shared_from_this should be defined in c++17"
2238# endif
2239# if __cpp_lib_enable_shared_from_this != 201603L
2240# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
2241# endif
2242
2243# ifdef __cpp_lib_endian
2244# error "__cpp_lib_endian should not be defined before c++20"
2245# endif
2246
2247# ifdef __cpp_lib_erase_if
2248# error "__cpp_lib_erase_if should not be defined before c++20"
2249# endif
2250
2251# ifndef __cpp_lib_exchange_function
2252# error "__cpp_lib_exchange_function should be defined in c++17"
2253# endif
2254# if __cpp_lib_exchange_function != 201304L
2255# error "__cpp_lib_exchange_function should have the value 201304L in c++17"
2256# endif
2257
2258# if !defined(_LIBCPP_VERSION)
2259# ifndef __cpp_lib_execution
2260# error "__cpp_lib_execution should be defined in c++17"
2261# endif
2262# if __cpp_lib_execution != 201603L
2263# error "__cpp_lib_execution should have the value 201603L in c++17"
2264# endif
2265# else // _LIBCPP_VERSION
2266# ifdef __cpp_lib_execution
2267# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
2268# endif
2269# endif
2270
2271# ifdef __cpp_lib_expected
2272# error "__cpp_lib_expected should not be defined before c++23"
2273# endif
2274
2275# if !defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
2276# ifndef __cpp_lib_filesystem
2277# error "__cpp_lib_filesystem should be defined in c++17"
2278# endif
2279# if __cpp_lib_filesystem != 201703L
2280# error "__cpp_lib_filesystem should have the value 201703L in c++17"
2281# endif
2282# else
2283# ifdef __cpp_lib_filesystem
2284# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
2285# endif
2286# endif
2287
2288# ifdef __cpp_lib_format
2289# error "__cpp_lib_format should not be defined before c++20"
2290# endif
2291
2292# ifdef __cpp_lib_format_path
2293# error "__cpp_lib_format_path should not be defined before c++23"
2294# endif
2295
2296# ifdef __cpp_lib_format_ranges
2297# error "__cpp_lib_format_ranges should not be defined before c++23"
2298# endif
2299
2300# ifdef __cpp_lib_format_uchar
2301# error "__cpp_lib_format_uchar should not be defined before c++20"
2302# endif
2303
2304# ifdef __cpp_lib_formatters
2305# error "__cpp_lib_formatters should not be defined before c++23"
2306# endif
2307
2308# ifdef __cpp_lib_forward_like
2309# error "__cpp_lib_forward_like should not be defined before c++23"
2310# endif
2311
2312# ifdef __cpp_lib_freestanding_algorithm
2313# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
2314# endif
2315
2316# ifdef __cpp_lib_freestanding_array
2317# error "__cpp_lib_freestanding_array should not be defined before c++26"
2318# endif
2319
2320# ifdef __cpp_lib_freestanding_cstring
2321# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
2322# endif
2323
2324# ifdef __cpp_lib_freestanding_expected
2325# error "__cpp_lib_freestanding_expected should not be defined before c++26"
2326# endif
2327
2328# ifdef __cpp_lib_freestanding_mdspan
2329# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
2330# endif
2331
2332# ifdef __cpp_lib_freestanding_optional
2333# error "__cpp_lib_freestanding_optional should not be defined before c++26"
2334# endif
2335
2336# ifdef __cpp_lib_freestanding_string_view
2337# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
2338# endif
2339
2340# ifdef __cpp_lib_freestanding_variant
2341# error "__cpp_lib_freestanding_variant should not be defined before c++26"
2342# endif
2343
2344# ifdef __cpp_lib_fstream_native_handle
2345# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
2346# endif
2347
2348# ifdef __cpp_lib_function_ref
2349# error "__cpp_lib_function_ref should not be defined before c++26"
2350# endif
2351
2352# ifndef __cpp_lib_gcd_lcm
2353# error "__cpp_lib_gcd_lcm should be defined in c++17"
2354# endif
2355# if __cpp_lib_gcd_lcm != 201606L
2356# error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
2357# endif
2358
2359# ifdef __cpp_lib_generate_random
2360# error "__cpp_lib_generate_random should not be defined before c++26"
2361# endif
2362
2363# ifndef __cpp_lib_generic_associative_lookup
2364# error "__cpp_lib_generic_associative_lookup should be defined in c++17"
2365# endif
2366# if __cpp_lib_generic_associative_lookup != 201304L
2367# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
2368# endif
2369
2370# ifdef __cpp_lib_generic_unordered_lookup
2371# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
2372# endif
2373
2374# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
2375# ifndef __cpp_lib_hardware_interference_size
2376# error "__cpp_lib_hardware_interference_size should be defined in c++17"
2377# endif
2378# if __cpp_lib_hardware_interference_size != 201703L
2379# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
2380# endif
2381# else
2382# ifdef __cpp_lib_hardware_interference_size
2383# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
2384# endif
2385# endif
2386
2387# ifndef __cpp_lib_has_unique_object_representations
2388# error "__cpp_lib_has_unique_object_representations should be defined in c++17"
2389# endif
2390# if __cpp_lib_has_unique_object_representations != 201606L
2391# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
2392# endif
2393
2394# ifdef __cpp_lib_hazard_pointer
2395# error "__cpp_lib_hazard_pointer should not be defined before c++26"
2396# endif
2397
2398# ifndef __cpp_lib_hypot
2399# error "__cpp_lib_hypot should be defined in c++17"
2400# endif
2401# if __cpp_lib_hypot != 201603L
2402# error "__cpp_lib_hypot should have the value 201603L in c++17"
2403# endif
2404
2405# ifndef __cpp_lib_incomplete_container_elements
2406# error "__cpp_lib_incomplete_container_elements should be defined in c++17"
2407# endif
2408# if __cpp_lib_incomplete_container_elements != 201505L
2409# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
2410# endif
2411
2412# ifdef __cpp_lib_int_pow2
2413# error "__cpp_lib_int_pow2 should not be defined before c++20"
2414# endif
2415
2416# ifdef __cpp_lib_integer_comparison_functions
2417# error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
2418# endif
2419
2420# ifndef __cpp_lib_integer_sequence
2421# error "__cpp_lib_integer_sequence should be defined in c++17"
2422# endif
2423# if __cpp_lib_integer_sequence != 201304L
2424# error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
2425# endif
2426
2427# ifndef __cpp_lib_integral_constant_callable
2428# error "__cpp_lib_integral_constant_callable should be defined in c++17"
2429# endif
2430# if __cpp_lib_integral_constant_callable != 201304L
2431# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
2432# endif
2433
2434# ifdef __cpp_lib_interpolate
2435# error "__cpp_lib_interpolate should not be defined before c++20"
2436# endif
2437
2438# ifndef __cpp_lib_invoke
2439# error "__cpp_lib_invoke should be defined in c++17"
2440# endif
2441# if __cpp_lib_invoke != 201411L
2442# error "__cpp_lib_invoke should have the value 201411L in c++17"
2443# endif
2444
2445# ifdef __cpp_lib_invoke_r
2446# error "__cpp_lib_invoke_r should not be defined before c++23"
2447# endif
2448
2449# ifdef __cpp_lib_ios_noreplace
2450# error "__cpp_lib_ios_noreplace should not be defined before c++23"
2451# endif
2452
2453# ifndef __cpp_lib_is_aggregate
2454# error "__cpp_lib_is_aggregate should be defined in c++17"
2455# endif
2456# if __cpp_lib_is_aggregate != 201703L
2457# error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
2458# endif
2459
2460# ifdef __cpp_lib_is_constant_evaluated
2461# error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
2462# endif
2463
2464# ifndef __cpp_lib_is_final
2465# error "__cpp_lib_is_final should be defined in c++17"
2466# endif
2467# if __cpp_lib_is_final != 201402L
2468# error "__cpp_lib_is_final should have the value 201402L in c++17"
2469# endif
2470
2471# ifndef __cpp_lib_is_invocable
2472# error "__cpp_lib_is_invocable should be defined in c++17"
2473# endif
2474# if __cpp_lib_is_invocable != 201703L
2475# error "__cpp_lib_is_invocable should have the value 201703L in c++17"
2476# endif
2477
2478# ifdef __cpp_lib_is_layout_compatible
2479# error "__cpp_lib_is_layout_compatible should not be defined before c++20"
2480# endif
2481
2482# ifdef __cpp_lib_is_nothrow_convertible
2483# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
2484# endif
2485
2486# ifndef __cpp_lib_is_null_pointer
2487# error "__cpp_lib_is_null_pointer should be defined in c++17"
2488# endif
2489# if __cpp_lib_is_null_pointer != 201309L
2490# error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
2491# endif
2492
2493# ifdef __cpp_lib_is_pointer_interconvertible
2494# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
2495# endif
2496
2497# ifdef __cpp_lib_is_scoped_enum
2498# error "__cpp_lib_is_scoped_enum should not be defined before c++23"
2499# endif
2500
2501# ifndef __cpp_lib_is_swappable
2502# error "__cpp_lib_is_swappable should be defined in c++17"
2503# endif
2504# if __cpp_lib_is_swappable != 201603L
2505# error "__cpp_lib_is_swappable should have the value 201603L in c++17"
2506# endif
2507
2508# ifdef __cpp_lib_jthread
2509# error "__cpp_lib_jthread should not be defined before c++20"
2510# endif
2511
2512# ifdef __cpp_lib_latch
2513# error "__cpp_lib_latch should not be defined before c++20"
2514# endif
2515
2516# ifndef __cpp_lib_launder
2517# error "__cpp_lib_launder should be defined in c++17"
2518# endif
2519# if __cpp_lib_launder != 201606L
2520# error "__cpp_lib_launder should have the value 201606L in c++17"
2521# endif
2522
2523# ifdef __cpp_lib_linalg
2524# error "__cpp_lib_linalg should not be defined before c++26"
2525# endif
2526
2527# ifdef __cpp_lib_list_remove_return_type
2528# error "__cpp_lib_list_remove_return_type should not be defined before c++20"
2529# endif
2530
2531# ifndef __cpp_lib_logical_traits
2532# error "__cpp_lib_logical_traits should be defined in c++17"
2533# endif
2534# if __cpp_lib_logical_traits != 201510L
2535# error "__cpp_lib_logical_traits should have the value 201510L in c++17"
2536# endif
2537
2538# ifndef __cpp_lib_make_from_tuple
2539# error "__cpp_lib_make_from_tuple should be defined in c++17"
2540# endif
2541# if __cpp_lib_make_from_tuple != 201606L
2542# error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
2543# endif
2544
2545# ifndef __cpp_lib_make_reverse_iterator
2546# error "__cpp_lib_make_reverse_iterator should be defined in c++17"
2547# endif
2548# if __cpp_lib_make_reverse_iterator != 201402L
2549# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
2550# endif
2551
2552# ifndef __cpp_lib_make_unique
2553# error "__cpp_lib_make_unique should be defined in c++17"
2554# endif
2555# if __cpp_lib_make_unique != 201304L
2556# error "__cpp_lib_make_unique should have the value 201304L in c++17"
2557# endif
2558
2559# ifndef __cpp_lib_map_try_emplace
2560# error "__cpp_lib_map_try_emplace should be defined in c++17"
2561# endif
2562# if __cpp_lib_map_try_emplace != 201411L
2563# error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
2564# endif
2565
2566# ifdef __cpp_lib_math_constants
2567# error "__cpp_lib_math_constants should not be defined before c++20"
2568# endif
2569
2570# if !defined(_LIBCPP_VERSION)
2571# ifndef __cpp_lib_math_special_functions
2572# error "__cpp_lib_math_special_functions should be defined in c++17"
2573# endif
2574# if __cpp_lib_math_special_functions != 201603L
2575# error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
2576# endif
2577# else // _LIBCPP_VERSION
2578# ifdef __cpp_lib_math_special_functions
2579# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
2580# endif
2581# endif
2582
2583# ifdef __cpp_lib_mdspan
2584# error "__cpp_lib_mdspan should not be defined before c++23"
2585# endif
2586
2587# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
2588# ifndef __cpp_lib_memory_resource
2589# error "__cpp_lib_memory_resource should be defined in c++17"
2590# endif
2591# if __cpp_lib_memory_resource != 201603L
2592# error "__cpp_lib_memory_resource should have the value 201603L in c++17"
2593# endif
2594# else
2595# ifdef __cpp_lib_memory_resource
2596# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
2597# endif
2598# endif
2599
2600# ifdef __cpp_lib_move_iterator_concept
2601# error "__cpp_lib_move_iterator_concept should not be defined before c++20"
2602# endif
2603
2604# ifdef __cpp_lib_move_only_function
2605# error "__cpp_lib_move_only_function should not be defined before c++23"
2606# endif
2607
2608# ifndef __cpp_lib_node_extract
2609# error "__cpp_lib_node_extract should be defined in c++17"
2610# endif
2611# if __cpp_lib_node_extract != 201606L
2612# error "__cpp_lib_node_extract should have the value 201606L in c++17"
2613# endif
2614
2615# ifndef __cpp_lib_nonmember_container_access
2616# error "__cpp_lib_nonmember_container_access should be defined in c++17"
2617# endif
2618# if __cpp_lib_nonmember_container_access != 201411L
2619# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
2620# endif
2621
2622# ifndef __cpp_lib_not_fn
2623# error "__cpp_lib_not_fn should be defined in c++17"
2624# endif
2625# if __cpp_lib_not_fn != 201603L
2626# error "__cpp_lib_not_fn should have the value 201603L in c++17"
2627# endif
2628
2629# ifndef __cpp_lib_null_iterators
2630# error "__cpp_lib_null_iterators should be defined in c++17"
2631# endif
2632# if __cpp_lib_null_iterators != 201304L
2633# error "__cpp_lib_null_iterators should have the value 201304L in c++17"
2634# endif
2635
2636# ifndef __cpp_lib_optional
2637# error "__cpp_lib_optional should be defined in c++17"
2638# endif
2639# if __cpp_lib_optional != 201606L
2640# error "__cpp_lib_optional should have the value 201606L in c++17"
2641# endif
2642
2643# ifdef __cpp_lib_out_ptr
2644# error "__cpp_lib_out_ptr should not be defined before c++23"
2645# endif
2646
2647# if !defined(_LIBCPP_VERSION)
2648# ifndef __cpp_lib_parallel_algorithm
2649# error "__cpp_lib_parallel_algorithm should be defined in c++17"
2650# endif
2651# if __cpp_lib_parallel_algorithm != 201603L
2652# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
2653# endif
2654# else // _LIBCPP_VERSION
2655# ifdef __cpp_lib_parallel_algorithm
2656# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
2657# endif
2658# endif
2659
2660# ifdef __cpp_lib_polymorphic_allocator
2661# error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
2662# endif
2663
2664# ifdef __cpp_lib_print
2665# error "__cpp_lib_print should not be defined before c++23"
2666# endif
2667
2668# if !defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)
2669# ifndef __cpp_lib_quoted_string_io
2670# error "__cpp_lib_quoted_string_io should be defined in c++17"
2671# endif
2672# if __cpp_lib_quoted_string_io != 201304L
2673# error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
2674# endif
2675# else
2676# ifdef __cpp_lib_quoted_string_io
2677# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)' is not met!"
2678# endif
2679# endif
2680
2681# ifdef __cpp_lib_ranges
2682# error "__cpp_lib_ranges should not be defined before c++20"
2683# endif
2684
2685# ifdef __cpp_lib_ranges_as_const
2686# error "__cpp_lib_ranges_as_const should not be defined before c++23"
2687# endif
2688
2689# ifdef __cpp_lib_ranges_as_rvalue
2690# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
2691# endif
2692
2693# ifdef __cpp_lib_ranges_chunk
2694# error "__cpp_lib_ranges_chunk should not be defined before c++23"
2695# endif
2696
2697# ifdef __cpp_lib_ranges_chunk_by
2698# error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
2699# endif
2700
2701# ifdef __cpp_lib_ranges_concat
2702# error "__cpp_lib_ranges_concat should not be defined before c++26"
2703# endif
2704
2705# ifdef __cpp_lib_ranges_contains
2706# error "__cpp_lib_ranges_contains should not be defined before c++23"
2707# endif
2708
2709# ifdef __cpp_lib_ranges_iota
2710# error "__cpp_lib_ranges_iota should not be defined before c++23"
2711# endif
2712
2713# ifdef __cpp_lib_ranges_join_with
2714# error "__cpp_lib_ranges_join_with should not be defined before c++23"
2715# endif
2716
2717# ifdef __cpp_lib_ranges_repeat
2718# error "__cpp_lib_ranges_repeat should not be defined before c++23"
2719# endif
2720
2721# ifdef __cpp_lib_ranges_slide
2722# error "__cpp_lib_ranges_slide should not be defined before c++23"
2723# endif
2724
2725# ifdef __cpp_lib_ranges_starts_ends_with
2726# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
2727# endif
2728
2729# ifdef __cpp_lib_ranges_to_container
2730# error "__cpp_lib_ranges_to_container should not be defined before c++23"
2731# endif
2732
2733# ifdef __cpp_lib_ranges_zip
2734# error "__cpp_lib_ranges_zip should not be defined before c++23"
2735# endif
2736
2737# ifdef __cpp_lib_ratio
2738# error "__cpp_lib_ratio should not be defined before c++26"
2739# endif
2740
2741# ifndef __cpp_lib_raw_memory_algorithms
2742# error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
2743# endif
2744# if __cpp_lib_raw_memory_algorithms != 201606L
2745# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
2746# endif
2747
2748# ifdef __cpp_lib_rcu
2749# error "__cpp_lib_rcu should not be defined before c++26"
2750# endif
2751
2752# ifdef __cpp_lib_reference_from_temporary
2753# error "__cpp_lib_reference_from_temporary should not be defined before c++23"
2754# endif
2755
2756# ifdef __cpp_lib_reference_wrapper
2757# error "__cpp_lib_reference_wrapper should not be defined before c++26"
2758# endif
2759
2760# ifdef __cpp_lib_remove_cvref
2761# error "__cpp_lib_remove_cvref should not be defined before c++20"
2762# endif
2763
2764# ifndef __cpp_lib_result_of_sfinae
2765# error "__cpp_lib_result_of_sfinae should be defined in c++17"
2766# endif
2767# if __cpp_lib_result_of_sfinae != 201210L
2768# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
2769# endif
2770
2771# ifndef __cpp_lib_robust_nonmodifying_seq_ops
2772# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
2773# endif
2774# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
2775# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
2776# endif
2777
2778# ifndef __cpp_lib_sample
2779# error "__cpp_lib_sample should be defined in c++17"
2780# endif
2781# if __cpp_lib_sample != 201603L
2782# error "__cpp_lib_sample should have the value 201603L in c++17"
2783# endif
2784
2785# ifdef __cpp_lib_saturation_arithmetic
2786# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
2787# endif
2788
2789# if !defined(_LIBCPP_HAS_NO_THREADS)
2790# ifndef __cpp_lib_scoped_lock
2791# error "__cpp_lib_scoped_lock should be defined in c++17"
2792# endif
2793# if __cpp_lib_scoped_lock != 201703L
2794# error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
2795# endif
2796# else
2797# ifdef __cpp_lib_scoped_lock
2798# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
2799# endif
2800# endif
2801
2802# ifdef __cpp_lib_semaphore
2803# error "__cpp_lib_semaphore should not be defined before c++20"
2804# endif
2805
2806# if !defined(_LIBCPP_HAS_NO_THREADS)
2807# ifndef __cpp_lib_shared_mutex
2808# error "__cpp_lib_shared_mutex should be defined in c++17"
2809# endif
2810# if __cpp_lib_shared_mutex != 201505L
2811# error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
2812# endif
2813# else
2814# ifdef __cpp_lib_shared_mutex
2815# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
2816# endif
2817# endif
2818
2819# ifndef __cpp_lib_shared_ptr_arrays
2820# error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
2821# endif
2822# if __cpp_lib_shared_ptr_arrays != 201611L
2823# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
2824# endif
2825
2826# ifndef __cpp_lib_shared_ptr_weak_type
2827# error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
2828# endif
2829# if __cpp_lib_shared_ptr_weak_type != 201606L
2830# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
2831# endif
2832
2833# if !defined(_LIBCPP_HAS_NO_THREADS)
2834# ifndef __cpp_lib_shared_timed_mutex
2835# error "__cpp_lib_shared_timed_mutex should be defined in c++17"
2836# endif
2837# if __cpp_lib_shared_timed_mutex != 201402L
2838# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
2839# endif
2840# else
2841# ifdef __cpp_lib_shared_timed_mutex
2842# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
2843# endif
2844# endif
2845
2846# ifdef __cpp_lib_shift
2847# error "__cpp_lib_shift should not be defined before c++20"
2848# endif
2849
2850# ifdef __cpp_lib_smart_ptr_for_overwrite
2851# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
2852# endif
2853
2854# ifdef __cpp_lib_smart_ptr_owner_equality
2855# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
2856# endif
2857
2858# ifdef __cpp_lib_source_location
2859# error "__cpp_lib_source_location should not be defined before c++20"
2860# endif
2861
2862# ifdef __cpp_lib_span
2863# error "__cpp_lib_span should not be defined before c++20"
2864# endif
2865
2866# ifdef __cpp_lib_span_at
2867# error "__cpp_lib_span_at should not be defined before c++26"
2868# endif
2869
2870# ifdef __cpp_lib_span_initializer_list
2871# error "__cpp_lib_span_initializer_list should not be defined before c++26"
2872# endif
2873
2874# ifdef __cpp_lib_spanstream
2875# error "__cpp_lib_spanstream should not be defined before c++23"
2876# endif
2877
2878# ifdef __cpp_lib_ssize
2879# error "__cpp_lib_ssize should not be defined before c++20"
2880# endif
2881
2882# ifdef __cpp_lib_sstream_from_string_view
2883# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
2884# endif
2885
2886# ifdef __cpp_lib_stacktrace
2887# error "__cpp_lib_stacktrace should not be defined before c++23"
2888# endif
2889
2890# ifdef __cpp_lib_starts_ends_with
2891# error "__cpp_lib_starts_ends_with should not be defined before c++20"
2892# endif
2893
2894# ifdef __cpp_lib_stdatomic_h
2895# error "__cpp_lib_stdatomic_h should not be defined before c++23"
2896# endif
2897
2898# ifdef __cpp_lib_string_contains
2899# error "__cpp_lib_string_contains should not be defined before c++23"
2900# endif
2901
2902# ifdef __cpp_lib_string_resize_and_overwrite
2903# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
2904# endif
2905
2906# ifndef __cpp_lib_string_udls
2907# error "__cpp_lib_string_udls should be defined in c++17"
2908# endif
2909# if __cpp_lib_string_udls != 201304L
2910# error "__cpp_lib_string_udls should have the value 201304L in c++17"
2911# endif
2912
2913# ifndef __cpp_lib_string_view
2914# error "__cpp_lib_string_view should be defined in c++17"
2915# endif
2916# if __cpp_lib_string_view != 201606L
2917# error "__cpp_lib_string_view should have the value 201606L in c++17"
2918# endif
2919
2920# ifdef __cpp_lib_submdspan
2921# error "__cpp_lib_submdspan should not be defined before c++26"
2922# endif
2923
2924# ifdef __cpp_lib_syncbuf
2925# error "__cpp_lib_syncbuf should not be defined before c++20"
2926# endif
2927
2928# ifdef __cpp_lib_text_encoding
2929# error "__cpp_lib_text_encoding should not be defined before c++26"
2930# endif
2931
2932# ifdef __cpp_lib_three_way_comparison
2933# error "__cpp_lib_three_way_comparison should not be defined before c++20"
2934# endif
2935
2936# ifdef __cpp_lib_to_address
2937# error "__cpp_lib_to_address should not be defined before c++20"
2938# endif
2939
2940# ifdef __cpp_lib_to_array
2941# error "__cpp_lib_to_array should not be defined before c++20"
2942# endif
2943
2944# if !defined(_LIBCPP_VERSION)
2945# ifndef __cpp_lib_to_chars
2946# error "__cpp_lib_to_chars should be defined in c++17"
2947# endif
2948# if __cpp_lib_to_chars != 201611L
2949# error "__cpp_lib_to_chars should have the value 201611L in c++17"
2950# endif
2951# else // _LIBCPP_VERSION
2952# ifdef __cpp_lib_to_chars
2953# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
2954# endif
2955# endif
2956
2957# ifdef __cpp_lib_to_string
2958# error "__cpp_lib_to_string should not be defined before c++23"
2959# endif
2960
2961# ifdef __cpp_lib_to_underlying
2962# error "__cpp_lib_to_underlying should not be defined before c++23"
2963# endif
2964
2965# ifndef __cpp_lib_transformation_trait_aliases
2966# error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
2967# endif
2968# if __cpp_lib_transformation_trait_aliases != 201304L
2969# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
2970# endif
2971
2972# ifndef __cpp_lib_transparent_operators
2973# error "__cpp_lib_transparent_operators should be defined in c++17"
2974# endif
2975# if __cpp_lib_transparent_operators != 201510L
2976# error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
2977# endif
2978
2979# ifndef __cpp_lib_tuple_element_t
2980# error "__cpp_lib_tuple_element_t should be defined in c++17"
2981# endif
2982# if __cpp_lib_tuple_element_t != 201402L
2983# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
2984# endif
2985
2986# ifdef __cpp_lib_tuple_like
2987# error "__cpp_lib_tuple_like should not be defined before c++23"
2988# endif
2989
2990# ifndef __cpp_lib_tuples_by_type
2991# error "__cpp_lib_tuples_by_type should be defined in c++17"
2992# endif
2993# if __cpp_lib_tuples_by_type != 201304L
2994# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
2995# endif
2996
2997# ifdef __cpp_lib_type_identity
2998# error "__cpp_lib_type_identity should not be defined before c++20"
2999# endif
3000
3001# ifndef __cpp_lib_type_trait_variable_templates
3002# error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
3003# endif
3004# if __cpp_lib_type_trait_variable_templates != 201510L
3005# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
3006# endif
3007
3008# ifndef __cpp_lib_uncaught_exceptions
3009# error "__cpp_lib_uncaught_exceptions should be defined in c++17"
3010# endif
3011# if __cpp_lib_uncaught_exceptions != 201411L
3012# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
3013# endif
3014
3015# ifndef __cpp_lib_unordered_map_try_emplace
3016# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
3017# endif
3018# if __cpp_lib_unordered_map_try_emplace != 201411L
3019# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
3020# endif
3021
3022# ifdef __cpp_lib_unreachable
3023# error "__cpp_lib_unreachable should not be defined before c++23"
3024# endif
3025
3026# ifdef __cpp_lib_unwrap_ref
3027# error "__cpp_lib_unwrap_ref should not be defined before c++20"
3028# endif
3029
3030# ifndef __cpp_lib_variant
3031# error "__cpp_lib_variant should be defined in c++17"
3032# endif
3033# if __cpp_lib_variant != 202102L
3034# error "__cpp_lib_variant should have the value 202102L in c++17"
3035# endif
3036
3037# ifndef __cpp_lib_void_t
3038# error "__cpp_lib_void_t should be defined in c++17"
3039# endif
3040# if __cpp_lib_void_t != 201411L
3041# error "__cpp_lib_void_t should have the value 201411L in c++17"
3042# endif
3043
3044# ifdef __cpp_lib_within_lifetime
3045# error "__cpp_lib_within_lifetime should not be defined before c++26"
3046# endif
3047
3048#elif TEST_STD_VER == 20
3049
3050# ifdef __cpp_lib_adaptor_iterator_pair_constructor
3051# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
3052# endif
3053
3054# ifndef __cpp_lib_addressof_constexpr
3055# error "__cpp_lib_addressof_constexpr should be defined in c++20"
3056# endif
3057# if __cpp_lib_addressof_constexpr != 201603L
3058# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20"
3059# endif
3060
3061# ifdef __cpp_lib_allocate_at_least
3062# error "__cpp_lib_allocate_at_least should not be defined before c++23"
3063# endif
3064
3065# ifndef __cpp_lib_allocator_traits_is_always_equal
3066# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"
3067# endif
3068# if __cpp_lib_allocator_traits_is_always_equal != 201411L
3069# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
3070# endif
3071
3072# ifndef __cpp_lib_any
3073# error "__cpp_lib_any should be defined in c++20"
3074# endif
3075# if __cpp_lib_any != 201606L
3076# error "__cpp_lib_any should have the value 201606L in c++20"
3077# endif
3078
3079# ifndef __cpp_lib_apply
3080# error "__cpp_lib_apply should be defined in c++20"
3081# endif
3082# if __cpp_lib_apply != 201603L
3083# error "__cpp_lib_apply should have the value 201603L in c++20"
3084# endif
3085
3086# ifndef __cpp_lib_array_constexpr
3087# error "__cpp_lib_array_constexpr should be defined in c++20"
3088# endif
3089# if __cpp_lib_array_constexpr != 201811L
3090# error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
3091# endif
3092
3093# ifndef __cpp_lib_as_const
3094# error "__cpp_lib_as_const should be defined in c++20"
3095# endif
3096# if __cpp_lib_as_const != 201510L
3097# error "__cpp_lib_as_const should have the value 201510L in c++20"
3098# endif
3099
3100# ifdef __cpp_lib_associative_heterogeneous_erasure
3101# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
3102# endif
3103
3104# ifdef __cpp_lib_associative_heterogeneous_insertion
3105# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
3106# endif
3107
3108# ifndef __cpp_lib_assume_aligned
3109# error "__cpp_lib_assume_aligned should be defined in c++20"
3110# endif
3111# if __cpp_lib_assume_aligned != 201811L
3112# error "__cpp_lib_assume_aligned should have the value 201811L in c++20"
3113# endif
3114
3115# ifndef __cpp_lib_atomic_flag_test
3116# error "__cpp_lib_atomic_flag_test should be defined in c++20"
3117# endif
3118# if __cpp_lib_atomic_flag_test != 201907L
3119# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
3120# endif
3121
3122# if !defined(_LIBCPP_VERSION)
3123# ifndef __cpp_lib_atomic_float
3124# error "__cpp_lib_atomic_float should be defined in c++20"
3125# endif
3126# if __cpp_lib_atomic_float != 201711L
3127# error "__cpp_lib_atomic_float should have the value 201711L in c++20"
3128# endif
3129# else // _LIBCPP_VERSION
3130# ifdef __cpp_lib_atomic_float
3131# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
3132# endif
3133# endif
3134
3135# ifndef __cpp_lib_atomic_is_always_lock_free
3136# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20"
3137# endif
3138# if __cpp_lib_atomic_is_always_lock_free != 201603L
3139# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20"
3140# endif
3141
3142# ifndef __cpp_lib_atomic_lock_free_type_aliases
3143# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20"
3144# endif
3145# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
3146# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20"
3147# endif
3148
3149# ifdef __cpp_lib_atomic_min_max
3150# error "__cpp_lib_atomic_min_max should not be defined before c++26"
3151# endif
3152
3153# if !defined(_LIBCPP_VERSION)
3154# ifndef __cpp_lib_atomic_ref
3155# error "__cpp_lib_atomic_ref should be defined in c++20"
3156# endif
3157# if __cpp_lib_atomic_ref != 201806L
3158# error "__cpp_lib_atomic_ref should have the value 201806L in c++20"
3159# endif
3160# else // _LIBCPP_VERSION
3161# ifdef __cpp_lib_atomic_ref
3162# error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
3163# endif
3164# endif
3165
3166# if !defined(_LIBCPP_VERSION)
3167# ifndef __cpp_lib_atomic_shared_ptr
3168# error "__cpp_lib_atomic_shared_ptr should be defined in c++20"
3169# endif
3170# if __cpp_lib_atomic_shared_ptr != 201711L
3171# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20"
3172# endif
3173# else // _LIBCPP_VERSION
3174# ifdef __cpp_lib_atomic_shared_ptr
3175# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
3176# endif
3177# endif
3178
3179# ifndef __cpp_lib_atomic_value_initialization
3180# error "__cpp_lib_atomic_value_initialization should be defined in c++20"
3181# endif
3182# if __cpp_lib_atomic_value_initialization != 201911L
3183# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20"
3184# endif
3185
3186# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
3187# ifndef __cpp_lib_atomic_wait
3188# error "__cpp_lib_atomic_wait should be defined in c++20"
3189# endif
3190# if __cpp_lib_atomic_wait != 201907L
3191# error "__cpp_lib_atomic_wait should have the value 201907L in c++20"
3192# endif
3193# else
3194# ifdef __cpp_lib_atomic_wait
3195# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
3196# endif
3197# endif
3198
3199# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
3200# ifndef __cpp_lib_barrier
3201# error "__cpp_lib_barrier should be defined in c++20"
3202# endif
3203# if __cpp_lib_barrier != 201907L
3204# error "__cpp_lib_barrier should have the value 201907L in c++20"
3205# endif
3206# else
3207# ifdef __cpp_lib_barrier
3208# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
3209# endif
3210# endif
3211
3212# ifdef __cpp_lib_bind_back
3213# error "__cpp_lib_bind_back should not be defined before c++23"
3214# endif
3215
3216# ifndef __cpp_lib_bind_front
3217# error "__cpp_lib_bind_front should be defined in c++20"
3218# endif
3219# if __cpp_lib_bind_front != 201907L
3220# error "__cpp_lib_bind_front should have the value 201907L in c++20"
3221# endif
3222
3223# ifndef __cpp_lib_bit_cast
3224# error "__cpp_lib_bit_cast should be defined in c++20"
3225# endif
3226# if __cpp_lib_bit_cast != 201806L
3227# error "__cpp_lib_bit_cast should have the value 201806L in c++20"
3228# endif
3229
3230# ifndef __cpp_lib_bitops
3231# error "__cpp_lib_bitops should be defined in c++20"
3232# endif
3233# if __cpp_lib_bitops != 201907L
3234# error "__cpp_lib_bitops should have the value 201907L in c++20"
3235# endif
3236
3237# ifdef __cpp_lib_bitset
3238# error "__cpp_lib_bitset should not be defined before c++26"
3239# endif
3240
3241# ifndef __cpp_lib_bool_constant
3242# error "__cpp_lib_bool_constant should be defined in c++20"
3243# endif
3244# if __cpp_lib_bool_constant != 201505L
3245# error "__cpp_lib_bool_constant should have the value 201505L in c++20"
3246# endif
3247
3248# ifndef __cpp_lib_bounded_array_traits
3249# error "__cpp_lib_bounded_array_traits should be defined in c++20"
3250# endif
3251# if __cpp_lib_bounded_array_traits != 201902L
3252# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
3253# endif
3254
3255# ifndef __cpp_lib_boyer_moore_searcher
3256# error "__cpp_lib_boyer_moore_searcher should be defined in c++20"
3257# endif
3258# if __cpp_lib_boyer_moore_searcher != 201603L
3259# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20"
3260# endif
3261
3262# ifndef __cpp_lib_byte
3263# error "__cpp_lib_byte should be defined in c++20"
3264# endif
3265# if __cpp_lib_byte != 201603L
3266# error "__cpp_lib_byte should have the value 201603L in c++20"
3267# endif
3268
3269# ifdef __cpp_lib_byteswap
3270# error "__cpp_lib_byteswap should not be defined before c++23"
3271# endif
3272
3273# if defined(__cpp_char8_t)
3274# ifndef __cpp_lib_char8_t
3275# error "__cpp_lib_char8_t should be defined in c++20"
3276# endif
3277# if __cpp_lib_char8_t != 201907L
3278# error "__cpp_lib_char8_t should have the value 201907L in c++20"
3279# endif
3280# else
3281# ifdef __cpp_lib_char8_t
3282# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
3283# endif
3284# endif
3285
3286# ifndef __cpp_lib_chrono
3287# error "__cpp_lib_chrono should be defined in c++20"
3288# endif
3289# if __cpp_lib_chrono != 201611L
3290# error "__cpp_lib_chrono should have the value 201611L in c++20"
3291# endif
3292
3293# ifndef __cpp_lib_chrono_udls
3294# error "__cpp_lib_chrono_udls should be defined in c++20"
3295# endif
3296# if __cpp_lib_chrono_udls != 201304L
3297# error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
3298# endif
3299
3300# ifndef __cpp_lib_clamp
3301# error "__cpp_lib_clamp should be defined in c++20"
3302# endif
3303# if __cpp_lib_clamp != 201603L
3304# error "__cpp_lib_clamp should have the value 201603L in c++20"
3305# endif
3306
3307# ifndef __cpp_lib_complex_udls
3308# error "__cpp_lib_complex_udls should be defined in c++20"
3309# endif
3310# if __cpp_lib_complex_udls != 201309L
3311# error "__cpp_lib_complex_udls should have the value 201309L in c++20"
3312# endif
3313
3314# ifndef __cpp_lib_concepts
3315# error "__cpp_lib_concepts should be defined in c++20"
3316# endif
3317# if __cpp_lib_concepts != 202002L
3318# error "__cpp_lib_concepts should have the value 202002L in c++20"
3319# endif
3320
3321# ifndef __cpp_lib_constexpr_algorithms
3322# error "__cpp_lib_constexpr_algorithms should be defined in c++20"
3323# endif
3324# if __cpp_lib_constexpr_algorithms != 201806L
3325# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
3326# endif
3327
3328# ifdef __cpp_lib_constexpr_bitset
3329# error "__cpp_lib_constexpr_bitset should not be defined before c++23"
3330# endif
3331
3332# ifdef __cpp_lib_constexpr_charconv
3333# error "__cpp_lib_constexpr_charconv should not be defined before c++23"
3334# endif
3335
3336# ifdef __cpp_lib_constexpr_cmath
3337# error "__cpp_lib_constexpr_cmath should not be defined before c++23"
3338# endif
3339
3340# ifndef __cpp_lib_constexpr_complex
3341# error "__cpp_lib_constexpr_complex should be defined in c++20"
3342# endif
3343# if __cpp_lib_constexpr_complex != 201711L
3344# error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
3345# endif
3346
3347# ifndef __cpp_lib_constexpr_dynamic_alloc
3348# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
3349# endif
3350# if __cpp_lib_constexpr_dynamic_alloc != 201907L
3351# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
3352# endif
3353
3354# ifndef __cpp_lib_constexpr_functional
3355# error "__cpp_lib_constexpr_functional should be defined in c++20"
3356# endif
3357# if __cpp_lib_constexpr_functional != 201907L
3358# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
3359# endif
3360
3361# ifndef __cpp_lib_constexpr_iterator
3362# error "__cpp_lib_constexpr_iterator should be defined in c++20"
3363# endif
3364# if __cpp_lib_constexpr_iterator != 201811L
3365# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
3366# endif
3367
3368# ifndef __cpp_lib_constexpr_memory
3369# error "__cpp_lib_constexpr_memory should be defined in c++20"
3370# endif
3371# if __cpp_lib_constexpr_memory != 201811L
3372# error "__cpp_lib_constexpr_memory should have the value 201811L in c++20"
3373# endif
3374
3375# ifndef __cpp_lib_constexpr_numeric
3376# error "__cpp_lib_constexpr_numeric should be defined in c++20"
3377# endif
3378# if __cpp_lib_constexpr_numeric != 201911L
3379# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20"
3380# endif
3381
3382# ifndef __cpp_lib_constexpr_string
3383# error "__cpp_lib_constexpr_string should be defined in c++20"
3384# endif
3385# if __cpp_lib_constexpr_string != 201907L
3386# error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
3387# endif
3388
3389# ifndef __cpp_lib_constexpr_string_view
3390# error "__cpp_lib_constexpr_string_view should be defined in c++20"
3391# endif
3392# if __cpp_lib_constexpr_string_view != 201811L
3393# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
3394# endif
3395
3396# ifndef __cpp_lib_constexpr_tuple
3397# error "__cpp_lib_constexpr_tuple should be defined in c++20"
3398# endif
3399# if __cpp_lib_constexpr_tuple != 201811L
3400# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20"
3401# endif
3402
3403# ifdef __cpp_lib_constexpr_typeinfo
3404# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
3405# endif
3406
3407# ifndef __cpp_lib_constexpr_utility
3408# error "__cpp_lib_constexpr_utility should be defined in c++20"
3409# endif
3410# if __cpp_lib_constexpr_utility != 201811L
3411# error "__cpp_lib_constexpr_utility should have the value 201811L in c++20"
3412# endif
3413
3414# ifndef __cpp_lib_constexpr_vector
3415# error "__cpp_lib_constexpr_vector should be defined in c++20"
3416# endif
3417# if __cpp_lib_constexpr_vector != 201907L
3418# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
3419# endif
3420
3421# ifdef __cpp_lib_constrained_equality
3422# error "__cpp_lib_constrained_equality should not be defined before c++26"
3423# endif
3424
3425# ifdef __cpp_lib_copyable_function
3426# error "__cpp_lib_copyable_function should not be defined before c++26"
3427# endif
3428
3429# ifndef __cpp_lib_coroutine
3430# error "__cpp_lib_coroutine should be defined in c++20"
3431# endif
3432# if __cpp_lib_coroutine != 201902L
3433# error "__cpp_lib_coroutine should have the value 201902L in c++20"
3434# endif
3435
3436# ifdef __cpp_lib_debugging
3437# error "__cpp_lib_debugging should not be defined before c++26"
3438# endif
3439
3440# ifdef __cpp_lib_default_template_type_for_algorithm_values
3441# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
3442# endif
3443
3444# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
3445# ifndef __cpp_lib_destroying_delete
3446# error "__cpp_lib_destroying_delete should be defined in c++20"
3447# endif
3448# if __cpp_lib_destroying_delete != 201806L
3449# error "__cpp_lib_destroying_delete should have the value 201806L in c++20"
3450# endif
3451# else
3452# ifdef __cpp_lib_destroying_delete
3453# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
3454# endif
3455# endif
3456
3457# ifndef __cpp_lib_enable_shared_from_this
3458# error "__cpp_lib_enable_shared_from_this should be defined in c++20"
3459# endif
3460# if __cpp_lib_enable_shared_from_this != 201603L
3461# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
3462# endif
3463
3464# ifndef __cpp_lib_endian
3465# error "__cpp_lib_endian should be defined in c++20"
3466# endif
3467# if __cpp_lib_endian != 201907L
3468# error "__cpp_lib_endian should have the value 201907L in c++20"
3469# endif
3470
3471# ifndef __cpp_lib_erase_if
3472# error "__cpp_lib_erase_if should be defined in c++20"
3473# endif
3474# if __cpp_lib_erase_if != 202002L
3475# error "__cpp_lib_erase_if should have the value 202002L in c++20"
3476# endif
3477
3478# ifndef __cpp_lib_exchange_function
3479# error "__cpp_lib_exchange_function should be defined in c++20"
3480# endif
3481# if __cpp_lib_exchange_function != 201304L
3482# error "__cpp_lib_exchange_function should have the value 201304L in c++20"
3483# endif
3484
3485# if !defined(_LIBCPP_VERSION)
3486# ifndef __cpp_lib_execution
3487# error "__cpp_lib_execution should be defined in c++20"
3488# endif
3489# if __cpp_lib_execution != 201902L
3490# error "__cpp_lib_execution should have the value 201902L in c++20"
3491# endif
3492# else // _LIBCPP_VERSION
3493# ifdef __cpp_lib_execution
3494# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
3495# endif
3496# endif
3497
3498# ifdef __cpp_lib_expected
3499# error "__cpp_lib_expected should not be defined before c++23"
3500# endif
3501
3502# if !defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
3503# ifndef __cpp_lib_filesystem
3504# error "__cpp_lib_filesystem should be defined in c++20"
3505# endif
3506# if __cpp_lib_filesystem != 201703L
3507# error "__cpp_lib_filesystem should have the value 201703L in c++20"
3508# endif
3509# else
3510# ifdef __cpp_lib_filesystem
3511# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
3512# endif
3513# endif
3514
3515# if !defined(_LIBCPP_VERSION)
3516# ifndef __cpp_lib_format
3517# error "__cpp_lib_format should be defined in c++20"
3518# endif
3519# if __cpp_lib_format != 202106L
3520# error "__cpp_lib_format should have the value 202106L in c++20"
3521# endif
3522# else // _LIBCPP_VERSION
3523# ifdef __cpp_lib_format
3524# error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
3525# endif
3526# endif
3527
3528# ifdef __cpp_lib_format_path
3529# error "__cpp_lib_format_path should not be defined before c++23"
3530# endif
3531
3532# ifdef __cpp_lib_format_ranges
3533# error "__cpp_lib_format_ranges should not be defined before c++23"
3534# endif
3535
3536# ifndef __cpp_lib_format_uchar
3537# error "__cpp_lib_format_uchar should be defined in c++20"
3538# endif
3539# if __cpp_lib_format_uchar != 202311L
3540# error "__cpp_lib_format_uchar should have the value 202311L in c++20"
3541# endif
3542
3543# ifdef __cpp_lib_formatters
3544# error "__cpp_lib_formatters should not be defined before c++23"
3545# endif
3546
3547# ifdef __cpp_lib_forward_like
3548# error "__cpp_lib_forward_like should not be defined before c++23"
3549# endif
3550
3551# ifdef __cpp_lib_freestanding_algorithm
3552# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
3553# endif
3554
3555# ifdef __cpp_lib_freestanding_array
3556# error "__cpp_lib_freestanding_array should not be defined before c++26"
3557# endif
3558
3559# ifdef __cpp_lib_freestanding_cstring
3560# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
3561# endif
3562
3563# ifdef __cpp_lib_freestanding_expected
3564# error "__cpp_lib_freestanding_expected should not be defined before c++26"
3565# endif
3566
3567# ifdef __cpp_lib_freestanding_mdspan
3568# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
3569# endif
3570
3571# ifdef __cpp_lib_freestanding_optional
3572# error "__cpp_lib_freestanding_optional should not be defined before c++26"
3573# endif
3574
3575# ifdef __cpp_lib_freestanding_string_view
3576# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
3577# endif
3578
3579# ifdef __cpp_lib_freestanding_variant
3580# error "__cpp_lib_freestanding_variant should not be defined before c++26"
3581# endif
3582
3583# ifdef __cpp_lib_fstream_native_handle
3584# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
3585# endif
3586
3587# ifdef __cpp_lib_function_ref
3588# error "__cpp_lib_function_ref should not be defined before c++26"
3589# endif
3590
3591# ifndef __cpp_lib_gcd_lcm
3592# error "__cpp_lib_gcd_lcm should be defined in c++20"
3593# endif
3594# if __cpp_lib_gcd_lcm != 201606L
3595# error "__cpp_lib_gcd_lcm should have the value 201606L in c++20"
3596# endif
3597
3598# ifdef __cpp_lib_generate_random
3599# error "__cpp_lib_generate_random should not be defined before c++26"
3600# endif
3601
3602# ifndef __cpp_lib_generic_associative_lookup
3603# error "__cpp_lib_generic_associative_lookup should be defined in c++20"
3604# endif
3605# if __cpp_lib_generic_associative_lookup != 201304L
3606# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"
3607# endif
3608
3609# ifndef __cpp_lib_generic_unordered_lookup
3610# error "__cpp_lib_generic_unordered_lookup should be defined in c++20"
3611# endif
3612# if __cpp_lib_generic_unordered_lookup != 201811L
3613# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
3614# endif
3615
3616# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
3617# ifndef __cpp_lib_hardware_interference_size
3618# error "__cpp_lib_hardware_interference_size should be defined in c++20"
3619# endif
3620# if __cpp_lib_hardware_interference_size != 201703L
3621# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20"
3622# endif
3623# else
3624# ifdef __cpp_lib_hardware_interference_size
3625# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
3626# endif
3627# endif
3628
3629# ifndef __cpp_lib_has_unique_object_representations
3630# error "__cpp_lib_has_unique_object_representations should be defined in c++20"
3631# endif
3632# if __cpp_lib_has_unique_object_representations != 201606L
3633# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
3634# endif
3635
3636# ifdef __cpp_lib_hazard_pointer
3637# error "__cpp_lib_hazard_pointer should not be defined before c++26"
3638# endif
3639
3640# ifndef __cpp_lib_hypot
3641# error "__cpp_lib_hypot should be defined in c++20"
3642# endif
3643# if __cpp_lib_hypot != 201603L
3644# error "__cpp_lib_hypot should have the value 201603L in c++20"
3645# endif
3646
3647# ifndef __cpp_lib_incomplete_container_elements
3648# error "__cpp_lib_incomplete_container_elements should be defined in c++20"
3649# endif
3650# if __cpp_lib_incomplete_container_elements != 201505L
3651# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
3652# endif
3653
3654# ifndef __cpp_lib_int_pow2
3655# error "__cpp_lib_int_pow2 should be defined in c++20"
3656# endif
3657# if __cpp_lib_int_pow2 != 202002L
3658# error "__cpp_lib_int_pow2 should have the value 202002L in c++20"
3659# endif
3660
3661# ifndef __cpp_lib_integer_comparison_functions
3662# error "__cpp_lib_integer_comparison_functions should be defined in c++20"
3663# endif
3664# if __cpp_lib_integer_comparison_functions != 202002L
3665# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20"
3666# endif
3667
3668# ifndef __cpp_lib_integer_sequence
3669# error "__cpp_lib_integer_sequence should be defined in c++20"
3670# endif
3671# if __cpp_lib_integer_sequence != 201304L
3672# error "__cpp_lib_integer_sequence should have the value 201304L in c++20"
3673# endif
3674
3675# ifndef __cpp_lib_integral_constant_callable
3676# error "__cpp_lib_integral_constant_callable should be defined in c++20"
3677# endif
3678# if __cpp_lib_integral_constant_callable != 201304L
3679# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20"
3680# endif
3681
3682# ifndef __cpp_lib_interpolate
3683# error "__cpp_lib_interpolate should be defined in c++20"
3684# endif
3685# if __cpp_lib_interpolate != 201902L
3686# error "__cpp_lib_interpolate should have the value 201902L in c++20"
3687# endif
3688
3689# ifndef __cpp_lib_invoke
3690# error "__cpp_lib_invoke should be defined in c++20"
3691# endif
3692# if __cpp_lib_invoke != 201411L
3693# error "__cpp_lib_invoke should have the value 201411L in c++20"
3694# endif
3695
3696# ifdef __cpp_lib_invoke_r
3697# error "__cpp_lib_invoke_r should not be defined before c++23"
3698# endif
3699
3700# ifdef __cpp_lib_ios_noreplace
3701# error "__cpp_lib_ios_noreplace should not be defined before c++23"
3702# endif
3703
3704# ifndef __cpp_lib_is_aggregate
3705# error "__cpp_lib_is_aggregate should be defined in c++20"
3706# endif
3707# if __cpp_lib_is_aggregate != 201703L
3708# error "__cpp_lib_is_aggregate should have the value 201703L in c++20"
3709# endif
3710
3711# ifndef __cpp_lib_is_constant_evaluated
3712# error "__cpp_lib_is_constant_evaluated should be defined in c++20"
3713# endif
3714# if __cpp_lib_is_constant_evaluated != 201811L
3715# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
3716# endif
3717
3718# ifndef __cpp_lib_is_final
3719# error "__cpp_lib_is_final should be defined in c++20"
3720# endif
3721# if __cpp_lib_is_final != 201402L
3722# error "__cpp_lib_is_final should have the value 201402L in c++20"
3723# endif
3724
3725# ifndef __cpp_lib_is_invocable
3726# error "__cpp_lib_is_invocable should be defined in c++20"
3727# endif
3728# if __cpp_lib_is_invocable != 201703L
3729# error "__cpp_lib_is_invocable should have the value 201703L in c++20"
3730# endif
3731
3732# if !defined(_LIBCPP_VERSION)
3733# ifndef __cpp_lib_is_layout_compatible
3734# error "__cpp_lib_is_layout_compatible should be defined in c++20"
3735# endif
3736# if __cpp_lib_is_layout_compatible != 201907L
3737# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20"
3738# endif
3739# else // _LIBCPP_VERSION
3740# ifdef __cpp_lib_is_layout_compatible
3741# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
3742# endif
3743# endif
3744
3745# ifndef __cpp_lib_is_nothrow_convertible
3746# error "__cpp_lib_is_nothrow_convertible should be defined in c++20"
3747# endif
3748# if __cpp_lib_is_nothrow_convertible != 201806L
3749# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20"
3750# endif
3751
3752# ifndef __cpp_lib_is_null_pointer
3753# error "__cpp_lib_is_null_pointer should be defined in c++20"
3754# endif
3755# if __cpp_lib_is_null_pointer != 201309L
3756# error "__cpp_lib_is_null_pointer should have the value 201309L in c++20"
3757# endif
3758
3759# if !defined(_LIBCPP_VERSION)
3760# ifndef __cpp_lib_is_pointer_interconvertible
3761# error "__cpp_lib_is_pointer_interconvertible should be defined in c++20"
3762# endif
3763# if __cpp_lib_is_pointer_interconvertible != 201907L
3764# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20"
3765# endif
3766# else // _LIBCPP_VERSION
3767# ifdef __cpp_lib_is_pointer_interconvertible
3768# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
3769# endif
3770# endif
3771
3772# ifdef __cpp_lib_is_scoped_enum
3773# error "__cpp_lib_is_scoped_enum should not be defined before c++23"
3774# endif
3775
3776# ifndef __cpp_lib_is_swappable
3777# error "__cpp_lib_is_swappable should be defined in c++20"
3778# endif
3779# if __cpp_lib_is_swappable != 201603L
3780# error "__cpp_lib_is_swappable should have the value 201603L in c++20"
3781# endif
3782
3783# if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
3784# ifndef __cpp_lib_jthread
3785# error "__cpp_lib_jthread should be defined in c++20"
3786# endif
3787# if __cpp_lib_jthread != 201911L
3788# error "__cpp_lib_jthread should have the value 201911L in c++20"
3789# endif
3790# else
3791# ifdef __cpp_lib_jthread
3792# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
3793# endif
3794# endif
3795
3796# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
3797# ifndef __cpp_lib_latch
3798# error "__cpp_lib_latch should be defined in c++20"
3799# endif
3800# if __cpp_lib_latch != 201907L
3801# error "__cpp_lib_latch should have the value 201907L in c++20"
3802# endif
3803# else
3804# ifdef __cpp_lib_latch
3805# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
3806# endif
3807# endif
3808
3809# ifndef __cpp_lib_launder
3810# error "__cpp_lib_launder should be defined in c++20"
3811# endif
3812# if __cpp_lib_launder != 201606L
3813# error "__cpp_lib_launder should have the value 201606L in c++20"
3814# endif
3815
3816# ifdef __cpp_lib_linalg
3817# error "__cpp_lib_linalg should not be defined before c++26"
3818# endif
3819
3820# ifndef __cpp_lib_list_remove_return_type
3821# error "__cpp_lib_list_remove_return_type should be defined in c++20"
3822# endif
3823# if __cpp_lib_list_remove_return_type != 201806L
3824# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20"
3825# endif
3826
3827# ifndef __cpp_lib_logical_traits
3828# error "__cpp_lib_logical_traits should be defined in c++20"
3829# endif
3830# if __cpp_lib_logical_traits != 201510L
3831# error "__cpp_lib_logical_traits should have the value 201510L in c++20"
3832# endif
3833
3834# ifndef __cpp_lib_make_from_tuple
3835# error "__cpp_lib_make_from_tuple should be defined in c++20"
3836# endif
3837# if __cpp_lib_make_from_tuple != 201606L
3838# error "__cpp_lib_make_from_tuple should have the value 201606L in c++20"
3839# endif
3840
3841# ifndef __cpp_lib_make_reverse_iterator
3842# error "__cpp_lib_make_reverse_iterator should be defined in c++20"
3843# endif
3844# if __cpp_lib_make_reverse_iterator != 201402L
3845# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
3846# endif
3847
3848# ifndef __cpp_lib_make_unique
3849# error "__cpp_lib_make_unique should be defined in c++20"
3850# endif
3851# if __cpp_lib_make_unique != 201304L
3852# error "__cpp_lib_make_unique should have the value 201304L in c++20"
3853# endif
3854
3855# ifndef __cpp_lib_map_try_emplace
3856# error "__cpp_lib_map_try_emplace should be defined in c++20"
3857# endif
3858# if __cpp_lib_map_try_emplace != 201411L
3859# error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"
3860# endif
3861
3862# ifndef __cpp_lib_math_constants
3863# error "__cpp_lib_math_constants should be defined in c++20"
3864# endif
3865# if __cpp_lib_math_constants != 201907L
3866# error "__cpp_lib_math_constants should have the value 201907L in c++20"
3867# endif
3868
3869# if !defined(_LIBCPP_VERSION)
3870# ifndef __cpp_lib_math_special_functions
3871# error "__cpp_lib_math_special_functions should be defined in c++20"
3872# endif
3873# if __cpp_lib_math_special_functions != 201603L
3874# error "__cpp_lib_math_special_functions should have the value 201603L in c++20"
3875# endif
3876# else // _LIBCPP_VERSION
3877# ifdef __cpp_lib_math_special_functions
3878# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
3879# endif
3880# endif
3881
3882# ifdef __cpp_lib_mdspan
3883# error "__cpp_lib_mdspan should not be defined before c++23"
3884# endif
3885
3886# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
3887# ifndef __cpp_lib_memory_resource
3888# error "__cpp_lib_memory_resource should be defined in c++20"
3889# endif
3890# if __cpp_lib_memory_resource != 201603L
3891# error "__cpp_lib_memory_resource should have the value 201603L in c++20"
3892# endif
3893# else
3894# ifdef __cpp_lib_memory_resource
3895# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
3896# endif
3897# endif
3898
3899# ifndef __cpp_lib_move_iterator_concept
3900# error "__cpp_lib_move_iterator_concept should be defined in c++20"
3901# endif
3902# if __cpp_lib_move_iterator_concept != 202207L
3903# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20"
3904# endif
3905
3906# ifdef __cpp_lib_move_only_function
3907# error "__cpp_lib_move_only_function should not be defined before c++23"
3908# endif
3909
3910# ifndef __cpp_lib_node_extract
3911# error "__cpp_lib_node_extract should be defined in c++20"
3912# endif
3913# if __cpp_lib_node_extract != 201606L
3914# error "__cpp_lib_node_extract should have the value 201606L in c++20"
3915# endif
3916
3917# ifndef __cpp_lib_nonmember_container_access
3918# error "__cpp_lib_nonmember_container_access should be defined in c++20"
3919# endif
3920# if __cpp_lib_nonmember_container_access != 201411L
3921# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
3922# endif
3923
3924# ifndef __cpp_lib_not_fn
3925# error "__cpp_lib_not_fn should be defined in c++20"
3926# endif
3927# if __cpp_lib_not_fn != 201603L
3928# error "__cpp_lib_not_fn should have the value 201603L in c++20"
3929# endif
3930
3931# ifndef __cpp_lib_null_iterators
3932# error "__cpp_lib_null_iterators should be defined in c++20"
3933# endif
3934# if __cpp_lib_null_iterators != 201304L
3935# error "__cpp_lib_null_iterators should have the value 201304L in c++20"
3936# endif
3937
3938# ifndef __cpp_lib_optional
3939# error "__cpp_lib_optional should be defined in c++20"
3940# endif
3941# if __cpp_lib_optional != 201606L
3942# error "__cpp_lib_optional should have the value 201606L in c++20"
3943# endif
3944
3945# ifdef __cpp_lib_out_ptr
3946# error "__cpp_lib_out_ptr should not be defined before c++23"
3947# endif
3948
3949# if !defined(_LIBCPP_VERSION)
3950# ifndef __cpp_lib_parallel_algorithm
3951# error "__cpp_lib_parallel_algorithm should be defined in c++20"
3952# endif
3953# if __cpp_lib_parallel_algorithm != 201603L
3954# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20"
3955# endif
3956# else // _LIBCPP_VERSION
3957# ifdef __cpp_lib_parallel_algorithm
3958# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
3959# endif
3960# endif
3961
3962# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
3963# ifndef __cpp_lib_polymorphic_allocator
3964# error "__cpp_lib_polymorphic_allocator should be defined in c++20"
3965# endif
3966# if __cpp_lib_polymorphic_allocator != 201902L
3967# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20"
3968# endif
3969# else
3970# ifdef __cpp_lib_polymorphic_allocator
3971# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
3972# endif
3973# endif
3974
3975# ifdef __cpp_lib_print
3976# error "__cpp_lib_print should not be defined before c++23"
3977# endif
3978
3979# if !defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)
3980# ifndef __cpp_lib_quoted_string_io
3981# error "__cpp_lib_quoted_string_io should be defined in c++20"
3982# endif
3983# if __cpp_lib_quoted_string_io != 201304L
3984# error "__cpp_lib_quoted_string_io should have the value 201304L in c++20"
3985# endif
3986# else
3987# ifdef __cpp_lib_quoted_string_io
3988# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)' is not met!"
3989# endif
3990# endif
3991
3992# ifndef __cpp_lib_ranges
3993# error "__cpp_lib_ranges should be defined in c++20"
3994# endif
3995# if __cpp_lib_ranges != 202207L
3996# error "__cpp_lib_ranges should have the value 202207L in c++20"
3997# endif
3998
3999# ifdef __cpp_lib_ranges_as_const
4000# error "__cpp_lib_ranges_as_const should not be defined before c++23"
4001# endif
4002
4003# ifdef __cpp_lib_ranges_as_rvalue
4004# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
4005# endif
4006
4007# ifdef __cpp_lib_ranges_chunk
4008# error "__cpp_lib_ranges_chunk should not be defined before c++23"
4009# endif
4010
4011# ifdef __cpp_lib_ranges_chunk_by
4012# error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
4013# endif
4014
4015# ifdef __cpp_lib_ranges_concat
4016# error "__cpp_lib_ranges_concat should not be defined before c++26"
4017# endif
4018
4019# ifdef __cpp_lib_ranges_contains
4020# error "__cpp_lib_ranges_contains should not be defined before c++23"
4021# endif
4022
4023# ifdef __cpp_lib_ranges_iota
4024# error "__cpp_lib_ranges_iota should not be defined before c++23"
4025# endif
4026
4027# ifdef __cpp_lib_ranges_join_with
4028# error "__cpp_lib_ranges_join_with should not be defined before c++23"
4029# endif
4030
4031# ifdef __cpp_lib_ranges_repeat
4032# error "__cpp_lib_ranges_repeat should not be defined before c++23"
4033# endif
4034
4035# ifdef __cpp_lib_ranges_slide
4036# error "__cpp_lib_ranges_slide should not be defined before c++23"
4037# endif
4038
4039# ifdef __cpp_lib_ranges_starts_ends_with
4040# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
4041# endif
4042
4043# ifdef __cpp_lib_ranges_to_container
4044# error "__cpp_lib_ranges_to_container should not be defined before c++23"
4045# endif
4046
4047# ifdef __cpp_lib_ranges_zip
4048# error "__cpp_lib_ranges_zip should not be defined before c++23"
4049# endif
4050
4051# ifdef __cpp_lib_ratio
4052# error "__cpp_lib_ratio should not be defined before c++26"
4053# endif
4054
4055# ifndef __cpp_lib_raw_memory_algorithms
4056# error "__cpp_lib_raw_memory_algorithms should be defined in c++20"
4057# endif
4058# if __cpp_lib_raw_memory_algorithms != 201606L
4059# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20"
4060# endif
4061
4062# ifdef __cpp_lib_rcu
4063# error "__cpp_lib_rcu should not be defined before c++26"
4064# endif
4065
4066# ifdef __cpp_lib_reference_from_temporary
4067# error "__cpp_lib_reference_from_temporary should not be defined before c++23"
4068# endif
4069
4070# ifdef __cpp_lib_reference_wrapper
4071# error "__cpp_lib_reference_wrapper should not be defined before c++26"
4072# endif
4073
4074# ifndef __cpp_lib_remove_cvref
4075# error "__cpp_lib_remove_cvref should be defined in c++20"
4076# endif
4077# if __cpp_lib_remove_cvref != 201711L
4078# error "__cpp_lib_remove_cvref should have the value 201711L in c++20"
4079# endif
4080
4081# ifndef __cpp_lib_result_of_sfinae
4082# error "__cpp_lib_result_of_sfinae should be defined in c++20"
4083# endif
4084# if __cpp_lib_result_of_sfinae != 201210L
4085# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20"
4086# endif
4087
4088# ifndef __cpp_lib_robust_nonmodifying_seq_ops
4089# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20"
4090# endif
4091# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
4092# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20"
4093# endif
4094
4095# ifndef __cpp_lib_sample
4096# error "__cpp_lib_sample should be defined in c++20"
4097# endif
4098# if __cpp_lib_sample != 201603L
4099# error "__cpp_lib_sample should have the value 201603L in c++20"
4100# endif
4101
4102# ifdef __cpp_lib_saturation_arithmetic
4103# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
4104# endif
4105
4106# if !defined(_LIBCPP_HAS_NO_THREADS)
4107# ifndef __cpp_lib_scoped_lock
4108# error "__cpp_lib_scoped_lock should be defined in c++20"
4109# endif
4110# if __cpp_lib_scoped_lock != 201703L
4111# error "__cpp_lib_scoped_lock should have the value 201703L in c++20"
4112# endif
4113# else
4114# ifdef __cpp_lib_scoped_lock
4115# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
4116# endif
4117# endif
4118
4119# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
4120# ifndef __cpp_lib_semaphore
4121# error "__cpp_lib_semaphore should be defined in c++20"
4122# endif
4123# if __cpp_lib_semaphore != 201907L
4124# error "__cpp_lib_semaphore should have the value 201907L in c++20"
4125# endif
4126# else
4127# ifdef __cpp_lib_semaphore
4128# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
4129# endif
4130# endif
4131
4132# if !defined(_LIBCPP_HAS_NO_THREADS)
4133# ifndef __cpp_lib_shared_mutex
4134# error "__cpp_lib_shared_mutex should be defined in c++20"
4135# endif
4136# if __cpp_lib_shared_mutex != 201505L
4137# error "__cpp_lib_shared_mutex should have the value 201505L in c++20"
4138# endif
4139# else
4140# ifdef __cpp_lib_shared_mutex
4141# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
4142# endif
4143# endif
4144
4145# ifndef __cpp_lib_shared_ptr_arrays
4146# error "__cpp_lib_shared_ptr_arrays should be defined in c++20"
4147# endif
4148# if __cpp_lib_shared_ptr_arrays != 201707L
4149# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20"
4150# endif
4151
4152# ifndef __cpp_lib_shared_ptr_weak_type
4153# error "__cpp_lib_shared_ptr_weak_type should be defined in c++20"
4154# endif
4155# if __cpp_lib_shared_ptr_weak_type != 201606L
4156# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20"
4157# endif
4158
4159# if !defined(_LIBCPP_HAS_NO_THREADS)
4160# ifndef __cpp_lib_shared_timed_mutex
4161# error "__cpp_lib_shared_timed_mutex should be defined in c++20"
4162# endif
4163# if __cpp_lib_shared_timed_mutex != 201402L
4164# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20"
4165# endif
4166# else
4167# ifdef __cpp_lib_shared_timed_mutex
4168# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
4169# endif
4170# endif
4171
4172# ifndef __cpp_lib_shift
4173# error "__cpp_lib_shift should be defined in c++20"
4174# endif
4175# if __cpp_lib_shift != 201806L
4176# error "__cpp_lib_shift should have the value 201806L in c++20"
4177# endif
4178
4179# if !defined(_LIBCPP_VERSION)
4180# ifndef __cpp_lib_smart_ptr_for_overwrite
4181# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20"
4182# endif
4183# if __cpp_lib_smart_ptr_for_overwrite != 202002L
4184# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20"
4185# endif
4186# else // _LIBCPP_VERSION
4187# ifdef __cpp_lib_smart_ptr_for_overwrite
4188# error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
4189# endif
4190# endif
4191
4192# ifdef __cpp_lib_smart_ptr_owner_equality
4193# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
4194# endif
4195
4196# ifndef __cpp_lib_source_location
4197# error "__cpp_lib_source_location should be defined in c++20"
4198# endif
4199# if __cpp_lib_source_location != 201907L
4200# error "__cpp_lib_source_location should have the value 201907L in c++20"
4201# endif
4202
4203# ifndef __cpp_lib_span
4204# error "__cpp_lib_span should be defined in c++20"
4205# endif
4206# if __cpp_lib_span != 202002L
4207# error "__cpp_lib_span should have the value 202002L in c++20"
4208# endif
4209
4210# ifdef __cpp_lib_span_at
4211# error "__cpp_lib_span_at should not be defined before c++26"
4212# endif
4213
4214# ifdef __cpp_lib_span_initializer_list
4215# error "__cpp_lib_span_initializer_list should not be defined before c++26"
4216# endif
4217
4218# ifdef __cpp_lib_spanstream
4219# error "__cpp_lib_spanstream should not be defined before c++23"
4220# endif
4221
4222# ifndef __cpp_lib_ssize
4223# error "__cpp_lib_ssize should be defined in c++20"
4224# endif
4225# if __cpp_lib_ssize != 201902L
4226# error "__cpp_lib_ssize should have the value 201902L in c++20"
4227# endif
4228
4229# ifdef __cpp_lib_sstream_from_string_view
4230# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
4231# endif
4232
4233# ifdef __cpp_lib_stacktrace
4234# error "__cpp_lib_stacktrace should not be defined before c++23"
4235# endif
4236
4237# ifndef __cpp_lib_starts_ends_with
4238# error "__cpp_lib_starts_ends_with should be defined in c++20"
4239# endif
4240# if __cpp_lib_starts_ends_with != 201711L
4241# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20"
4242# endif
4243
4244# ifdef __cpp_lib_stdatomic_h
4245# error "__cpp_lib_stdatomic_h should not be defined before c++23"
4246# endif
4247
4248# ifdef __cpp_lib_string_contains
4249# error "__cpp_lib_string_contains should not be defined before c++23"
4250# endif
4251
4252# ifdef __cpp_lib_string_resize_and_overwrite
4253# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
4254# endif
4255
4256# ifndef __cpp_lib_string_udls
4257# error "__cpp_lib_string_udls should be defined in c++20"
4258# endif
4259# if __cpp_lib_string_udls != 201304L
4260# error "__cpp_lib_string_udls should have the value 201304L in c++20"
4261# endif
4262
4263# ifndef __cpp_lib_string_view
4264# error "__cpp_lib_string_view should be defined in c++20"
4265# endif
4266# if __cpp_lib_string_view != 201803L
4267# error "__cpp_lib_string_view should have the value 201803L in c++20"
4268# endif
4269
4270# ifdef __cpp_lib_submdspan
4271# error "__cpp_lib_submdspan should not be defined before c++26"
4272# endif
4273
4274# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
4275# ifndef __cpp_lib_syncbuf
4276# error "__cpp_lib_syncbuf should be defined in c++20"
4277# endif
4278# if __cpp_lib_syncbuf != 201803L
4279# error "__cpp_lib_syncbuf should have the value 201803L in c++20"
4280# endif
4281# else
4282# ifdef __cpp_lib_syncbuf
4283# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)' is not met!"
4284# endif
4285# endif
4286
4287# ifdef __cpp_lib_text_encoding
4288# error "__cpp_lib_text_encoding should not be defined before c++26"
4289# endif
4290
4291# if !defined(_LIBCPP_VERSION)
4292# ifndef __cpp_lib_three_way_comparison
4293# error "__cpp_lib_three_way_comparison should be defined in c++20"
4294# endif
4295# if __cpp_lib_three_way_comparison != 201907L
4296# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
4297# endif
4298# else // _LIBCPP_VERSION
4299# ifdef __cpp_lib_three_way_comparison
4300# error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
4301# endif
4302# endif
4303
4304# ifndef __cpp_lib_to_address
4305# error "__cpp_lib_to_address should be defined in c++20"
4306# endif
4307# if __cpp_lib_to_address != 201711L
4308# error "__cpp_lib_to_address should have the value 201711L in c++20"
4309# endif
4310
4311# ifndef __cpp_lib_to_array
4312# error "__cpp_lib_to_array should be defined in c++20"
4313# endif
4314# if __cpp_lib_to_array != 201907L
4315# error "__cpp_lib_to_array should have the value 201907L in c++20"
4316# endif
4317
4318# if !defined(_LIBCPP_VERSION)
4319# ifndef __cpp_lib_to_chars
4320# error "__cpp_lib_to_chars should be defined in c++20"
4321# endif
4322# if __cpp_lib_to_chars != 201611L
4323# error "__cpp_lib_to_chars should have the value 201611L in c++20"
4324# endif
4325# else // _LIBCPP_VERSION
4326# ifdef __cpp_lib_to_chars
4327# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
4328# endif
4329# endif
4330
4331# ifdef __cpp_lib_to_string
4332# error "__cpp_lib_to_string should not be defined before c++23"
4333# endif
4334
4335# ifdef __cpp_lib_to_underlying
4336# error "__cpp_lib_to_underlying should not be defined before c++23"
4337# endif
4338
4339# ifndef __cpp_lib_transformation_trait_aliases
4340# error "__cpp_lib_transformation_trait_aliases should be defined in c++20"
4341# endif
4342# if __cpp_lib_transformation_trait_aliases != 201304L
4343# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20"
4344# endif
4345
4346# ifndef __cpp_lib_transparent_operators
4347# error "__cpp_lib_transparent_operators should be defined in c++20"
4348# endif
4349# if __cpp_lib_transparent_operators != 201510L
4350# error "__cpp_lib_transparent_operators should have the value 201510L in c++20"
4351# endif
4352
4353# ifndef __cpp_lib_tuple_element_t
4354# error "__cpp_lib_tuple_element_t should be defined in c++20"
4355# endif
4356# if __cpp_lib_tuple_element_t != 201402L
4357# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
4358# endif
4359
4360# ifdef __cpp_lib_tuple_like
4361# error "__cpp_lib_tuple_like should not be defined before c++23"
4362# endif
4363
4364# ifndef __cpp_lib_tuples_by_type
4365# error "__cpp_lib_tuples_by_type should be defined in c++20"
4366# endif
4367# if __cpp_lib_tuples_by_type != 201304L
4368# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20"
4369# endif
4370
4371# ifndef __cpp_lib_type_identity
4372# error "__cpp_lib_type_identity should be defined in c++20"
4373# endif
4374# if __cpp_lib_type_identity != 201806L
4375# error "__cpp_lib_type_identity should have the value 201806L in c++20"
4376# endif
4377
4378# ifndef __cpp_lib_type_trait_variable_templates
4379# error "__cpp_lib_type_trait_variable_templates should be defined in c++20"
4380# endif
4381# if __cpp_lib_type_trait_variable_templates != 201510L
4382# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20"
4383# endif
4384
4385# ifndef __cpp_lib_uncaught_exceptions
4386# error "__cpp_lib_uncaught_exceptions should be defined in c++20"
4387# endif
4388# if __cpp_lib_uncaught_exceptions != 201411L
4389# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20"
4390# endif
4391
4392# ifndef __cpp_lib_unordered_map_try_emplace
4393# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
4394# endif
4395# if __cpp_lib_unordered_map_try_emplace != 201411L
4396# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20"
4397# endif
4398
4399# ifdef __cpp_lib_unreachable
4400# error "__cpp_lib_unreachable should not be defined before c++23"
4401# endif
4402
4403# ifndef __cpp_lib_unwrap_ref
4404# error "__cpp_lib_unwrap_ref should be defined in c++20"
4405# endif
4406# if __cpp_lib_unwrap_ref != 201811L
4407# error "__cpp_lib_unwrap_ref should have the value 201811L in c++20"
4408# endif
4409
4410# ifndef __cpp_lib_variant
4411# error "__cpp_lib_variant should be defined in c++20"
4412# endif
4413# if __cpp_lib_variant != 202102L
4414# error "__cpp_lib_variant should have the value 202102L in c++20"
4415# endif
4416
4417# ifndef __cpp_lib_void_t
4418# error "__cpp_lib_void_t should be defined in c++20"
4419# endif
4420# if __cpp_lib_void_t != 201411L
4421# error "__cpp_lib_void_t should have the value 201411L in c++20"
4422# endif
4423
4424# ifdef __cpp_lib_within_lifetime
4425# error "__cpp_lib_within_lifetime should not be defined before c++26"
4426# endif
4427
4428#elif TEST_STD_VER == 23
4429
4430# ifndef __cpp_lib_adaptor_iterator_pair_constructor
4431# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23"
4432# endif
4433# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
4434# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
4435# endif
4436
4437# ifndef __cpp_lib_addressof_constexpr
4438# error "__cpp_lib_addressof_constexpr should be defined in c++23"
4439# endif
4440# if __cpp_lib_addressof_constexpr != 201603L
4441# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23"
4442# endif
4443
4444# ifndef __cpp_lib_allocate_at_least
4445# error "__cpp_lib_allocate_at_least should be defined in c++23"
4446# endif
4447# if __cpp_lib_allocate_at_least != 202302L
4448# error "__cpp_lib_allocate_at_least should have the value 202302L in c++23"
4449# endif
4450
4451# ifndef __cpp_lib_allocator_traits_is_always_equal
4452# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23"
4453# endif
4454# if __cpp_lib_allocator_traits_is_always_equal != 201411L
4455# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
4456# endif
4457
4458# ifndef __cpp_lib_any
4459# error "__cpp_lib_any should be defined in c++23"
4460# endif
4461# if __cpp_lib_any != 201606L
4462# error "__cpp_lib_any should have the value 201606L in c++23"
4463# endif
4464
4465# ifndef __cpp_lib_apply
4466# error "__cpp_lib_apply should be defined in c++23"
4467# endif
4468# if __cpp_lib_apply != 201603L
4469# error "__cpp_lib_apply should have the value 201603L in c++23"
4470# endif
4471
4472# ifndef __cpp_lib_array_constexpr
4473# error "__cpp_lib_array_constexpr should be defined in c++23"
4474# endif
4475# if __cpp_lib_array_constexpr != 201811L
4476# error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
4477# endif
4478
4479# ifndef __cpp_lib_as_const
4480# error "__cpp_lib_as_const should be defined in c++23"
4481# endif
4482# if __cpp_lib_as_const != 201510L
4483# error "__cpp_lib_as_const should have the value 201510L in c++23"
4484# endif
4485
4486# if !defined(_LIBCPP_VERSION)
4487# ifndef __cpp_lib_associative_heterogeneous_erasure
4488# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23"
4489# endif
4490# if __cpp_lib_associative_heterogeneous_erasure != 202110L
4491# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
4492# endif
4493# else // _LIBCPP_VERSION
4494# ifdef __cpp_lib_associative_heterogeneous_erasure
4495# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
4496# endif
4497# endif
4498
4499# ifdef __cpp_lib_associative_heterogeneous_insertion
4500# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
4501# endif
4502
4503# ifndef __cpp_lib_assume_aligned
4504# error "__cpp_lib_assume_aligned should be defined in c++23"
4505# endif
4506# if __cpp_lib_assume_aligned != 201811L
4507# error "__cpp_lib_assume_aligned should have the value 201811L in c++23"
4508# endif
4509
4510# ifndef __cpp_lib_atomic_flag_test
4511# error "__cpp_lib_atomic_flag_test should be defined in c++23"
4512# endif
4513# if __cpp_lib_atomic_flag_test != 201907L
4514# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
4515# endif
4516
4517# if !defined(_LIBCPP_VERSION)
4518# ifndef __cpp_lib_atomic_float
4519# error "__cpp_lib_atomic_float should be defined in c++23"
4520# endif
4521# if __cpp_lib_atomic_float != 201711L
4522# error "__cpp_lib_atomic_float should have the value 201711L in c++23"
4523# endif
4524# else // _LIBCPP_VERSION
4525# ifdef __cpp_lib_atomic_float
4526# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
4527# endif
4528# endif
4529
4530# ifndef __cpp_lib_atomic_is_always_lock_free
4531# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23"
4532# endif
4533# if __cpp_lib_atomic_is_always_lock_free != 201603L
4534# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23"
4535# endif
4536
4537# ifndef __cpp_lib_atomic_lock_free_type_aliases
4538# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23"
4539# endif
4540# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
4541# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23"
4542# endif
4543
4544# ifdef __cpp_lib_atomic_min_max
4545# error "__cpp_lib_atomic_min_max should not be defined before c++26"
4546# endif
4547
4548# if !defined(_LIBCPP_VERSION)
4549# ifndef __cpp_lib_atomic_ref
4550# error "__cpp_lib_atomic_ref should be defined in c++23"
4551# endif
4552# if __cpp_lib_atomic_ref != 201806L
4553# error "__cpp_lib_atomic_ref should have the value 201806L in c++23"
4554# endif
4555# else // _LIBCPP_VERSION
4556# ifdef __cpp_lib_atomic_ref
4557# error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
4558# endif
4559# endif
4560
4561# if !defined(_LIBCPP_VERSION)
4562# ifndef __cpp_lib_atomic_shared_ptr
4563# error "__cpp_lib_atomic_shared_ptr should be defined in c++23"
4564# endif
4565# if __cpp_lib_atomic_shared_ptr != 201711L
4566# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23"
4567# endif
4568# else // _LIBCPP_VERSION
4569# ifdef __cpp_lib_atomic_shared_ptr
4570# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
4571# endif
4572# endif
4573
4574# ifndef __cpp_lib_atomic_value_initialization
4575# error "__cpp_lib_atomic_value_initialization should be defined in c++23"
4576# endif
4577# if __cpp_lib_atomic_value_initialization != 201911L
4578# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
4579# endif
4580
4581# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
4582# ifndef __cpp_lib_atomic_wait
4583# error "__cpp_lib_atomic_wait should be defined in c++23"
4584# endif
4585# if __cpp_lib_atomic_wait != 201907L
4586# error "__cpp_lib_atomic_wait should have the value 201907L in c++23"
4587# endif
4588# else
4589# ifdef __cpp_lib_atomic_wait
4590# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
4591# endif
4592# endif
4593
4594# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
4595# ifndef __cpp_lib_barrier
4596# error "__cpp_lib_barrier should be defined in c++23"
4597# endif
4598# if __cpp_lib_barrier != 201907L
4599# error "__cpp_lib_barrier should have the value 201907L in c++23"
4600# endif
4601# else
4602# ifdef __cpp_lib_barrier
4603# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
4604# endif
4605# endif
4606
4607# ifndef __cpp_lib_bind_back
4608# error "__cpp_lib_bind_back should be defined in c++23"
4609# endif
4610# if __cpp_lib_bind_back != 202202L
4611# error "__cpp_lib_bind_back should have the value 202202L in c++23"
4612# endif
4613
4614# ifndef __cpp_lib_bind_front
4615# error "__cpp_lib_bind_front should be defined in c++23"
4616# endif
4617# if __cpp_lib_bind_front != 201907L
4618# error "__cpp_lib_bind_front should have the value 201907L in c++23"
4619# endif
4620
4621# ifndef __cpp_lib_bit_cast
4622# error "__cpp_lib_bit_cast should be defined in c++23"
4623# endif
4624# if __cpp_lib_bit_cast != 201806L
4625# error "__cpp_lib_bit_cast should have the value 201806L in c++23"
4626# endif
4627
4628# ifndef __cpp_lib_bitops
4629# error "__cpp_lib_bitops should be defined in c++23"
4630# endif
4631# if __cpp_lib_bitops != 201907L
4632# error "__cpp_lib_bitops should have the value 201907L in c++23"
4633# endif
4634
4635# ifdef __cpp_lib_bitset
4636# error "__cpp_lib_bitset should not be defined before c++26"
4637# endif
4638
4639# ifndef __cpp_lib_bool_constant
4640# error "__cpp_lib_bool_constant should be defined in c++23"
4641# endif
4642# if __cpp_lib_bool_constant != 201505L
4643# error "__cpp_lib_bool_constant should have the value 201505L in c++23"
4644# endif
4645
4646# ifndef __cpp_lib_bounded_array_traits
4647# error "__cpp_lib_bounded_array_traits should be defined in c++23"
4648# endif
4649# if __cpp_lib_bounded_array_traits != 201902L
4650# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23"
4651# endif
4652
4653# ifndef __cpp_lib_boyer_moore_searcher
4654# error "__cpp_lib_boyer_moore_searcher should be defined in c++23"
4655# endif
4656# if __cpp_lib_boyer_moore_searcher != 201603L
4657# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23"
4658# endif
4659
4660# ifndef __cpp_lib_byte
4661# error "__cpp_lib_byte should be defined in c++23"
4662# endif
4663# if __cpp_lib_byte != 201603L
4664# error "__cpp_lib_byte should have the value 201603L in c++23"
4665# endif
4666
4667# ifndef __cpp_lib_byteswap
4668# error "__cpp_lib_byteswap should be defined in c++23"
4669# endif
4670# if __cpp_lib_byteswap != 202110L
4671# error "__cpp_lib_byteswap should have the value 202110L in c++23"
4672# endif
4673
4674# if defined(__cpp_char8_t)
4675# ifndef __cpp_lib_char8_t
4676# error "__cpp_lib_char8_t should be defined in c++23"
4677# endif
4678# if __cpp_lib_char8_t != 201907L
4679# error "__cpp_lib_char8_t should have the value 201907L in c++23"
4680# endif
4681# else
4682# ifdef __cpp_lib_char8_t
4683# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
4684# endif
4685# endif
4686
4687# ifndef __cpp_lib_chrono
4688# error "__cpp_lib_chrono should be defined in c++23"
4689# endif
4690# if __cpp_lib_chrono != 201611L
4691# error "__cpp_lib_chrono should have the value 201611L in c++23"
4692# endif
4693
4694# ifndef __cpp_lib_chrono_udls
4695# error "__cpp_lib_chrono_udls should be defined in c++23"
4696# endif
4697# if __cpp_lib_chrono_udls != 201304L
4698# error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
4699# endif
4700
4701# ifndef __cpp_lib_clamp
4702# error "__cpp_lib_clamp should be defined in c++23"
4703# endif
4704# if __cpp_lib_clamp != 201603L
4705# error "__cpp_lib_clamp should have the value 201603L in c++23"
4706# endif
4707
4708# ifndef __cpp_lib_complex_udls
4709# error "__cpp_lib_complex_udls should be defined in c++23"
4710# endif
4711# if __cpp_lib_complex_udls != 201309L
4712# error "__cpp_lib_complex_udls should have the value 201309L in c++23"
4713# endif
4714
4715# ifndef __cpp_lib_concepts
4716# error "__cpp_lib_concepts should be defined in c++23"
4717# endif
4718# if __cpp_lib_concepts != 202002L
4719# error "__cpp_lib_concepts should have the value 202002L in c++23"
4720# endif
4721
4722# ifndef __cpp_lib_constexpr_algorithms
4723# error "__cpp_lib_constexpr_algorithms should be defined in c++23"
4724# endif
4725# if __cpp_lib_constexpr_algorithms != 201806L
4726# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
4727# endif
4728
4729# ifndef __cpp_lib_constexpr_bitset
4730# error "__cpp_lib_constexpr_bitset should be defined in c++23"
4731# endif
4732# if __cpp_lib_constexpr_bitset != 202207L
4733# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
4734# endif
4735
4736# ifndef __cpp_lib_constexpr_charconv
4737# error "__cpp_lib_constexpr_charconv should be defined in c++23"
4738# endif
4739# if __cpp_lib_constexpr_charconv != 202207L
4740# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23"
4741# endif
4742
4743# if !defined(_LIBCPP_VERSION)
4744# ifndef __cpp_lib_constexpr_cmath
4745# error "__cpp_lib_constexpr_cmath should be defined in c++23"
4746# endif
4747# if __cpp_lib_constexpr_cmath != 202202L
4748# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
4749# endif
4750# else // _LIBCPP_VERSION
4751# ifdef __cpp_lib_constexpr_cmath
4752# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
4753# endif
4754# endif
4755
4756# ifndef __cpp_lib_constexpr_complex
4757# error "__cpp_lib_constexpr_complex should be defined in c++23"
4758# endif
4759# if __cpp_lib_constexpr_complex != 201711L
4760# error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
4761# endif
4762
4763# ifndef __cpp_lib_constexpr_dynamic_alloc
4764# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23"
4765# endif
4766# if __cpp_lib_constexpr_dynamic_alloc != 201907L
4767# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
4768# endif
4769
4770# ifndef __cpp_lib_constexpr_functional
4771# error "__cpp_lib_constexpr_functional should be defined in c++23"
4772# endif
4773# if __cpp_lib_constexpr_functional != 201907L
4774# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
4775# endif
4776
4777# ifndef __cpp_lib_constexpr_iterator
4778# error "__cpp_lib_constexpr_iterator should be defined in c++23"
4779# endif
4780# if __cpp_lib_constexpr_iterator != 201811L
4781# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
4782# endif
4783
4784# ifndef __cpp_lib_constexpr_memory
4785# error "__cpp_lib_constexpr_memory should be defined in c++23"
4786# endif
4787# if __cpp_lib_constexpr_memory != 202202L
4788# error "__cpp_lib_constexpr_memory should have the value 202202L in c++23"
4789# endif
4790
4791# ifndef __cpp_lib_constexpr_numeric
4792# error "__cpp_lib_constexpr_numeric should be defined in c++23"
4793# endif
4794# if __cpp_lib_constexpr_numeric != 201911L
4795# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23"
4796# endif
4797
4798# ifndef __cpp_lib_constexpr_string
4799# error "__cpp_lib_constexpr_string should be defined in c++23"
4800# endif
4801# if __cpp_lib_constexpr_string != 201907L
4802# error "__cpp_lib_constexpr_string should have the value 201907L in c++23"
4803# endif
4804
4805# ifndef __cpp_lib_constexpr_string_view
4806# error "__cpp_lib_constexpr_string_view should be defined in c++23"
4807# endif
4808# if __cpp_lib_constexpr_string_view != 201811L
4809# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23"
4810# endif
4811
4812# ifndef __cpp_lib_constexpr_tuple
4813# error "__cpp_lib_constexpr_tuple should be defined in c++23"
4814# endif
4815# if __cpp_lib_constexpr_tuple != 201811L
4816# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23"
4817# endif
4818
4819# ifndef __cpp_lib_constexpr_typeinfo
4820# error "__cpp_lib_constexpr_typeinfo should be defined in c++23"
4821# endif
4822# if __cpp_lib_constexpr_typeinfo != 202106L
4823# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
4824# endif
4825
4826# ifndef __cpp_lib_constexpr_utility
4827# error "__cpp_lib_constexpr_utility should be defined in c++23"
4828# endif
4829# if __cpp_lib_constexpr_utility != 201811L
4830# error "__cpp_lib_constexpr_utility should have the value 201811L in c++23"
4831# endif
4832
4833# ifndef __cpp_lib_constexpr_vector
4834# error "__cpp_lib_constexpr_vector should be defined in c++23"
4835# endif
4836# if __cpp_lib_constexpr_vector != 201907L
4837# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
4838# endif
4839
4840# ifdef __cpp_lib_constrained_equality
4841# error "__cpp_lib_constrained_equality should not be defined before c++26"
4842# endif
4843
4844# ifdef __cpp_lib_copyable_function
4845# error "__cpp_lib_copyable_function should not be defined before c++26"
4846# endif
4847
4848# ifndef __cpp_lib_coroutine
4849# error "__cpp_lib_coroutine should be defined in c++23"
4850# endif
4851# if __cpp_lib_coroutine != 201902L
4852# error "__cpp_lib_coroutine should have the value 201902L in c++23"
4853# endif
4854
4855# ifdef __cpp_lib_debugging
4856# error "__cpp_lib_debugging should not be defined before c++26"
4857# endif
4858
4859# ifdef __cpp_lib_default_template_type_for_algorithm_values
4860# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
4861# endif
4862
4863# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
4864# ifndef __cpp_lib_destroying_delete
4865# error "__cpp_lib_destroying_delete should be defined in c++23"
4866# endif
4867# if __cpp_lib_destroying_delete != 201806L
4868# error "__cpp_lib_destroying_delete should have the value 201806L in c++23"
4869# endif
4870# else
4871# ifdef __cpp_lib_destroying_delete
4872# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
4873# endif
4874# endif
4875
4876# ifndef __cpp_lib_enable_shared_from_this
4877# error "__cpp_lib_enable_shared_from_this should be defined in c++23"
4878# endif
4879# if __cpp_lib_enable_shared_from_this != 201603L
4880# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23"
4881# endif
4882
4883# ifndef __cpp_lib_endian
4884# error "__cpp_lib_endian should be defined in c++23"
4885# endif
4886# if __cpp_lib_endian != 201907L
4887# error "__cpp_lib_endian should have the value 201907L in c++23"
4888# endif
4889
4890# ifndef __cpp_lib_erase_if
4891# error "__cpp_lib_erase_if should be defined in c++23"
4892# endif
4893# if __cpp_lib_erase_if != 202002L
4894# error "__cpp_lib_erase_if should have the value 202002L in c++23"
4895# endif
4896
4897# ifndef __cpp_lib_exchange_function
4898# error "__cpp_lib_exchange_function should be defined in c++23"
4899# endif
4900# if __cpp_lib_exchange_function != 201304L
4901# error "__cpp_lib_exchange_function should have the value 201304L in c++23"
4902# endif
4903
4904# if !defined(_LIBCPP_VERSION)
4905# ifndef __cpp_lib_execution
4906# error "__cpp_lib_execution should be defined in c++23"
4907# endif
4908# if __cpp_lib_execution != 201902L
4909# error "__cpp_lib_execution should have the value 201902L in c++23"
4910# endif
4911# else // _LIBCPP_VERSION
4912# ifdef __cpp_lib_execution
4913# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
4914# endif
4915# endif
4916
4917# ifndef __cpp_lib_expected
4918# error "__cpp_lib_expected should be defined in c++23"
4919# endif
4920# if __cpp_lib_expected != 202211L
4921# error "__cpp_lib_expected should have the value 202211L in c++23"
4922# endif
4923
4924# if !defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
4925# ifndef __cpp_lib_filesystem
4926# error "__cpp_lib_filesystem should be defined in c++23"
4927# endif
4928# if __cpp_lib_filesystem != 201703L
4929# error "__cpp_lib_filesystem should have the value 201703L in c++23"
4930# endif
4931# else
4932# ifdef __cpp_lib_filesystem
4933# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
4934# endif
4935# endif
4936
4937# if !defined(_LIBCPP_VERSION)
4938# ifndef __cpp_lib_format
4939# error "__cpp_lib_format should be defined in c++23"
4940# endif
4941# if __cpp_lib_format != 202106L
4942# error "__cpp_lib_format should have the value 202106L in c++23"
4943# endif
4944# else // _LIBCPP_VERSION
4945# ifdef __cpp_lib_format
4946# error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
4947# endif
4948# endif
4949
4950# if !defined(_LIBCPP_VERSION)
4951# ifndef __cpp_lib_format_path
4952# error "__cpp_lib_format_path should be defined in c++23"
4953# endif
4954# if __cpp_lib_format_path != 202403L
4955# error "__cpp_lib_format_path should have the value 202403L in c++23"
4956# endif
4957# else // _LIBCPP_VERSION
4958# ifdef __cpp_lib_format_path
4959# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!"
4960# endif
4961# endif
4962
4963# ifndef __cpp_lib_format_ranges
4964# error "__cpp_lib_format_ranges should be defined in c++23"
4965# endif
4966# if __cpp_lib_format_ranges != 202207L
4967# error "__cpp_lib_format_ranges should have the value 202207L in c++23"
4968# endif
4969
4970# ifndef __cpp_lib_format_uchar
4971# error "__cpp_lib_format_uchar should be defined in c++23"
4972# endif
4973# if __cpp_lib_format_uchar != 202311L
4974# error "__cpp_lib_format_uchar should have the value 202311L in c++23"
4975# endif
4976
4977# if !defined(_LIBCPP_VERSION)
4978# ifndef __cpp_lib_formatters
4979# error "__cpp_lib_formatters should be defined in c++23"
4980# endif
4981# if __cpp_lib_formatters != 202302L
4982# error "__cpp_lib_formatters should have the value 202302L in c++23"
4983# endif
4984# else // _LIBCPP_VERSION
4985# ifdef __cpp_lib_formatters
4986# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
4987# endif
4988# endif
4989
4990# ifndef __cpp_lib_forward_like
4991# error "__cpp_lib_forward_like should be defined in c++23"
4992# endif
4993# if __cpp_lib_forward_like != 202207L
4994# error "__cpp_lib_forward_like should have the value 202207L in c++23"
4995# endif
4996
4997# ifdef __cpp_lib_freestanding_algorithm
4998# error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
4999# endif
5000
5001# ifdef __cpp_lib_freestanding_array
5002# error "__cpp_lib_freestanding_array should not be defined before c++26"
5003# endif
5004
5005# ifdef __cpp_lib_freestanding_cstring
5006# error "__cpp_lib_freestanding_cstring should not be defined before c++26"
5007# endif
5008
5009# ifdef __cpp_lib_freestanding_expected
5010# error "__cpp_lib_freestanding_expected should not be defined before c++26"
5011# endif
5012
5013# ifdef __cpp_lib_freestanding_mdspan
5014# error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
5015# endif
5016
5017# ifdef __cpp_lib_freestanding_optional
5018# error "__cpp_lib_freestanding_optional should not be defined before c++26"
5019# endif
5020
5021# ifdef __cpp_lib_freestanding_string_view
5022# error "__cpp_lib_freestanding_string_view should not be defined before c++26"
5023# endif
5024
5025# ifdef __cpp_lib_freestanding_variant
5026# error "__cpp_lib_freestanding_variant should not be defined before c++26"
5027# endif
5028
5029# ifdef __cpp_lib_fstream_native_handle
5030# error "__cpp_lib_fstream_native_handle should not be defined before c++26"
5031# endif
5032
5033# ifdef __cpp_lib_function_ref
5034# error "__cpp_lib_function_ref should not be defined before c++26"
5035# endif
5036
5037# ifndef __cpp_lib_gcd_lcm
5038# error "__cpp_lib_gcd_lcm should be defined in c++23"
5039# endif
5040# if __cpp_lib_gcd_lcm != 201606L
5041# error "__cpp_lib_gcd_lcm should have the value 201606L in c++23"
5042# endif
5043
5044# ifdef __cpp_lib_generate_random
5045# error "__cpp_lib_generate_random should not be defined before c++26"
5046# endif
5047
5048# ifndef __cpp_lib_generic_associative_lookup
5049# error "__cpp_lib_generic_associative_lookup should be defined in c++23"
5050# endif
5051# if __cpp_lib_generic_associative_lookup != 201304L
5052# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23"
5053# endif
5054
5055# ifndef __cpp_lib_generic_unordered_lookup
5056# error "__cpp_lib_generic_unordered_lookup should be defined in c++23"
5057# endif
5058# if __cpp_lib_generic_unordered_lookup != 201811L
5059# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
5060# endif
5061
5062# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
5063# ifndef __cpp_lib_hardware_interference_size
5064# error "__cpp_lib_hardware_interference_size should be defined in c++23"
5065# endif
5066# if __cpp_lib_hardware_interference_size != 201703L
5067# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23"
5068# endif
5069# else
5070# ifdef __cpp_lib_hardware_interference_size
5071# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
5072# endif
5073# endif
5074
5075# ifndef __cpp_lib_has_unique_object_representations
5076# error "__cpp_lib_has_unique_object_representations should be defined in c++23"
5077# endif
5078# if __cpp_lib_has_unique_object_representations != 201606L
5079# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23"
5080# endif
5081
5082# ifdef __cpp_lib_hazard_pointer
5083# error "__cpp_lib_hazard_pointer should not be defined before c++26"
5084# endif
5085
5086# ifndef __cpp_lib_hypot
5087# error "__cpp_lib_hypot should be defined in c++23"
5088# endif
5089# if __cpp_lib_hypot != 201603L
5090# error "__cpp_lib_hypot should have the value 201603L in c++23"
5091# endif
5092
5093# ifndef __cpp_lib_incomplete_container_elements
5094# error "__cpp_lib_incomplete_container_elements should be defined in c++23"
5095# endif
5096# if __cpp_lib_incomplete_container_elements != 201505L
5097# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
5098# endif
5099
5100# ifndef __cpp_lib_int_pow2
5101# error "__cpp_lib_int_pow2 should be defined in c++23"
5102# endif
5103# if __cpp_lib_int_pow2 != 202002L
5104# error "__cpp_lib_int_pow2 should have the value 202002L in c++23"
5105# endif
5106
5107# ifndef __cpp_lib_integer_comparison_functions
5108# error "__cpp_lib_integer_comparison_functions should be defined in c++23"
5109# endif
5110# if __cpp_lib_integer_comparison_functions != 202002L
5111# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23"
5112# endif
5113
5114# ifndef __cpp_lib_integer_sequence
5115# error "__cpp_lib_integer_sequence should be defined in c++23"
5116# endif
5117# if __cpp_lib_integer_sequence != 201304L
5118# error "__cpp_lib_integer_sequence should have the value 201304L in c++23"
5119# endif
5120
5121# ifndef __cpp_lib_integral_constant_callable
5122# error "__cpp_lib_integral_constant_callable should be defined in c++23"
5123# endif
5124# if __cpp_lib_integral_constant_callable != 201304L
5125# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23"
5126# endif
5127
5128# ifndef __cpp_lib_interpolate
5129# error "__cpp_lib_interpolate should be defined in c++23"
5130# endif
5131# if __cpp_lib_interpolate != 201902L
5132# error "__cpp_lib_interpolate should have the value 201902L in c++23"
5133# endif
5134
5135# ifndef __cpp_lib_invoke
5136# error "__cpp_lib_invoke should be defined in c++23"
5137# endif
5138# if __cpp_lib_invoke != 201411L
5139# error "__cpp_lib_invoke should have the value 201411L in c++23"
5140# endif
5141
5142# ifndef __cpp_lib_invoke_r
5143# error "__cpp_lib_invoke_r should be defined in c++23"
5144# endif
5145# if __cpp_lib_invoke_r != 202106L
5146# error "__cpp_lib_invoke_r should have the value 202106L in c++23"
5147# endif
5148
5149# ifndef __cpp_lib_ios_noreplace
5150# error "__cpp_lib_ios_noreplace should be defined in c++23"
5151# endif
5152# if __cpp_lib_ios_noreplace != 202207L
5153# error "__cpp_lib_ios_noreplace should have the value 202207L in c++23"
5154# endif
5155
5156# ifndef __cpp_lib_is_aggregate
5157# error "__cpp_lib_is_aggregate should be defined in c++23"
5158# endif
5159# if __cpp_lib_is_aggregate != 201703L
5160# error "__cpp_lib_is_aggregate should have the value 201703L in c++23"
5161# endif
5162
5163# ifndef __cpp_lib_is_constant_evaluated
5164# error "__cpp_lib_is_constant_evaluated should be defined in c++23"
5165# endif
5166# if __cpp_lib_is_constant_evaluated != 201811L
5167# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23"
5168# endif
5169
5170# ifndef __cpp_lib_is_final
5171# error "__cpp_lib_is_final should be defined in c++23"
5172# endif
5173# if __cpp_lib_is_final != 201402L
5174# error "__cpp_lib_is_final should have the value 201402L in c++23"
5175# endif
5176
5177# ifndef __cpp_lib_is_invocable
5178# error "__cpp_lib_is_invocable should be defined in c++23"
5179# endif
5180# if __cpp_lib_is_invocable != 201703L
5181# error "__cpp_lib_is_invocable should have the value 201703L in c++23"
5182# endif
5183
5184# if !defined(_LIBCPP_VERSION)
5185# ifndef __cpp_lib_is_layout_compatible
5186# error "__cpp_lib_is_layout_compatible should be defined in c++23"
5187# endif
5188# if __cpp_lib_is_layout_compatible != 201907L
5189# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23"
5190# endif
5191# else // _LIBCPP_VERSION
5192# ifdef __cpp_lib_is_layout_compatible
5193# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
5194# endif
5195# endif
5196
5197# ifndef __cpp_lib_is_nothrow_convertible
5198# error "__cpp_lib_is_nothrow_convertible should be defined in c++23"
5199# endif
5200# if __cpp_lib_is_nothrow_convertible != 201806L
5201# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23"
5202# endif
5203
5204# ifndef __cpp_lib_is_null_pointer
5205# error "__cpp_lib_is_null_pointer should be defined in c++23"
5206# endif
5207# if __cpp_lib_is_null_pointer != 201309L
5208# error "__cpp_lib_is_null_pointer should have the value 201309L in c++23"
5209# endif
5210
5211# if !defined(_LIBCPP_VERSION)
5212# ifndef __cpp_lib_is_pointer_interconvertible
5213# error "__cpp_lib_is_pointer_interconvertible should be defined in c++23"
5214# endif
5215# if __cpp_lib_is_pointer_interconvertible != 201907L
5216# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23"
5217# endif
5218# else // _LIBCPP_VERSION
5219# ifdef __cpp_lib_is_pointer_interconvertible
5220# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
5221# endif
5222# endif
5223
5224# ifndef __cpp_lib_is_scoped_enum
5225# error "__cpp_lib_is_scoped_enum should be defined in c++23"
5226# endif
5227# if __cpp_lib_is_scoped_enum != 202011L
5228# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23"
5229# endif
5230
5231# ifndef __cpp_lib_is_swappable
5232# error "__cpp_lib_is_swappable should be defined in c++23"
5233# endif
5234# if __cpp_lib_is_swappable != 201603L
5235# error "__cpp_lib_is_swappable should have the value 201603L in c++23"
5236# endif
5237
5238# if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
5239# ifndef __cpp_lib_jthread
5240# error "__cpp_lib_jthread should be defined in c++23"
5241# endif
5242# if __cpp_lib_jthread != 201911L
5243# error "__cpp_lib_jthread should have the value 201911L in c++23"
5244# endif
5245# else
5246# ifdef __cpp_lib_jthread
5247# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
5248# endif
5249# endif
5250
5251# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
5252# ifndef __cpp_lib_latch
5253# error "__cpp_lib_latch should be defined in c++23"
5254# endif
5255# if __cpp_lib_latch != 201907L
5256# error "__cpp_lib_latch should have the value 201907L in c++23"
5257# endif
5258# else
5259# ifdef __cpp_lib_latch
5260# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
5261# endif
5262# endif
5263
5264# ifndef __cpp_lib_launder
5265# error "__cpp_lib_launder should be defined in c++23"
5266# endif
5267# if __cpp_lib_launder != 201606L
5268# error "__cpp_lib_launder should have the value 201606L in c++23"
5269# endif
5270
5271# ifdef __cpp_lib_linalg
5272# error "__cpp_lib_linalg should not be defined before c++26"
5273# endif
5274
5275# ifndef __cpp_lib_list_remove_return_type
5276# error "__cpp_lib_list_remove_return_type should be defined in c++23"
5277# endif
5278# if __cpp_lib_list_remove_return_type != 201806L
5279# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23"
5280# endif
5281
5282# ifndef __cpp_lib_logical_traits
5283# error "__cpp_lib_logical_traits should be defined in c++23"
5284# endif
5285# if __cpp_lib_logical_traits != 201510L
5286# error "__cpp_lib_logical_traits should have the value 201510L in c++23"
5287# endif
5288
5289# ifndef __cpp_lib_make_from_tuple
5290# error "__cpp_lib_make_from_tuple should be defined in c++23"
5291# endif
5292# if __cpp_lib_make_from_tuple != 201606L
5293# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23"
5294# endif
5295
5296# ifndef __cpp_lib_make_reverse_iterator
5297# error "__cpp_lib_make_reverse_iterator should be defined in c++23"
5298# endif
5299# if __cpp_lib_make_reverse_iterator != 201402L
5300# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23"
5301# endif
5302
5303# ifndef __cpp_lib_make_unique
5304# error "__cpp_lib_make_unique should be defined in c++23"
5305# endif
5306# if __cpp_lib_make_unique != 201304L
5307# error "__cpp_lib_make_unique should have the value 201304L in c++23"
5308# endif
5309
5310# ifndef __cpp_lib_map_try_emplace
5311# error "__cpp_lib_map_try_emplace should be defined in c++23"
5312# endif
5313# if __cpp_lib_map_try_emplace != 201411L
5314# error "__cpp_lib_map_try_emplace should have the value 201411L in c++23"
5315# endif
5316
5317# ifndef __cpp_lib_math_constants
5318# error "__cpp_lib_math_constants should be defined in c++23"
5319# endif
5320# if __cpp_lib_math_constants != 201907L
5321# error "__cpp_lib_math_constants should have the value 201907L in c++23"
5322# endif
5323
5324# if !defined(_LIBCPP_VERSION)
5325# ifndef __cpp_lib_math_special_functions
5326# error "__cpp_lib_math_special_functions should be defined in c++23"
5327# endif
5328# if __cpp_lib_math_special_functions != 201603L
5329# error "__cpp_lib_math_special_functions should have the value 201603L in c++23"
5330# endif
5331# else // _LIBCPP_VERSION
5332# ifdef __cpp_lib_math_special_functions
5333# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
5334# endif
5335# endif
5336
5337# ifndef __cpp_lib_mdspan
5338# error "__cpp_lib_mdspan should be defined in c++23"
5339# endif
5340# if __cpp_lib_mdspan != 202207L
5341# error "__cpp_lib_mdspan should have the value 202207L in c++23"
5342# endif
5343
5344# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
5345# ifndef __cpp_lib_memory_resource
5346# error "__cpp_lib_memory_resource should be defined in c++23"
5347# endif
5348# if __cpp_lib_memory_resource != 201603L
5349# error "__cpp_lib_memory_resource should have the value 201603L in c++23"
5350# endif
5351# else
5352# ifdef __cpp_lib_memory_resource
5353# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
5354# endif
5355# endif
5356
5357# ifndef __cpp_lib_move_iterator_concept
5358# error "__cpp_lib_move_iterator_concept should be defined in c++23"
5359# endif
5360# if __cpp_lib_move_iterator_concept != 202207L
5361# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23"
5362# endif
5363
5364# if !defined(_LIBCPP_VERSION)
5365# ifndef __cpp_lib_move_only_function
5366# error "__cpp_lib_move_only_function should be defined in c++23"
5367# endif
5368# if __cpp_lib_move_only_function != 202110L
5369# error "__cpp_lib_move_only_function should have the value 202110L in c++23"
5370# endif
5371# else // _LIBCPP_VERSION
5372# ifdef __cpp_lib_move_only_function
5373# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
5374# endif
5375# endif
5376
5377# ifndef __cpp_lib_node_extract
5378# error "__cpp_lib_node_extract should be defined in c++23"
5379# endif
5380# if __cpp_lib_node_extract != 201606L
5381# error "__cpp_lib_node_extract should have the value 201606L in c++23"
5382# endif
5383
5384# ifndef __cpp_lib_nonmember_container_access
5385# error "__cpp_lib_nonmember_container_access should be defined in c++23"
5386# endif
5387# if __cpp_lib_nonmember_container_access != 201411L
5388# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
5389# endif
5390
5391# ifndef __cpp_lib_not_fn
5392# error "__cpp_lib_not_fn should be defined in c++23"
5393# endif
5394# if __cpp_lib_not_fn != 201603L
5395# error "__cpp_lib_not_fn should have the value 201603L in c++23"
5396# endif
5397
5398# ifndef __cpp_lib_null_iterators
5399# error "__cpp_lib_null_iterators should be defined in c++23"
5400# endif
5401# if __cpp_lib_null_iterators != 201304L
5402# error "__cpp_lib_null_iterators should have the value 201304L in c++23"
5403# endif
5404
5405# ifndef __cpp_lib_optional
5406# error "__cpp_lib_optional should be defined in c++23"
5407# endif
5408# if __cpp_lib_optional != 202110L
5409# error "__cpp_lib_optional should have the value 202110L in c++23"
5410# endif
5411
5412# if !defined(_LIBCPP_VERSION)
5413# ifndef __cpp_lib_out_ptr
5414# error "__cpp_lib_out_ptr should be defined in c++23"
5415# endif
5416# if __cpp_lib_out_ptr != 202106L
5417# error "__cpp_lib_out_ptr should have the value 202106L in c++23"
5418# endif
5419# else // _LIBCPP_VERSION
5420# ifdef __cpp_lib_out_ptr
5421# error "__cpp_lib_out_ptr should not be defined because it is unimplemented in libc++!"
5422# endif
5423# endif
5424
5425# if !defined(_LIBCPP_VERSION)
5426# ifndef __cpp_lib_parallel_algorithm
5427# error "__cpp_lib_parallel_algorithm should be defined in c++23"
5428# endif
5429# if __cpp_lib_parallel_algorithm != 201603L
5430# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
5431# endif
5432# else // _LIBCPP_VERSION
5433# ifdef __cpp_lib_parallel_algorithm
5434# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
5435# endif
5436# endif
5437
5438# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
5439# ifndef __cpp_lib_polymorphic_allocator
5440# error "__cpp_lib_polymorphic_allocator should be defined in c++23"
5441# endif
5442# if __cpp_lib_polymorphic_allocator != 201902L
5443# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23"
5444# endif
5445# else
5446# ifdef __cpp_lib_polymorphic_allocator
5447# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
5448# endif
5449# endif
5450
5451# ifndef __cpp_lib_print
5452# error "__cpp_lib_print should be defined in c++23"
5453# endif
5454# if __cpp_lib_print != 202207L
5455# error "__cpp_lib_print should have the value 202207L in c++23"
5456# endif
5457
5458# if !defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)
5459# ifndef __cpp_lib_quoted_string_io
5460# error "__cpp_lib_quoted_string_io should be defined in c++23"
5461# endif
5462# if __cpp_lib_quoted_string_io != 201304L
5463# error "__cpp_lib_quoted_string_io should have the value 201304L in c++23"
5464# endif
5465# else
5466# ifdef __cpp_lib_quoted_string_io
5467# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)' is not met!"
5468# endif
5469# endif
5470
5471# ifndef __cpp_lib_ranges
5472# error "__cpp_lib_ranges should be defined in c++23"
5473# endif
5474# if __cpp_lib_ranges != 202207L
5475# error "__cpp_lib_ranges should have the value 202207L in c++23"
5476# endif
5477
5478# if !defined(_LIBCPP_VERSION)
5479# ifndef __cpp_lib_ranges_as_const
5480# error "__cpp_lib_ranges_as_const should be defined in c++23"
5481# endif
5482# if __cpp_lib_ranges_as_const != 202207L
5483# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23"
5484# endif
5485# else // _LIBCPP_VERSION
5486# ifdef __cpp_lib_ranges_as_const
5487# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
5488# endif
5489# endif
5490
5491# ifndef __cpp_lib_ranges_as_rvalue
5492# error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
5493# endif
5494# if __cpp_lib_ranges_as_rvalue != 202207L
5495# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23"
5496# endif
5497
5498# if !defined(_LIBCPP_VERSION)
5499# ifndef __cpp_lib_ranges_chunk
5500# error "__cpp_lib_ranges_chunk should be defined in c++23"
5501# endif
5502# if __cpp_lib_ranges_chunk != 202202L
5503# error "__cpp_lib_ranges_chunk should have the value 202202L in c++23"
5504# endif
5505# else // _LIBCPP_VERSION
5506# ifdef __cpp_lib_ranges_chunk
5507# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
5508# endif
5509# endif
5510
5511# ifndef __cpp_lib_ranges_chunk_by
5512# error "__cpp_lib_ranges_chunk_by should be defined in c++23"
5513# endif
5514# if __cpp_lib_ranges_chunk_by != 202202L
5515# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23"
5516# endif
5517
5518# ifdef __cpp_lib_ranges_concat
5519# error "__cpp_lib_ranges_concat should not be defined before c++26"
5520# endif
5521
5522# ifndef __cpp_lib_ranges_contains
5523# error "__cpp_lib_ranges_contains should be defined in c++23"
5524# endif
5525# if __cpp_lib_ranges_contains != 202207L
5526# error "__cpp_lib_ranges_contains should have the value 202207L in c++23"
5527# endif
5528
5529# if !defined(_LIBCPP_VERSION)
5530# ifndef __cpp_lib_ranges_iota
5531# error "__cpp_lib_ranges_iota should be defined in c++23"
5532# endif
5533# if __cpp_lib_ranges_iota != 202202L
5534# error "__cpp_lib_ranges_iota should have the value 202202L in c++23"
5535# endif
5536# else // _LIBCPP_VERSION
5537# ifdef __cpp_lib_ranges_iota
5538# error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
5539# endif
5540# endif
5541
5542# if !defined(_LIBCPP_VERSION)
5543# ifndef __cpp_lib_ranges_join_with
5544# error "__cpp_lib_ranges_join_with should be defined in c++23"
5545# endif
5546# if __cpp_lib_ranges_join_with != 202202L
5547# error "__cpp_lib_ranges_join_with should have the value 202202L in c++23"
5548# endif
5549# else // _LIBCPP_VERSION
5550# ifdef __cpp_lib_ranges_join_with
5551# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
5552# endif
5553# endif
5554
5555# ifndef __cpp_lib_ranges_repeat
5556# error "__cpp_lib_ranges_repeat should be defined in c++23"
5557# endif
5558# if __cpp_lib_ranges_repeat != 202207L
5559# error "__cpp_lib_ranges_repeat should have the value 202207L in c++23"
5560# endif
5561
5562# if !defined(_LIBCPP_VERSION)
5563# ifndef __cpp_lib_ranges_slide
5564# error "__cpp_lib_ranges_slide should be defined in c++23"
5565# endif
5566# if __cpp_lib_ranges_slide != 202202L
5567# error "__cpp_lib_ranges_slide should have the value 202202L in c++23"
5568# endif
5569# else // _LIBCPP_VERSION
5570# ifdef __cpp_lib_ranges_slide
5571# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
5572# endif
5573# endif
5574
5575# ifndef __cpp_lib_ranges_starts_ends_with
5576# error "__cpp_lib_ranges_starts_ends_with should be defined in c++23"
5577# endif
5578# if __cpp_lib_ranges_starts_ends_with != 202106L
5579# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23"
5580# endif
5581
5582# ifndef __cpp_lib_ranges_to_container
5583# error "__cpp_lib_ranges_to_container should be defined in c++23"
5584# endif
5585# if __cpp_lib_ranges_to_container != 202202L
5586# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
5587# endif
5588
5589# if !defined(_LIBCPP_VERSION)
5590# ifndef __cpp_lib_ranges_zip
5591# error "__cpp_lib_ranges_zip should be defined in c++23"
5592# endif
5593# if __cpp_lib_ranges_zip != 202110L
5594# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
5595# endif
5596# else // _LIBCPP_VERSION
5597# ifdef __cpp_lib_ranges_zip
5598# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
5599# endif
5600# endif
5601
5602# ifdef __cpp_lib_ratio
5603# error "__cpp_lib_ratio should not be defined before c++26"
5604# endif
5605
5606# ifndef __cpp_lib_raw_memory_algorithms
5607# error "__cpp_lib_raw_memory_algorithms should be defined in c++23"
5608# endif
5609# if __cpp_lib_raw_memory_algorithms != 201606L
5610# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23"
5611# endif
5612
5613# ifdef __cpp_lib_rcu
5614# error "__cpp_lib_rcu should not be defined before c++26"
5615# endif
5616
5617# if !defined(_LIBCPP_VERSION)
5618# ifndef __cpp_lib_reference_from_temporary
5619# error "__cpp_lib_reference_from_temporary should be defined in c++23"
5620# endif
5621# if __cpp_lib_reference_from_temporary != 202202L
5622# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23"
5623# endif
5624# else // _LIBCPP_VERSION
5625# ifdef __cpp_lib_reference_from_temporary
5626# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
5627# endif
5628# endif
5629
5630# ifdef __cpp_lib_reference_wrapper
5631# error "__cpp_lib_reference_wrapper should not be defined before c++26"
5632# endif
5633
5634# ifndef __cpp_lib_remove_cvref
5635# error "__cpp_lib_remove_cvref should be defined in c++23"
5636# endif
5637# if __cpp_lib_remove_cvref != 201711L
5638# error "__cpp_lib_remove_cvref should have the value 201711L in c++23"
5639# endif
5640
5641# ifndef __cpp_lib_result_of_sfinae
5642# error "__cpp_lib_result_of_sfinae should be defined in c++23"
5643# endif
5644# if __cpp_lib_result_of_sfinae != 201210L
5645# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23"
5646# endif
5647
5648# ifndef __cpp_lib_robust_nonmodifying_seq_ops
5649# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23"
5650# endif
5651# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
5652# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23"
5653# endif
5654
5655# ifndef __cpp_lib_sample
5656# error "__cpp_lib_sample should be defined in c++23"
5657# endif
5658# if __cpp_lib_sample != 201603L
5659# error "__cpp_lib_sample should have the value 201603L in c++23"
5660# endif
5661
5662# ifdef __cpp_lib_saturation_arithmetic
5663# error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
5664# endif
5665
5666# if !defined(_LIBCPP_HAS_NO_THREADS)
5667# ifndef __cpp_lib_scoped_lock
5668# error "__cpp_lib_scoped_lock should be defined in c++23"
5669# endif
5670# if __cpp_lib_scoped_lock != 201703L
5671# error "__cpp_lib_scoped_lock should have the value 201703L in c++23"
5672# endif
5673# else
5674# ifdef __cpp_lib_scoped_lock
5675# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
5676# endif
5677# endif
5678
5679# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
5680# ifndef __cpp_lib_semaphore
5681# error "__cpp_lib_semaphore should be defined in c++23"
5682# endif
5683# if __cpp_lib_semaphore != 201907L
5684# error "__cpp_lib_semaphore should have the value 201907L in c++23"
5685# endif
5686# else
5687# ifdef __cpp_lib_semaphore
5688# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
5689# endif
5690# endif
5691
5692# if !defined(_LIBCPP_HAS_NO_THREADS)
5693# ifndef __cpp_lib_shared_mutex
5694# error "__cpp_lib_shared_mutex should be defined in c++23"
5695# endif
5696# if __cpp_lib_shared_mutex != 201505L
5697# error "__cpp_lib_shared_mutex should have the value 201505L in c++23"
5698# endif
5699# else
5700# ifdef __cpp_lib_shared_mutex
5701# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
5702# endif
5703# endif
5704
5705# ifndef __cpp_lib_shared_ptr_arrays
5706# error "__cpp_lib_shared_ptr_arrays should be defined in c++23"
5707# endif
5708# if __cpp_lib_shared_ptr_arrays != 201707L
5709# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23"
5710# endif
5711
5712# ifndef __cpp_lib_shared_ptr_weak_type
5713# error "__cpp_lib_shared_ptr_weak_type should be defined in c++23"
5714# endif
5715# if __cpp_lib_shared_ptr_weak_type != 201606L
5716# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23"
5717# endif
5718
5719# if !defined(_LIBCPP_HAS_NO_THREADS)
5720# ifndef __cpp_lib_shared_timed_mutex
5721# error "__cpp_lib_shared_timed_mutex should be defined in c++23"
5722# endif
5723# if __cpp_lib_shared_timed_mutex != 201402L
5724# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23"
5725# endif
5726# else
5727# ifdef __cpp_lib_shared_timed_mutex
5728# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
5729# endif
5730# endif
5731
5732# ifndef __cpp_lib_shift
5733# error "__cpp_lib_shift should be defined in c++23"
5734# endif
5735# if __cpp_lib_shift != 201806L
5736# error "__cpp_lib_shift should have the value 201806L in c++23"
5737# endif
5738
5739# if !defined(_LIBCPP_VERSION)
5740# ifndef __cpp_lib_smart_ptr_for_overwrite
5741# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23"
5742# endif
5743# if __cpp_lib_smart_ptr_for_overwrite != 202002L
5744# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23"
5745# endif
5746# else // _LIBCPP_VERSION
5747# ifdef __cpp_lib_smart_ptr_for_overwrite
5748# error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
5749# endif
5750# endif
5751
5752# ifdef __cpp_lib_smart_ptr_owner_equality
5753# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
5754# endif
5755
5756# ifndef __cpp_lib_source_location
5757# error "__cpp_lib_source_location should be defined in c++23"
5758# endif
5759# if __cpp_lib_source_location != 201907L
5760# error "__cpp_lib_source_location should have the value 201907L in c++23"
5761# endif
5762
5763# ifndef __cpp_lib_span
5764# error "__cpp_lib_span should be defined in c++23"
5765# endif
5766# if __cpp_lib_span != 202002L
5767# error "__cpp_lib_span should have the value 202002L in c++23"
5768# endif
5769
5770# ifdef __cpp_lib_span_at
5771# error "__cpp_lib_span_at should not be defined before c++26"
5772# endif
5773
5774# ifdef __cpp_lib_span_initializer_list
5775# error "__cpp_lib_span_initializer_list should not be defined before c++26"
5776# endif
5777
5778# if !defined(_LIBCPP_VERSION)
5779# ifndef __cpp_lib_spanstream
5780# error "__cpp_lib_spanstream should be defined in c++23"
5781# endif
5782# if __cpp_lib_spanstream != 202106L
5783# error "__cpp_lib_spanstream should have the value 202106L in c++23"
5784# endif
5785# else // _LIBCPP_VERSION
5786# ifdef __cpp_lib_spanstream
5787# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
5788# endif
5789# endif
5790
5791# ifndef __cpp_lib_ssize
5792# error "__cpp_lib_ssize should be defined in c++23"
5793# endif
5794# if __cpp_lib_ssize != 201902L
5795# error "__cpp_lib_ssize should have the value 201902L in c++23"
5796# endif
5797
5798# ifdef __cpp_lib_sstream_from_string_view
5799# error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
5800# endif
5801
5802# if !defined(_LIBCPP_VERSION)
5803# ifndef __cpp_lib_stacktrace
5804# error "__cpp_lib_stacktrace should be defined in c++23"
5805# endif
5806# if __cpp_lib_stacktrace != 202011L
5807# error "__cpp_lib_stacktrace should have the value 202011L in c++23"
5808# endif
5809# else // _LIBCPP_VERSION
5810# ifdef __cpp_lib_stacktrace
5811# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
5812# endif
5813# endif
5814
5815# ifndef __cpp_lib_starts_ends_with
5816# error "__cpp_lib_starts_ends_with should be defined in c++23"
5817# endif
5818# if __cpp_lib_starts_ends_with != 201711L
5819# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23"
5820# endif
5821
5822# ifndef __cpp_lib_stdatomic_h
5823# error "__cpp_lib_stdatomic_h should be defined in c++23"
5824# endif
5825# if __cpp_lib_stdatomic_h != 202011L
5826# error "__cpp_lib_stdatomic_h should have the value 202011L in c++23"
5827# endif
5828
5829# ifndef __cpp_lib_string_contains
5830# error "__cpp_lib_string_contains should be defined in c++23"
5831# endif
5832# if __cpp_lib_string_contains != 202011L
5833# error "__cpp_lib_string_contains should have the value 202011L in c++23"
5834# endif
5835
5836# ifndef __cpp_lib_string_resize_and_overwrite
5837# error "__cpp_lib_string_resize_and_overwrite should be defined in c++23"
5838# endif
5839# if __cpp_lib_string_resize_and_overwrite != 202110L
5840# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23"
5841# endif
5842
5843# ifndef __cpp_lib_string_udls
5844# error "__cpp_lib_string_udls should be defined in c++23"
5845# endif
5846# if __cpp_lib_string_udls != 201304L
5847# error "__cpp_lib_string_udls should have the value 201304L in c++23"
5848# endif
5849
5850# ifndef __cpp_lib_string_view
5851# error "__cpp_lib_string_view should be defined in c++23"
5852# endif
5853# if __cpp_lib_string_view != 201803L
5854# error "__cpp_lib_string_view should have the value 201803L in c++23"
5855# endif
5856
5857# ifdef __cpp_lib_submdspan
5858# error "__cpp_lib_submdspan should not be defined before c++26"
5859# endif
5860
5861# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
5862# ifndef __cpp_lib_syncbuf
5863# error "__cpp_lib_syncbuf should be defined in c++23"
5864# endif
5865# if __cpp_lib_syncbuf != 201803L
5866# error "__cpp_lib_syncbuf should have the value 201803L in c++23"
5867# endif
5868# else
5869# ifdef __cpp_lib_syncbuf
5870# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)' is not met!"
5871# endif
5872# endif
5873
5874# ifdef __cpp_lib_text_encoding
5875# error "__cpp_lib_text_encoding should not be defined before c++26"
5876# endif
5877
5878# if !defined(_LIBCPP_VERSION)
5879# ifndef __cpp_lib_three_way_comparison
5880# error "__cpp_lib_three_way_comparison should be defined in c++23"
5881# endif
5882# if __cpp_lib_three_way_comparison != 201907L
5883# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
5884# endif
5885# else // _LIBCPP_VERSION
5886# ifdef __cpp_lib_three_way_comparison
5887# error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
5888# endif
5889# endif
5890
5891# ifndef __cpp_lib_to_address
5892# error "__cpp_lib_to_address should be defined in c++23"
5893# endif
5894# if __cpp_lib_to_address != 201711L
5895# error "__cpp_lib_to_address should have the value 201711L in c++23"
5896# endif
5897
5898# ifndef __cpp_lib_to_array
5899# error "__cpp_lib_to_array should be defined in c++23"
5900# endif
5901# if __cpp_lib_to_array != 201907L
5902# error "__cpp_lib_to_array should have the value 201907L in c++23"
5903# endif
5904
5905# if !defined(_LIBCPP_VERSION)
5906# ifndef __cpp_lib_to_chars
5907# error "__cpp_lib_to_chars should be defined in c++23"
5908# endif
5909# if __cpp_lib_to_chars != 201611L
5910# error "__cpp_lib_to_chars should have the value 201611L in c++23"
5911# endif
5912# else // _LIBCPP_VERSION
5913# ifdef __cpp_lib_to_chars
5914# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
5915# endif
5916# endif
5917
5918# if !defined(_LIBCPP_VERSION)
5919# ifndef __cpp_lib_to_string
5920# error "__cpp_lib_to_string should be defined in c++23"
5921# endif
5922# if __cpp_lib_to_string != 202306L
5923# error "__cpp_lib_to_string should have the value 202306L in c++23"
5924# endif
5925# else // _LIBCPP_VERSION
5926# ifdef __cpp_lib_to_string
5927# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
5928# endif
5929# endif
5930
5931# ifndef __cpp_lib_to_underlying
5932# error "__cpp_lib_to_underlying should be defined in c++23"
5933# endif
5934# if __cpp_lib_to_underlying != 202102L
5935# error "__cpp_lib_to_underlying should have the value 202102L in c++23"
5936# endif
5937
5938# ifndef __cpp_lib_transformation_trait_aliases
5939# error "__cpp_lib_transformation_trait_aliases should be defined in c++23"
5940# endif
5941# if __cpp_lib_transformation_trait_aliases != 201304L
5942# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23"
5943# endif
5944
5945# ifndef __cpp_lib_transparent_operators
5946# error "__cpp_lib_transparent_operators should be defined in c++23"
5947# endif
5948# if __cpp_lib_transparent_operators != 201510L
5949# error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
5950# endif
5951
5952# ifndef __cpp_lib_tuple_element_t
5953# error "__cpp_lib_tuple_element_t should be defined in c++23"
5954# endif
5955# if __cpp_lib_tuple_element_t != 201402L
5956# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
5957# endif
5958
5959# if !defined(_LIBCPP_VERSION)
5960# ifndef __cpp_lib_tuple_like
5961# error "__cpp_lib_tuple_like should be defined in c++23"
5962# endif
5963# if __cpp_lib_tuple_like != 202207L
5964# error "__cpp_lib_tuple_like should have the value 202207L in c++23"
5965# endif
5966# else // _LIBCPP_VERSION
5967# ifdef __cpp_lib_tuple_like
5968# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
5969# endif
5970# endif
5971
5972# ifndef __cpp_lib_tuples_by_type
5973# error "__cpp_lib_tuples_by_type should be defined in c++23"
5974# endif
5975# if __cpp_lib_tuples_by_type != 201304L
5976# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
5977# endif
5978
5979# ifndef __cpp_lib_type_identity
5980# error "__cpp_lib_type_identity should be defined in c++23"
5981# endif
5982# if __cpp_lib_type_identity != 201806L
5983# error "__cpp_lib_type_identity should have the value 201806L in c++23"
5984# endif
5985
5986# ifndef __cpp_lib_type_trait_variable_templates
5987# error "__cpp_lib_type_trait_variable_templates should be defined in c++23"
5988# endif
5989# if __cpp_lib_type_trait_variable_templates != 201510L
5990# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23"
5991# endif
5992
5993# ifndef __cpp_lib_uncaught_exceptions
5994# error "__cpp_lib_uncaught_exceptions should be defined in c++23"
5995# endif
5996# if __cpp_lib_uncaught_exceptions != 201411L
5997# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23"
5998# endif
5999
6000# ifndef __cpp_lib_unordered_map_try_emplace
6001# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23"
6002# endif
6003# if __cpp_lib_unordered_map_try_emplace != 201411L
6004# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23"
6005# endif
6006
6007# ifndef __cpp_lib_unreachable
6008# error "__cpp_lib_unreachable should be defined in c++23"
6009# endif
6010# if __cpp_lib_unreachable != 202202L
6011# error "__cpp_lib_unreachable should have the value 202202L in c++23"
6012# endif
6013
6014# ifndef __cpp_lib_unwrap_ref
6015# error "__cpp_lib_unwrap_ref should be defined in c++23"
6016# endif
6017# if __cpp_lib_unwrap_ref != 201811L
6018# error "__cpp_lib_unwrap_ref should have the value 201811L in c++23"
6019# endif
6020
6021# ifndef __cpp_lib_variant
6022# error "__cpp_lib_variant should be defined in c++23"
6023# endif
6024# if __cpp_lib_variant != 202102L
6025# error "__cpp_lib_variant should have the value 202102L in c++23"
6026# endif
6027
6028# ifndef __cpp_lib_void_t
6029# error "__cpp_lib_void_t should be defined in c++23"
6030# endif
6031# if __cpp_lib_void_t != 201411L
6032# error "__cpp_lib_void_t should have the value 201411L in c++23"
6033# endif
6034
6035# ifdef __cpp_lib_within_lifetime
6036# error "__cpp_lib_within_lifetime should not be defined before c++26"
6037# endif
6038
6039#elif TEST_STD_VER > 23
6040
6041# ifndef __cpp_lib_adaptor_iterator_pair_constructor
6042# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
6043# endif
6044# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
6045# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
6046# endif
6047
6048# ifndef __cpp_lib_addressof_constexpr
6049# error "__cpp_lib_addressof_constexpr should be defined in c++26"
6050# endif
6051# if __cpp_lib_addressof_constexpr != 201603L
6052# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26"
6053# endif
6054
6055# ifndef __cpp_lib_allocate_at_least
6056# error "__cpp_lib_allocate_at_least should be defined in c++26"
6057# endif
6058# if __cpp_lib_allocate_at_least != 202302L
6059# error "__cpp_lib_allocate_at_least should have the value 202302L in c++26"
6060# endif
6061
6062# ifndef __cpp_lib_allocator_traits_is_always_equal
6063# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
6064# endif
6065# if __cpp_lib_allocator_traits_is_always_equal != 201411L
6066# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
6067# endif
6068
6069# ifndef __cpp_lib_any
6070# error "__cpp_lib_any should be defined in c++26"
6071# endif
6072# if __cpp_lib_any != 201606L
6073# error "__cpp_lib_any should have the value 201606L in c++26"
6074# endif
6075
6076# ifndef __cpp_lib_apply
6077# error "__cpp_lib_apply should be defined in c++26"
6078# endif
6079# if __cpp_lib_apply != 201603L
6080# error "__cpp_lib_apply should have the value 201603L in c++26"
6081# endif
6082
6083# ifndef __cpp_lib_array_constexpr
6084# error "__cpp_lib_array_constexpr should be defined in c++26"
6085# endif
6086# if __cpp_lib_array_constexpr != 201811L
6087# error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
6088# endif
6089
6090# ifndef __cpp_lib_as_const
6091# error "__cpp_lib_as_const should be defined in c++26"
6092# endif
6093# if __cpp_lib_as_const != 201510L
6094# error "__cpp_lib_as_const should have the value 201510L in c++26"
6095# endif
6096
6097# if !defined(_LIBCPP_VERSION)
6098# ifndef __cpp_lib_associative_heterogeneous_erasure
6099# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26"
6100# endif
6101# if __cpp_lib_associative_heterogeneous_erasure != 202110L
6102# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26"
6103# endif
6104# else // _LIBCPP_VERSION
6105# ifdef __cpp_lib_associative_heterogeneous_erasure
6106# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
6107# endif
6108# endif
6109
6110# if !defined(_LIBCPP_VERSION)
6111# ifndef __cpp_lib_associative_heterogeneous_insertion
6112# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
6113# endif
6114# if __cpp_lib_associative_heterogeneous_insertion != 202306L
6115# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
6116# endif
6117# else // _LIBCPP_VERSION
6118# ifdef __cpp_lib_associative_heterogeneous_insertion
6119# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
6120# endif
6121# endif
6122
6123# ifndef __cpp_lib_assume_aligned
6124# error "__cpp_lib_assume_aligned should be defined in c++26"
6125# endif
6126# if __cpp_lib_assume_aligned != 201811L
6127# error "__cpp_lib_assume_aligned should have the value 201811L in c++26"
6128# endif
6129
6130# ifndef __cpp_lib_atomic_flag_test
6131# error "__cpp_lib_atomic_flag_test should be defined in c++26"
6132# endif
6133# if __cpp_lib_atomic_flag_test != 201907L
6134# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26"
6135# endif
6136
6137# if !defined(_LIBCPP_VERSION)
6138# ifndef __cpp_lib_atomic_float
6139# error "__cpp_lib_atomic_float should be defined in c++26"
6140# endif
6141# if __cpp_lib_atomic_float != 201711L
6142# error "__cpp_lib_atomic_float should have the value 201711L in c++26"
6143# endif
6144# else // _LIBCPP_VERSION
6145# ifdef __cpp_lib_atomic_float
6146# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
6147# endif
6148# endif
6149
6150# ifndef __cpp_lib_atomic_is_always_lock_free
6151# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26"
6152# endif
6153# if __cpp_lib_atomic_is_always_lock_free != 201603L
6154# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26"
6155# endif
6156
6157# ifndef __cpp_lib_atomic_lock_free_type_aliases
6158# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26"
6159# endif
6160# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
6161# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26"
6162# endif
6163
6164# if !defined(_LIBCPP_VERSION)
6165# ifndef __cpp_lib_atomic_min_max
6166# error "__cpp_lib_atomic_min_max should be defined in c++26"
6167# endif
6168# if __cpp_lib_atomic_min_max != 202403L
6169# error "__cpp_lib_atomic_min_max should have the value 202403L in c++26"
6170# endif
6171# else // _LIBCPP_VERSION
6172# ifdef __cpp_lib_atomic_min_max
6173# error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!"
6174# endif
6175# endif
6176
6177# if !defined(_LIBCPP_VERSION)
6178# ifndef __cpp_lib_atomic_ref
6179# error "__cpp_lib_atomic_ref should be defined in c++26"
6180# endif
6181# if __cpp_lib_atomic_ref != 201806L
6182# error "__cpp_lib_atomic_ref should have the value 201806L in c++26"
6183# endif
6184# else // _LIBCPP_VERSION
6185# ifdef __cpp_lib_atomic_ref
6186# error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
6187# endif
6188# endif
6189
6190# if !defined(_LIBCPP_VERSION)
6191# ifndef __cpp_lib_atomic_shared_ptr
6192# error "__cpp_lib_atomic_shared_ptr should be defined in c++26"
6193# endif
6194# if __cpp_lib_atomic_shared_ptr != 201711L
6195# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26"
6196# endif
6197# else // _LIBCPP_VERSION
6198# ifdef __cpp_lib_atomic_shared_ptr
6199# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
6200# endif
6201# endif
6202
6203# ifndef __cpp_lib_atomic_value_initialization
6204# error "__cpp_lib_atomic_value_initialization should be defined in c++26"
6205# endif
6206# if __cpp_lib_atomic_value_initialization != 201911L
6207# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26"
6208# endif
6209
6210# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
6211# ifndef __cpp_lib_atomic_wait
6212# error "__cpp_lib_atomic_wait should be defined in c++26"
6213# endif
6214# if __cpp_lib_atomic_wait != 201907L
6215# error "__cpp_lib_atomic_wait should have the value 201907L in c++26"
6216# endif
6217# else
6218# ifdef __cpp_lib_atomic_wait
6219# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
6220# endif
6221# endif
6222
6223# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
6224# ifndef __cpp_lib_barrier
6225# error "__cpp_lib_barrier should be defined in c++26"
6226# endif
6227# if __cpp_lib_barrier != 201907L
6228# error "__cpp_lib_barrier should have the value 201907L in c++26"
6229# endif
6230# else
6231# ifdef __cpp_lib_barrier
6232# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
6233# endif
6234# endif
6235
6236# ifndef __cpp_lib_bind_back
6237# error "__cpp_lib_bind_back should be defined in c++26"
6238# endif
6239# if __cpp_lib_bind_back != 202202L
6240# error "__cpp_lib_bind_back should have the value 202202L in c++26"
6241# endif
6242
6243# ifndef __cpp_lib_bind_front
6244# error "__cpp_lib_bind_front should be defined in c++26"
6245# endif
6246# if __cpp_lib_bind_front != 202306L
6247# error "__cpp_lib_bind_front should have the value 202306L in c++26"
6248# endif
6249
6250# ifndef __cpp_lib_bit_cast
6251# error "__cpp_lib_bit_cast should be defined in c++26"
6252# endif
6253# if __cpp_lib_bit_cast != 201806L
6254# error "__cpp_lib_bit_cast should have the value 201806L in c++26"
6255# endif
6256
6257# ifndef __cpp_lib_bitops
6258# error "__cpp_lib_bitops should be defined in c++26"
6259# endif
6260# if __cpp_lib_bitops != 201907L
6261# error "__cpp_lib_bitops should have the value 201907L in c++26"
6262# endif
6263
6264# ifndef __cpp_lib_bitset
6265# error "__cpp_lib_bitset should be defined in c++26"
6266# endif
6267# if __cpp_lib_bitset != 202306L
6268# error "__cpp_lib_bitset should have the value 202306L in c++26"
6269# endif
6270
6271# ifndef __cpp_lib_bool_constant
6272# error "__cpp_lib_bool_constant should be defined in c++26"
6273# endif
6274# if __cpp_lib_bool_constant != 201505L
6275# error "__cpp_lib_bool_constant should have the value 201505L in c++26"
6276# endif
6277
6278# ifndef __cpp_lib_bounded_array_traits
6279# error "__cpp_lib_bounded_array_traits should be defined in c++26"
6280# endif
6281# if __cpp_lib_bounded_array_traits != 201902L
6282# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26"
6283# endif
6284
6285# ifndef __cpp_lib_boyer_moore_searcher
6286# error "__cpp_lib_boyer_moore_searcher should be defined in c++26"
6287# endif
6288# if __cpp_lib_boyer_moore_searcher != 201603L
6289# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26"
6290# endif
6291
6292# ifndef __cpp_lib_byte
6293# error "__cpp_lib_byte should be defined in c++26"
6294# endif
6295# if __cpp_lib_byte != 201603L
6296# error "__cpp_lib_byte should have the value 201603L in c++26"
6297# endif
6298
6299# ifndef __cpp_lib_byteswap
6300# error "__cpp_lib_byteswap should be defined in c++26"
6301# endif
6302# if __cpp_lib_byteswap != 202110L
6303# error "__cpp_lib_byteswap should have the value 202110L in c++26"
6304# endif
6305
6306# if defined(__cpp_char8_t)
6307# ifndef __cpp_lib_char8_t
6308# error "__cpp_lib_char8_t should be defined in c++26"
6309# endif
6310# if __cpp_lib_char8_t != 201907L
6311# error "__cpp_lib_char8_t should have the value 201907L in c++26"
6312# endif
6313# else
6314# ifdef __cpp_lib_char8_t
6315# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
6316# endif
6317# endif
6318
6319# ifndef __cpp_lib_chrono
6320# error "__cpp_lib_chrono should be defined in c++26"
6321# endif
6322# if __cpp_lib_chrono != 201611L
6323# error "__cpp_lib_chrono should have the value 201611L in c++26"
6324# endif
6325
6326# ifndef __cpp_lib_chrono_udls
6327# error "__cpp_lib_chrono_udls should be defined in c++26"
6328# endif
6329# if __cpp_lib_chrono_udls != 201304L
6330# error "__cpp_lib_chrono_udls should have the value 201304L in c++26"
6331# endif
6332
6333# ifndef __cpp_lib_clamp
6334# error "__cpp_lib_clamp should be defined in c++26"
6335# endif
6336# if __cpp_lib_clamp != 201603L
6337# error "__cpp_lib_clamp should have the value 201603L in c++26"
6338# endif
6339
6340# ifndef __cpp_lib_complex_udls
6341# error "__cpp_lib_complex_udls should be defined in c++26"
6342# endif
6343# if __cpp_lib_complex_udls != 201309L
6344# error "__cpp_lib_complex_udls should have the value 201309L in c++26"
6345# endif
6346
6347# ifndef __cpp_lib_concepts
6348# error "__cpp_lib_concepts should be defined in c++26"
6349# endif
6350# if __cpp_lib_concepts != 202002L
6351# error "__cpp_lib_concepts should have the value 202002L in c++26"
6352# endif
6353
6354# ifndef __cpp_lib_constexpr_algorithms
6355# error "__cpp_lib_constexpr_algorithms should be defined in c++26"
6356# endif
6357# if __cpp_lib_constexpr_algorithms != 201806L
6358# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++26"
6359# endif
6360
6361# ifndef __cpp_lib_constexpr_bitset
6362# error "__cpp_lib_constexpr_bitset should be defined in c++26"
6363# endif
6364# if __cpp_lib_constexpr_bitset != 202207L
6365# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26"
6366# endif
6367
6368# ifndef __cpp_lib_constexpr_charconv
6369# error "__cpp_lib_constexpr_charconv should be defined in c++26"
6370# endif
6371# if __cpp_lib_constexpr_charconv != 202207L
6372# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26"
6373# endif
6374
6375# if !defined(_LIBCPP_VERSION)
6376# ifndef __cpp_lib_constexpr_cmath
6377# error "__cpp_lib_constexpr_cmath should be defined in c++26"
6378# endif
6379# if __cpp_lib_constexpr_cmath != 202202L
6380# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26"
6381# endif
6382# else // _LIBCPP_VERSION
6383# ifdef __cpp_lib_constexpr_cmath
6384# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
6385# endif
6386# endif
6387
6388# ifndef __cpp_lib_constexpr_complex
6389# error "__cpp_lib_constexpr_complex should be defined in c++26"
6390# endif
6391# if __cpp_lib_constexpr_complex != 201711L
6392# error "__cpp_lib_constexpr_complex should have the value 201711L in c++26"
6393# endif
6394
6395# ifndef __cpp_lib_constexpr_dynamic_alloc
6396# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26"
6397# endif
6398# if __cpp_lib_constexpr_dynamic_alloc != 201907L
6399# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26"
6400# endif
6401
6402# ifndef __cpp_lib_constexpr_functional
6403# error "__cpp_lib_constexpr_functional should be defined in c++26"
6404# endif
6405# if __cpp_lib_constexpr_functional != 201907L
6406# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
6407# endif
6408
6409# ifndef __cpp_lib_constexpr_iterator
6410# error "__cpp_lib_constexpr_iterator should be defined in c++26"
6411# endif
6412# if __cpp_lib_constexpr_iterator != 201811L
6413# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26"
6414# endif
6415
6416# ifndef __cpp_lib_constexpr_memory
6417# error "__cpp_lib_constexpr_memory should be defined in c++26"
6418# endif
6419# if __cpp_lib_constexpr_memory != 202202L
6420# error "__cpp_lib_constexpr_memory should have the value 202202L in c++26"
6421# endif
6422
6423# ifndef __cpp_lib_constexpr_numeric
6424# error "__cpp_lib_constexpr_numeric should be defined in c++26"
6425# endif
6426# if __cpp_lib_constexpr_numeric != 201911L
6427# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26"
6428# endif
6429
6430# ifndef __cpp_lib_constexpr_string
6431# error "__cpp_lib_constexpr_string should be defined in c++26"
6432# endif
6433# if __cpp_lib_constexpr_string != 201907L
6434# error "__cpp_lib_constexpr_string should have the value 201907L in c++26"
6435# endif
6436
6437# ifndef __cpp_lib_constexpr_string_view
6438# error "__cpp_lib_constexpr_string_view should be defined in c++26"
6439# endif
6440# if __cpp_lib_constexpr_string_view != 201811L
6441# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26"
6442# endif
6443
6444# ifndef __cpp_lib_constexpr_tuple
6445# error "__cpp_lib_constexpr_tuple should be defined in c++26"
6446# endif
6447# if __cpp_lib_constexpr_tuple != 201811L
6448# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26"
6449# endif
6450
6451# ifndef __cpp_lib_constexpr_typeinfo
6452# error "__cpp_lib_constexpr_typeinfo should be defined in c++26"
6453# endif
6454# if __cpp_lib_constexpr_typeinfo != 202106L
6455# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26"
6456# endif
6457
6458# ifndef __cpp_lib_constexpr_utility
6459# error "__cpp_lib_constexpr_utility should be defined in c++26"
6460# endif
6461# if __cpp_lib_constexpr_utility != 201811L
6462# error "__cpp_lib_constexpr_utility should have the value 201811L in c++26"
6463# endif
6464
6465# ifndef __cpp_lib_constexpr_vector
6466# error "__cpp_lib_constexpr_vector should be defined in c++26"
6467# endif
6468# if __cpp_lib_constexpr_vector != 201907L
6469# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26"
6470# endif
6471
6472# if !defined(_LIBCPP_VERSION)
6473# ifndef __cpp_lib_constrained_equality
6474# error "__cpp_lib_constrained_equality should be defined in c++26"
6475# endif
6476# if __cpp_lib_constrained_equality != 202403L
6477# error "__cpp_lib_constrained_equality should have the value 202403L in c++26"
6478# endif
6479# else // _LIBCPP_VERSION
6480# ifdef __cpp_lib_constrained_equality
6481# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!"
6482# endif
6483# endif
6484
6485# if !defined(_LIBCPP_VERSION)
6486# ifndef __cpp_lib_copyable_function
6487# error "__cpp_lib_copyable_function should be defined in c++26"
6488# endif
6489# if __cpp_lib_copyable_function != 202306L
6490# error "__cpp_lib_copyable_function should have the value 202306L in c++26"
6491# endif
6492# else // _LIBCPP_VERSION
6493# ifdef __cpp_lib_copyable_function
6494# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
6495# endif
6496# endif
6497
6498# ifndef __cpp_lib_coroutine
6499# error "__cpp_lib_coroutine should be defined in c++26"
6500# endif
6501# if __cpp_lib_coroutine != 201902L
6502# error "__cpp_lib_coroutine should have the value 201902L in c++26"
6503# endif
6504
6505# if !defined(_LIBCPP_VERSION)
6506# ifndef __cpp_lib_debugging
6507# error "__cpp_lib_debugging should be defined in c++26"
6508# endif
6509# if __cpp_lib_debugging != 202311L
6510# error "__cpp_lib_debugging should have the value 202311L in c++26"
6511# endif
6512# else // _LIBCPP_VERSION
6513# ifdef __cpp_lib_debugging
6514# error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!"
6515# endif
6516# endif
6517
6518# if !defined(_LIBCPP_VERSION)
6519# ifndef __cpp_lib_default_template_type_for_algorithm_values
6520# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
6521# endif
6522# if __cpp_lib_default_template_type_for_algorithm_values != 202403L
6523# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26"
6524# endif
6525# else // _LIBCPP_VERSION
6526# ifdef __cpp_lib_default_template_type_for_algorithm_values
6527# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
6528# endif
6529# endif
6530
6531# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
6532# ifndef __cpp_lib_destroying_delete
6533# error "__cpp_lib_destroying_delete should be defined in c++26"
6534# endif
6535# if __cpp_lib_destroying_delete != 201806L
6536# error "__cpp_lib_destroying_delete should have the value 201806L in c++26"
6537# endif
6538# else
6539# ifdef __cpp_lib_destroying_delete
6540# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
6541# endif
6542# endif
6543
6544# ifndef __cpp_lib_enable_shared_from_this
6545# error "__cpp_lib_enable_shared_from_this should be defined in c++26"
6546# endif
6547# if __cpp_lib_enable_shared_from_this != 201603L
6548# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26"
6549# endif
6550
6551# ifndef __cpp_lib_endian
6552# error "__cpp_lib_endian should be defined in c++26"
6553# endif
6554# if __cpp_lib_endian != 201907L
6555# error "__cpp_lib_endian should have the value 201907L in c++26"
6556# endif
6557
6558# ifndef __cpp_lib_erase_if
6559# error "__cpp_lib_erase_if should be defined in c++26"
6560# endif
6561# if __cpp_lib_erase_if != 202002L
6562# error "__cpp_lib_erase_if should have the value 202002L in c++26"
6563# endif
6564
6565# ifndef __cpp_lib_exchange_function
6566# error "__cpp_lib_exchange_function should be defined in c++26"
6567# endif
6568# if __cpp_lib_exchange_function != 201304L
6569# error "__cpp_lib_exchange_function should have the value 201304L in c++26"
6570# endif
6571
6572# if !defined(_LIBCPP_VERSION)
6573# ifndef __cpp_lib_execution
6574# error "__cpp_lib_execution should be defined in c++26"
6575# endif
6576# if __cpp_lib_execution != 201902L
6577# error "__cpp_lib_execution should have the value 201902L in c++26"
6578# endif
6579# else // _LIBCPP_VERSION
6580# ifdef __cpp_lib_execution
6581# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
6582# endif
6583# endif
6584
6585# ifndef __cpp_lib_expected
6586# error "__cpp_lib_expected should be defined in c++26"
6587# endif
6588# if __cpp_lib_expected != 202211L
6589# error "__cpp_lib_expected should have the value 202211L in c++26"
6590# endif
6591
6592# if !defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
6593# ifndef __cpp_lib_filesystem
6594# error "__cpp_lib_filesystem should be defined in c++26"
6595# endif
6596# if __cpp_lib_filesystem != 201703L
6597# error "__cpp_lib_filesystem should have the value 201703L in c++26"
6598# endif
6599# else
6600# ifdef __cpp_lib_filesystem
6601# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
6602# endif
6603# endif
6604
6605# if !defined(_LIBCPP_VERSION)
6606# ifndef __cpp_lib_format
6607# error "__cpp_lib_format should be defined in c++26"
6608# endif
6609# if __cpp_lib_format != 202106L
6610# error "__cpp_lib_format should have the value 202106L in c++26"
6611# endif
6612# else // _LIBCPP_VERSION
6613# ifdef __cpp_lib_format
6614# error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
6615# endif
6616# endif
6617
6618# if !defined(_LIBCPP_VERSION)
6619# ifndef __cpp_lib_format_path
6620# error "__cpp_lib_format_path should be defined in c++26"
6621# endif
6622# if __cpp_lib_format_path != 202403L
6623# error "__cpp_lib_format_path should have the value 202403L in c++26"
6624# endif
6625# else // _LIBCPP_VERSION
6626# ifdef __cpp_lib_format_path
6627# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!"
6628# endif
6629# endif
6630
6631# ifndef __cpp_lib_format_ranges
6632# error "__cpp_lib_format_ranges should be defined in c++26"
6633# endif
6634# if __cpp_lib_format_ranges != 202207L
6635# error "__cpp_lib_format_ranges should have the value 202207L in c++26"
6636# endif
6637
6638# ifndef __cpp_lib_format_uchar
6639# error "__cpp_lib_format_uchar should be defined in c++26"
6640# endif
6641# if __cpp_lib_format_uchar != 202311L
6642# error "__cpp_lib_format_uchar should have the value 202311L in c++26"
6643# endif
6644
6645# if !defined(_LIBCPP_VERSION)
6646# ifndef __cpp_lib_formatters
6647# error "__cpp_lib_formatters should be defined in c++26"
6648# endif
6649# if __cpp_lib_formatters != 202302L
6650# error "__cpp_lib_formatters should have the value 202302L in c++26"
6651# endif
6652# else // _LIBCPP_VERSION
6653# ifdef __cpp_lib_formatters
6654# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
6655# endif
6656# endif
6657
6658# ifndef __cpp_lib_forward_like
6659# error "__cpp_lib_forward_like should be defined in c++26"
6660# endif
6661# if __cpp_lib_forward_like != 202207L
6662# error "__cpp_lib_forward_like should have the value 202207L in c++26"
6663# endif
6664
6665# if !defined(_LIBCPP_VERSION)
6666# ifndef __cpp_lib_freestanding_algorithm
6667# error "__cpp_lib_freestanding_algorithm should be defined in c++26"
6668# endif
6669# if __cpp_lib_freestanding_algorithm != 202311L
6670# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26"
6671# endif
6672# else // _LIBCPP_VERSION
6673# ifdef __cpp_lib_freestanding_algorithm
6674# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
6675# endif
6676# endif
6677
6678# if !defined(_LIBCPP_VERSION)
6679# ifndef __cpp_lib_freestanding_array
6680# error "__cpp_lib_freestanding_array should be defined in c++26"
6681# endif
6682# if __cpp_lib_freestanding_array != 202311L
6683# error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
6684# endif
6685# else // _LIBCPP_VERSION
6686# ifdef __cpp_lib_freestanding_array
6687# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
6688# endif
6689# endif
6690
6691# if !defined(_LIBCPP_VERSION)
6692# ifndef __cpp_lib_freestanding_cstring
6693# error "__cpp_lib_freestanding_cstring should be defined in c++26"
6694# endif
6695# if __cpp_lib_freestanding_cstring != 202306L
6696# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26"
6697# endif
6698# else // _LIBCPP_VERSION
6699# ifdef __cpp_lib_freestanding_cstring
6700# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
6701# endif
6702# endif
6703
6704# if !defined(_LIBCPP_VERSION)
6705# ifndef __cpp_lib_freestanding_expected
6706# error "__cpp_lib_freestanding_expected should be defined in c++26"
6707# endif
6708# if __cpp_lib_freestanding_expected != 202311L
6709# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26"
6710# endif
6711# else // _LIBCPP_VERSION
6712# ifdef __cpp_lib_freestanding_expected
6713# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
6714# endif
6715# endif
6716
6717# if !defined(_LIBCPP_VERSION)
6718# ifndef __cpp_lib_freestanding_mdspan
6719# error "__cpp_lib_freestanding_mdspan should be defined in c++26"
6720# endif
6721# if __cpp_lib_freestanding_mdspan != 202311L
6722# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26"
6723# endif
6724# else // _LIBCPP_VERSION
6725# ifdef __cpp_lib_freestanding_mdspan
6726# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
6727# endif
6728# endif
6729
6730# if !defined(_LIBCPP_VERSION)
6731# ifndef __cpp_lib_freestanding_optional
6732# error "__cpp_lib_freestanding_optional should be defined in c++26"
6733# endif
6734# if __cpp_lib_freestanding_optional != 202311L
6735# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26"
6736# endif
6737# else // _LIBCPP_VERSION
6738# ifdef __cpp_lib_freestanding_optional
6739# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
6740# endif
6741# endif
6742
6743# if !defined(_LIBCPP_VERSION)
6744# ifndef __cpp_lib_freestanding_string_view
6745# error "__cpp_lib_freestanding_string_view should be defined in c++26"
6746# endif
6747# if __cpp_lib_freestanding_string_view != 202311L
6748# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26"
6749# endif
6750# else // _LIBCPP_VERSION
6751# ifdef __cpp_lib_freestanding_string_view
6752# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
6753# endif
6754# endif
6755
6756# if !defined(_LIBCPP_VERSION)
6757# ifndef __cpp_lib_freestanding_variant
6758# error "__cpp_lib_freestanding_variant should be defined in c++26"
6759# endif
6760# if __cpp_lib_freestanding_variant != 202311L
6761# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26"
6762# endif
6763# else // _LIBCPP_VERSION
6764# ifdef __cpp_lib_freestanding_variant
6765# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
6766# endif
6767# endif
6768
6769# if !defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && !defined(_LIBCPP_HAS_NO_LOCALIZATION))
6770# ifndef __cpp_lib_fstream_native_handle
6771# error "__cpp_lib_fstream_native_handle should be defined in c++26"
6772# endif
6773# if __cpp_lib_fstream_native_handle != 202306L
6774# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26"
6775# endif
6776# else
6777# ifdef __cpp_lib_fstream_native_handle
6778# error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (!defined(_LIBCPP_HAS_NO_FILESYSTEM) && !defined(_LIBCPP_HAS_NO_LOCALIZATION))' is not met!"
6779# endif
6780# endif
6781
6782# if !defined(_LIBCPP_VERSION)
6783# ifndef __cpp_lib_function_ref
6784# error "__cpp_lib_function_ref should be defined in c++26"
6785# endif
6786# if __cpp_lib_function_ref != 202306L
6787# error "__cpp_lib_function_ref should have the value 202306L in c++26"
6788# endif
6789# else // _LIBCPP_VERSION
6790# ifdef __cpp_lib_function_ref
6791# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!"
6792# endif
6793# endif
6794
6795# ifndef __cpp_lib_gcd_lcm
6796# error "__cpp_lib_gcd_lcm should be defined in c++26"
6797# endif
6798# if __cpp_lib_gcd_lcm != 201606L
6799# error "__cpp_lib_gcd_lcm should have the value 201606L in c++26"
6800# endif
6801
6802# if !defined(_LIBCPP_VERSION)
6803# ifndef __cpp_lib_generate_random
6804# error "__cpp_lib_generate_random should be defined in c++26"
6805# endif
6806# if __cpp_lib_generate_random != 202403L
6807# error "__cpp_lib_generate_random should have the value 202403L in c++26"
6808# endif
6809# else // _LIBCPP_VERSION
6810# ifdef __cpp_lib_generate_random
6811# error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!"
6812# endif
6813# endif
6814
6815# ifndef __cpp_lib_generic_associative_lookup
6816# error "__cpp_lib_generic_associative_lookup should be defined in c++26"
6817# endif
6818# if __cpp_lib_generic_associative_lookup != 201304L
6819# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26"
6820# endif
6821
6822# ifndef __cpp_lib_generic_unordered_lookup
6823# error "__cpp_lib_generic_unordered_lookup should be defined in c++26"
6824# endif
6825# if __cpp_lib_generic_unordered_lookup != 201811L
6826# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26"
6827# endif
6828
6829# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
6830# ifndef __cpp_lib_hardware_interference_size
6831# error "__cpp_lib_hardware_interference_size should be defined in c++26"
6832# endif
6833# if __cpp_lib_hardware_interference_size != 201703L
6834# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26"
6835# endif
6836# else
6837# ifdef __cpp_lib_hardware_interference_size
6838# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
6839# endif
6840# endif
6841
6842# ifndef __cpp_lib_has_unique_object_representations
6843# error "__cpp_lib_has_unique_object_representations should be defined in c++26"
6844# endif
6845# if __cpp_lib_has_unique_object_representations != 201606L
6846# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26"
6847# endif
6848
6849# if !defined(_LIBCPP_VERSION)
6850# ifndef __cpp_lib_hazard_pointer
6851# error "__cpp_lib_hazard_pointer should be defined in c++26"
6852# endif
6853# if __cpp_lib_hazard_pointer != 202306L
6854# error "__cpp_lib_hazard_pointer should have the value 202306L in c++26"
6855# endif
6856# else // _LIBCPP_VERSION
6857# ifdef __cpp_lib_hazard_pointer
6858# error "__cpp_lib_hazard_pointer should not be defined because it is unimplemented in libc++!"
6859# endif
6860# endif
6861
6862# ifndef __cpp_lib_hypot
6863# error "__cpp_lib_hypot should be defined in c++26"
6864# endif
6865# if __cpp_lib_hypot != 201603L
6866# error "__cpp_lib_hypot should have the value 201603L in c++26"
6867# endif
6868
6869# ifndef __cpp_lib_incomplete_container_elements
6870# error "__cpp_lib_incomplete_container_elements should be defined in c++26"
6871# endif
6872# if __cpp_lib_incomplete_container_elements != 201505L
6873# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26"
6874# endif
6875
6876# ifndef __cpp_lib_int_pow2
6877# error "__cpp_lib_int_pow2 should be defined in c++26"
6878# endif
6879# if __cpp_lib_int_pow2 != 202002L
6880# error "__cpp_lib_int_pow2 should have the value 202002L in c++26"
6881# endif
6882
6883# ifndef __cpp_lib_integer_comparison_functions
6884# error "__cpp_lib_integer_comparison_functions should be defined in c++26"
6885# endif
6886# if __cpp_lib_integer_comparison_functions != 202002L
6887# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26"
6888# endif
6889
6890# ifndef __cpp_lib_integer_sequence
6891# error "__cpp_lib_integer_sequence should be defined in c++26"
6892# endif
6893# if __cpp_lib_integer_sequence != 201304L
6894# error "__cpp_lib_integer_sequence should have the value 201304L in c++26"
6895# endif
6896
6897# ifndef __cpp_lib_integral_constant_callable
6898# error "__cpp_lib_integral_constant_callable should be defined in c++26"
6899# endif
6900# if __cpp_lib_integral_constant_callable != 201304L
6901# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26"
6902# endif
6903
6904# ifndef __cpp_lib_interpolate
6905# error "__cpp_lib_interpolate should be defined in c++26"
6906# endif
6907# if __cpp_lib_interpolate != 201902L
6908# error "__cpp_lib_interpolate should have the value 201902L in c++26"
6909# endif
6910
6911# ifndef __cpp_lib_invoke
6912# error "__cpp_lib_invoke should be defined in c++26"
6913# endif
6914# if __cpp_lib_invoke != 201411L
6915# error "__cpp_lib_invoke should have the value 201411L in c++26"
6916# endif
6917
6918# ifndef __cpp_lib_invoke_r
6919# error "__cpp_lib_invoke_r should be defined in c++26"
6920# endif
6921# if __cpp_lib_invoke_r != 202106L
6922# error "__cpp_lib_invoke_r should have the value 202106L in c++26"
6923# endif
6924
6925# ifndef __cpp_lib_ios_noreplace
6926# error "__cpp_lib_ios_noreplace should be defined in c++26"
6927# endif
6928# if __cpp_lib_ios_noreplace != 202207L
6929# error "__cpp_lib_ios_noreplace should have the value 202207L in c++26"
6930# endif
6931
6932# ifndef __cpp_lib_is_aggregate
6933# error "__cpp_lib_is_aggregate should be defined in c++26"
6934# endif
6935# if __cpp_lib_is_aggregate != 201703L
6936# error "__cpp_lib_is_aggregate should have the value 201703L in c++26"
6937# endif
6938
6939# ifndef __cpp_lib_is_constant_evaluated
6940# error "__cpp_lib_is_constant_evaluated should be defined in c++26"
6941# endif
6942# if __cpp_lib_is_constant_evaluated != 201811L
6943# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26"
6944# endif
6945
6946# ifndef __cpp_lib_is_final
6947# error "__cpp_lib_is_final should be defined in c++26"
6948# endif
6949# if __cpp_lib_is_final != 201402L
6950# error "__cpp_lib_is_final should have the value 201402L in c++26"
6951# endif
6952
6953# ifndef __cpp_lib_is_invocable
6954# error "__cpp_lib_is_invocable should be defined in c++26"
6955# endif
6956# if __cpp_lib_is_invocable != 201703L
6957# error "__cpp_lib_is_invocable should have the value 201703L in c++26"
6958# endif
6959
6960# if !defined(_LIBCPP_VERSION)
6961# ifndef __cpp_lib_is_layout_compatible
6962# error "__cpp_lib_is_layout_compatible should be defined in c++26"
6963# endif
6964# if __cpp_lib_is_layout_compatible != 201907L
6965# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26"
6966# endif
6967# else // _LIBCPP_VERSION
6968# ifdef __cpp_lib_is_layout_compatible
6969# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
6970# endif
6971# endif
6972
6973# ifndef __cpp_lib_is_nothrow_convertible
6974# error "__cpp_lib_is_nothrow_convertible should be defined in c++26"
6975# endif
6976# if __cpp_lib_is_nothrow_convertible != 201806L
6977# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26"
6978# endif
6979
6980# ifndef __cpp_lib_is_null_pointer
6981# error "__cpp_lib_is_null_pointer should be defined in c++26"
6982# endif
6983# if __cpp_lib_is_null_pointer != 201309L
6984# error "__cpp_lib_is_null_pointer should have the value 201309L in c++26"
6985# endif
6986
6987# if !defined(_LIBCPP_VERSION)
6988# ifndef __cpp_lib_is_pointer_interconvertible
6989# error "__cpp_lib_is_pointer_interconvertible should be defined in c++26"
6990# endif
6991# if __cpp_lib_is_pointer_interconvertible != 201907L
6992# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26"
6993# endif
6994# else // _LIBCPP_VERSION
6995# ifdef __cpp_lib_is_pointer_interconvertible
6996# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
6997# endif
6998# endif
6999
7000# ifndef __cpp_lib_is_scoped_enum
7001# error "__cpp_lib_is_scoped_enum should be defined in c++26"
7002# endif
7003# if __cpp_lib_is_scoped_enum != 202011L
7004# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26"
7005# endif
7006
7007# ifndef __cpp_lib_is_swappable
7008# error "__cpp_lib_is_swappable should be defined in c++26"
7009# endif
7010# if __cpp_lib_is_swappable != 201603L
7011# error "__cpp_lib_is_swappable should have the value 201603L in c++26"
7012# endif
7013
7014# if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
7015# ifndef __cpp_lib_jthread
7016# error "__cpp_lib_jthread should be defined in c++26"
7017# endif
7018# if __cpp_lib_jthread != 201911L
7019# error "__cpp_lib_jthread should have the value 201911L in c++26"
7020# endif
7021# else
7022# ifdef __cpp_lib_jthread
7023# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_STOP_TOKEN) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
7024# endif
7025# endif
7026
7027# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
7028# ifndef __cpp_lib_latch
7029# error "__cpp_lib_latch should be defined in c++26"
7030# endif
7031# if __cpp_lib_latch != 201907L
7032# error "__cpp_lib_latch should have the value 201907L in c++26"
7033# endif
7034# else
7035# ifdef __cpp_lib_latch
7036# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
7037# endif
7038# endif
7039
7040# ifndef __cpp_lib_launder
7041# error "__cpp_lib_launder should be defined in c++26"
7042# endif
7043# if __cpp_lib_launder != 201606L
7044# error "__cpp_lib_launder should have the value 201606L in c++26"
7045# endif
7046
7047# if !defined(_LIBCPP_VERSION)
7048# ifndef __cpp_lib_linalg
7049# error "__cpp_lib_linalg should be defined in c++26"
7050# endif
7051# if __cpp_lib_linalg != 202311L
7052# error "__cpp_lib_linalg should have the value 202311L in c++26"
7053# endif
7054# else // _LIBCPP_VERSION
7055# ifdef __cpp_lib_linalg
7056# error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!"
7057# endif
7058# endif
7059
7060# ifndef __cpp_lib_list_remove_return_type
7061# error "__cpp_lib_list_remove_return_type should be defined in c++26"
7062# endif
7063# if __cpp_lib_list_remove_return_type != 201806L
7064# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26"
7065# endif
7066
7067# ifndef __cpp_lib_logical_traits
7068# error "__cpp_lib_logical_traits should be defined in c++26"
7069# endif
7070# if __cpp_lib_logical_traits != 201510L
7071# error "__cpp_lib_logical_traits should have the value 201510L in c++26"
7072# endif
7073
7074# ifndef __cpp_lib_make_from_tuple
7075# error "__cpp_lib_make_from_tuple should be defined in c++26"
7076# endif
7077# if __cpp_lib_make_from_tuple != 201606L
7078# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26"
7079# endif
7080
7081# ifndef __cpp_lib_make_reverse_iterator
7082# error "__cpp_lib_make_reverse_iterator should be defined in c++26"
7083# endif
7084# if __cpp_lib_make_reverse_iterator != 201402L
7085# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26"
7086# endif
7087
7088# ifndef __cpp_lib_make_unique
7089# error "__cpp_lib_make_unique should be defined in c++26"
7090# endif
7091# if __cpp_lib_make_unique != 201304L
7092# error "__cpp_lib_make_unique should have the value 201304L in c++26"
7093# endif
7094
7095# ifndef __cpp_lib_map_try_emplace
7096# error "__cpp_lib_map_try_emplace should be defined in c++26"
7097# endif
7098# if __cpp_lib_map_try_emplace != 201411L
7099# error "__cpp_lib_map_try_emplace should have the value 201411L in c++26"
7100# endif
7101
7102# ifndef __cpp_lib_math_constants
7103# error "__cpp_lib_math_constants should be defined in c++26"
7104# endif
7105# if __cpp_lib_math_constants != 201907L
7106# error "__cpp_lib_math_constants should have the value 201907L in c++26"
7107# endif
7108
7109# if !defined(_LIBCPP_VERSION)
7110# ifndef __cpp_lib_math_special_functions
7111# error "__cpp_lib_math_special_functions should be defined in c++26"
7112# endif
7113# if __cpp_lib_math_special_functions != 201603L
7114# error "__cpp_lib_math_special_functions should have the value 201603L in c++26"
7115# endif
7116# else // _LIBCPP_VERSION
7117# ifdef __cpp_lib_math_special_functions
7118# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
7119# endif
7120# endif
7121
7122# ifndef __cpp_lib_mdspan
7123# error "__cpp_lib_mdspan should be defined in c++26"
7124# endif
7125# if __cpp_lib_mdspan != 202207L
7126# error "__cpp_lib_mdspan should have the value 202207L in c++26"
7127# endif
7128
7129# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
7130# ifndef __cpp_lib_memory_resource
7131# error "__cpp_lib_memory_resource should be defined in c++26"
7132# endif
7133# if __cpp_lib_memory_resource != 201603L
7134# error "__cpp_lib_memory_resource should have the value 201603L in c++26"
7135# endif
7136# else
7137# ifdef __cpp_lib_memory_resource
7138# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
7139# endif
7140# endif
7141
7142# ifndef __cpp_lib_move_iterator_concept
7143# error "__cpp_lib_move_iterator_concept should be defined in c++26"
7144# endif
7145# if __cpp_lib_move_iterator_concept != 202207L
7146# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26"
7147# endif
7148
7149# if !defined(_LIBCPP_VERSION)
7150# ifndef __cpp_lib_move_only_function
7151# error "__cpp_lib_move_only_function should be defined in c++26"
7152# endif
7153# if __cpp_lib_move_only_function != 202110L
7154# error "__cpp_lib_move_only_function should have the value 202110L in c++26"
7155# endif
7156# else // _LIBCPP_VERSION
7157# ifdef __cpp_lib_move_only_function
7158# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
7159# endif
7160# endif
7161
7162# ifndef __cpp_lib_node_extract
7163# error "__cpp_lib_node_extract should be defined in c++26"
7164# endif
7165# if __cpp_lib_node_extract != 201606L
7166# error "__cpp_lib_node_extract should have the value 201606L in c++26"
7167# endif
7168
7169# ifndef __cpp_lib_nonmember_container_access
7170# error "__cpp_lib_nonmember_container_access should be defined in c++26"
7171# endif
7172# if __cpp_lib_nonmember_container_access != 201411L
7173# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
7174# endif
7175
7176# ifndef __cpp_lib_not_fn
7177# error "__cpp_lib_not_fn should be defined in c++26"
7178# endif
7179# if __cpp_lib_not_fn != 201603L
7180# error "__cpp_lib_not_fn should have the value 201603L in c++26"
7181# endif
7182
7183# ifndef __cpp_lib_null_iterators
7184# error "__cpp_lib_null_iterators should be defined in c++26"
7185# endif
7186# if __cpp_lib_null_iterators != 201304L
7187# error "__cpp_lib_null_iterators should have the value 201304L in c++26"
7188# endif
7189
7190# ifndef __cpp_lib_optional
7191# error "__cpp_lib_optional should be defined in c++26"
7192# endif
7193# if __cpp_lib_optional != 202110L
7194# error "__cpp_lib_optional should have the value 202110L in c++26"
7195# endif
7196
7197# if !defined(_LIBCPP_VERSION)
7198# ifndef __cpp_lib_out_ptr
7199# error "__cpp_lib_out_ptr should be defined in c++26"
7200# endif
7201# if __cpp_lib_out_ptr != 202311L
7202# error "__cpp_lib_out_ptr should have the value 202311L in c++26"
7203# endif
7204# else // _LIBCPP_VERSION
7205# ifdef __cpp_lib_out_ptr
7206# error "__cpp_lib_out_ptr should not be defined because it is unimplemented in libc++!"
7207# endif
7208# endif
7209
7210# if !defined(_LIBCPP_VERSION)
7211# ifndef __cpp_lib_parallel_algorithm
7212# error "__cpp_lib_parallel_algorithm should be defined in c++26"
7213# endif
7214# if __cpp_lib_parallel_algorithm != 201603L
7215# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26"
7216# endif
7217# else // _LIBCPP_VERSION
7218# ifdef __cpp_lib_parallel_algorithm
7219# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
7220# endif
7221# endif
7222
7223# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
7224# ifndef __cpp_lib_polymorphic_allocator
7225# error "__cpp_lib_polymorphic_allocator should be defined in c++26"
7226# endif
7227# if __cpp_lib_polymorphic_allocator != 201902L
7228# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26"
7229# endif
7230# else
7231# ifdef __cpp_lib_polymorphic_allocator
7232# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
7233# endif
7234# endif
7235
7236# ifndef __cpp_lib_print
7237# error "__cpp_lib_print should be defined in c++26"
7238# endif
7239# if __cpp_lib_print != 202207L
7240# error "__cpp_lib_print should have the value 202207L in c++26"
7241# endif
7242
7243# if !defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)
7244# ifndef __cpp_lib_quoted_string_io
7245# error "__cpp_lib_quoted_string_io should be defined in c++26"
7246# endif
7247# if __cpp_lib_quoted_string_io != 201304L
7248# error "__cpp_lib_quoted_string_io should have the value 201304L in c++26"
7249# endif
7250# else
7251# ifdef __cpp_lib_quoted_string_io
7252# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || !defined(_LIBCPP_HAS_NO_LOCALIZATION)' is not met!"
7253# endif
7254# endif
7255
7256# ifndef __cpp_lib_ranges
7257# error "__cpp_lib_ranges should be defined in c++26"
7258# endif
7259# if __cpp_lib_ranges != 202207L
7260# error "__cpp_lib_ranges should have the value 202207L in c++26"
7261# endif
7262
7263# if !defined(_LIBCPP_VERSION)
7264# ifndef __cpp_lib_ranges_as_const
7265# error "__cpp_lib_ranges_as_const should be defined in c++26"
7266# endif
7267# if __cpp_lib_ranges_as_const != 202207L
7268# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26"
7269# endif
7270# else // _LIBCPP_VERSION
7271# ifdef __cpp_lib_ranges_as_const
7272# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
7273# endif
7274# endif
7275
7276# ifndef __cpp_lib_ranges_as_rvalue
7277# error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
7278# endif
7279# if __cpp_lib_ranges_as_rvalue != 202207L
7280# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26"
7281# endif
7282
7283# if !defined(_LIBCPP_VERSION)
7284# ifndef __cpp_lib_ranges_chunk
7285# error "__cpp_lib_ranges_chunk should be defined in c++26"
7286# endif
7287# if __cpp_lib_ranges_chunk != 202202L
7288# error "__cpp_lib_ranges_chunk should have the value 202202L in c++26"
7289# endif
7290# else // _LIBCPP_VERSION
7291# ifdef __cpp_lib_ranges_chunk
7292# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
7293# endif
7294# endif
7295
7296# ifndef __cpp_lib_ranges_chunk_by
7297# error "__cpp_lib_ranges_chunk_by should be defined in c++26"
7298# endif
7299# if __cpp_lib_ranges_chunk_by != 202202L
7300# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26"
7301# endif
7302
7303# if !defined(_LIBCPP_VERSION)
7304# ifndef __cpp_lib_ranges_concat
7305# error "__cpp_lib_ranges_concat should be defined in c++26"
7306# endif
7307# if __cpp_lib_ranges_concat != 202403L
7308# error "__cpp_lib_ranges_concat should have the value 202403L in c++26"
7309# endif
7310# else // _LIBCPP_VERSION
7311# ifdef __cpp_lib_ranges_concat
7312# error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!"
7313# endif
7314# endif
7315
7316# ifndef __cpp_lib_ranges_contains
7317# error "__cpp_lib_ranges_contains should be defined in c++26"
7318# endif
7319# if __cpp_lib_ranges_contains != 202207L
7320# error "__cpp_lib_ranges_contains should have the value 202207L in c++26"
7321# endif
7322
7323# if !defined(_LIBCPP_VERSION)
7324# ifndef __cpp_lib_ranges_iota
7325# error "__cpp_lib_ranges_iota should be defined in c++26"
7326# endif
7327# if __cpp_lib_ranges_iota != 202202L
7328# error "__cpp_lib_ranges_iota should have the value 202202L in c++26"
7329# endif
7330# else // _LIBCPP_VERSION
7331# ifdef __cpp_lib_ranges_iota
7332# error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
7333# endif
7334# endif
7335
7336# if !defined(_LIBCPP_VERSION)
7337# ifndef __cpp_lib_ranges_join_with
7338# error "__cpp_lib_ranges_join_with should be defined in c++26"
7339# endif
7340# if __cpp_lib_ranges_join_with != 202202L
7341# error "__cpp_lib_ranges_join_with should have the value 202202L in c++26"
7342# endif
7343# else // _LIBCPP_VERSION
7344# ifdef __cpp_lib_ranges_join_with
7345# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
7346# endif
7347# endif
7348
7349# ifndef __cpp_lib_ranges_repeat
7350# error "__cpp_lib_ranges_repeat should be defined in c++26"
7351# endif
7352# if __cpp_lib_ranges_repeat != 202207L
7353# error "__cpp_lib_ranges_repeat should have the value 202207L in c++26"
7354# endif
7355
7356# if !defined(_LIBCPP_VERSION)
7357# ifndef __cpp_lib_ranges_slide
7358# error "__cpp_lib_ranges_slide should be defined in c++26"
7359# endif
7360# if __cpp_lib_ranges_slide != 202202L
7361# error "__cpp_lib_ranges_slide should have the value 202202L in c++26"
7362# endif
7363# else // _LIBCPP_VERSION
7364# ifdef __cpp_lib_ranges_slide
7365# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
7366# endif
7367# endif
7368
7369# ifndef __cpp_lib_ranges_starts_ends_with
7370# error "__cpp_lib_ranges_starts_ends_with should be defined in c++26"
7371# endif
7372# if __cpp_lib_ranges_starts_ends_with != 202106L
7373# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++26"
7374# endif
7375
7376# ifndef __cpp_lib_ranges_to_container
7377# error "__cpp_lib_ranges_to_container should be defined in c++26"
7378# endif
7379# if __cpp_lib_ranges_to_container != 202202L
7380# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
7381# endif
7382
7383# if !defined(_LIBCPP_VERSION)
7384# ifndef __cpp_lib_ranges_zip
7385# error "__cpp_lib_ranges_zip should be defined in c++26"
7386# endif
7387# if __cpp_lib_ranges_zip != 202110L
7388# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
7389# endif
7390# else // _LIBCPP_VERSION
7391# ifdef __cpp_lib_ranges_zip
7392# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
7393# endif
7394# endif
7395
7396# ifndef __cpp_lib_ratio
7397# error "__cpp_lib_ratio should be defined in c++26"
7398# endif
7399# if __cpp_lib_ratio != 202306L
7400# error "__cpp_lib_ratio should have the value 202306L in c++26"
7401# endif
7402
7403# ifndef __cpp_lib_raw_memory_algorithms
7404# error "__cpp_lib_raw_memory_algorithms should be defined in c++26"
7405# endif
7406# if __cpp_lib_raw_memory_algorithms != 201606L
7407# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26"
7408# endif
7409
7410# if !defined(_LIBCPP_VERSION)
7411# ifndef __cpp_lib_rcu
7412# error "__cpp_lib_rcu should be defined in c++26"
7413# endif
7414# if __cpp_lib_rcu != 202306L
7415# error "__cpp_lib_rcu should have the value 202306L in c++26"
7416# endif
7417# else // _LIBCPP_VERSION
7418# ifdef __cpp_lib_rcu
7419# error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!"
7420# endif
7421# endif
7422
7423# if !defined(_LIBCPP_VERSION)
7424# ifndef __cpp_lib_reference_from_temporary
7425# error "__cpp_lib_reference_from_temporary should be defined in c++26"
7426# endif
7427# if __cpp_lib_reference_from_temporary != 202202L
7428# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26"
7429# endif
7430# else // _LIBCPP_VERSION
7431# ifdef __cpp_lib_reference_from_temporary
7432# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
7433# endif
7434# endif
7435
7436# if !defined(_LIBCPP_VERSION)
7437# ifndef __cpp_lib_reference_wrapper
7438# error "__cpp_lib_reference_wrapper should be defined in c++26"
7439# endif
7440# if __cpp_lib_reference_wrapper != 202403L
7441# error "__cpp_lib_reference_wrapper should have the value 202403L in c++26"
7442# endif
7443# else // _LIBCPP_VERSION
7444# ifdef __cpp_lib_reference_wrapper
7445# error "__cpp_lib_reference_wrapper should not be defined because it is unimplemented in libc++!"
7446# endif
7447# endif
7448
7449# ifndef __cpp_lib_remove_cvref
7450# error "__cpp_lib_remove_cvref should be defined in c++26"
7451# endif
7452# if __cpp_lib_remove_cvref != 201711L
7453# error "__cpp_lib_remove_cvref should have the value 201711L in c++26"
7454# endif
7455
7456# ifndef __cpp_lib_result_of_sfinae
7457# error "__cpp_lib_result_of_sfinae should be defined in c++26"
7458# endif
7459# if __cpp_lib_result_of_sfinae != 201210L
7460# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26"
7461# endif
7462
7463# ifndef __cpp_lib_robust_nonmodifying_seq_ops
7464# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26"
7465# endif
7466# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
7467# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26"
7468# endif
7469
7470# ifndef __cpp_lib_sample
7471# error "__cpp_lib_sample should be defined in c++26"
7472# endif
7473# if __cpp_lib_sample != 201603L
7474# error "__cpp_lib_sample should have the value 201603L in c++26"
7475# endif
7476
7477# ifndef __cpp_lib_saturation_arithmetic
7478# error "__cpp_lib_saturation_arithmetic should be defined in c++26"
7479# endif
7480# if __cpp_lib_saturation_arithmetic != 202311L
7481# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26"
7482# endif
7483
7484# if !defined(_LIBCPP_HAS_NO_THREADS)
7485# ifndef __cpp_lib_scoped_lock
7486# error "__cpp_lib_scoped_lock should be defined in c++26"
7487# endif
7488# if __cpp_lib_scoped_lock != 201703L
7489# error "__cpp_lib_scoped_lock should have the value 201703L in c++26"
7490# endif
7491# else
7492# ifdef __cpp_lib_scoped_lock
7493# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
7494# endif
7495# endif
7496
7497# if !defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)
7498# ifndef __cpp_lib_semaphore
7499# error "__cpp_lib_semaphore should be defined in c++26"
7500# endif
7501# if __cpp_lib_semaphore != 201907L
7502# error "__cpp_lib_semaphore should have the value 201907L in c++26"
7503# endif
7504# else
7505# ifdef __cpp_lib_semaphore
7506# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
7507# endif
7508# endif
7509
7510# if !defined(_LIBCPP_HAS_NO_THREADS)
7511# ifndef __cpp_lib_shared_mutex
7512# error "__cpp_lib_shared_mutex should be defined in c++26"
7513# endif
7514# if __cpp_lib_shared_mutex != 201505L
7515# error "__cpp_lib_shared_mutex should have the value 201505L in c++26"
7516# endif
7517# else
7518# ifdef __cpp_lib_shared_mutex
7519# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
7520# endif
7521# endif
7522
7523# ifndef __cpp_lib_shared_ptr_arrays
7524# error "__cpp_lib_shared_ptr_arrays should be defined in c++26"
7525# endif
7526# if __cpp_lib_shared_ptr_arrays != 201707L
7527# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26"
7528# endif
7529
7530# ifndef __cpp_lib_shared_ptr_weak_type
7531# error "__cpp_lib_shared_ptr_weak_type should be defined in c++26"
7532# endif
7533# if __cpp_lib_shared_ptr_weak_type != 201606L
7534# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26"
7535# endif
7536
7537# if !defined(_LIBCPP_HAS_NO_THREADS)
7538# ifndef __cpp_lib_shared_timed_mutex
7539# error "__cpp_lib_shared_timed_mutex should be defined in c++26"
7540# endif
7541# if __cpp_lib_shared_timed_mutex != 201402L
7542# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26"
7543# endif
7544# else
7545# ifdef __cpp_lib_shared_timed_mutex
7546# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_THREADS)' is not met!"
7547# endif
7548# endif
7549
7550# ifndef __cpp_lib_shift
7551# error "__cpp_lib_shift should be defined in c++26"
7552# endif
7553# if __cpp_lib_shift != 201806L
7554# error "__cpp_lib_shift should have the value 201806L in c++26"
7555# endif
7556
7557# if !defined(_LIBCPP_VERSION)
7558# ifndef __cpp_lib_smart_ptr_for_overwrite
7559# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26"
7560# endif
7561# if __cpp_lib_smart_ptr_for_overwrite != 202002L
7562# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26"
7563# endif
7564# else // _LIBCPP_VERSION
7565# ifdef __cpp_lib_smart_ptr_for_overwrite
7566# error "__cpp_lib_smart_ptr_for_overwrite should not be defined because it is unimplemented in libc++!"
7567# endif
7568# endif
7569
7570# if !defined(_LIBCPP_VERSION)
7571# ifndef __cpp_lib_smart_ptr_owner_equality
7572# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26"
7573# endif
7574# if __cpp_lib_smart_ptr_owner_equality != 202306L
7575# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26"
7576# endif
7577# else // _LIBCPP_VERSION
7578# ifdef __cpp_lib_smart_ptr_owner_equality
7579# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!"
7580# endif
7581# endif
7582
7583# ifndef __cpp_lib_source_location
7584# error "__cpp_lib_source_location should be defined in c++26"
7585# endif
7586# if __cpp_lib_source_location != 201907L
7587# error "__cpp_lib_source_location should have the value 201907L in c++26"
7588# endif
7589
7590# ifndef __cpp_lib_span
7591# error "__cpp_lib_span should be defined in c++26"
7592# endif
7593# if __cpp_lib_span != 202002L
7594# error "__cpp_lib_span should have the value 202002L in c++26"
7595# endif
7596
7597# ifndef __cpp_lib_span_at
7598# error "__cpp_lib_span_at should be defined in c++26"
7599# endif
7600# if __cpp_lib_span_at != 202311L
7601# error "__cpp_lib_span_at should have the value 202311L in c++26"
7602# endif
7603
7604# ifndef __cpp_lib_span_initializer_list
7605# error "__cpp_lib_span_initializer_list should be defined in c++26"
7606# endif
7607# if __cpp_lib_span_initializer_list != 202311L
7608# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26"
7609# endif
7610
7611# if !defined(_LIBCPP_VERSION)
7612# ifndef __cpp_lib_spanstream
7613# error "__cpp_lib_spanstream should be defined in c++26"
7614# endif
7615# if __cpp_lib_spanstream != 202106L
7616# error "__cpp_lib_spanstream should have the value 202106L in c++26"
7617# endif
7618# else // _LIBCPP_VERSION
7619# ifdef __cpp_lib_spanstream
7620# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
7621# endif
7622# endif
7623
7624# ifndef __cpp_lib_ssize
7625# error "__cpp_lib_ssize should be defined in c++26"
7626# endif
7627# if __cpp_lib_ssize != 201902L
7628# error "__cpp_lib_ssize should have the value 201902L in c++26"
7629# endif
7630
7631# ifndef __cpp_lib_sstream_from_string_view
7632# error "__cpp_lib_sstream_from_string_view should be defined in c++26"
7633# endif
7634# if __cpp_lib_sstream_from_string_view != 202306L
7635# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26"
7636# endif
7637
7638# if !defined(_LIBCPP_VERSION)
7639# ifndef __cpp_lib_stacktrace
7640# error "__cpp_lib_stacktrace should be defined in c++26"
7641# endif
7642# if __cpp_lib_stacktrace != 202011L
7643# error "__cpp_lib_stacktrace should have the value 202011L in c++26"
7644# endif
7645# else // _LIBCPP_VERSION
7646# ifdef __cpp_lib_stacktrace
7647# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
7648# endif
7649# endif
7650
7651# ifndef __cpp_lib_starts_ends_with
7652# error "__cpp_lib_starts_ends_with should be defined in c++26"
7653# endif
7654# if __cpp_lib_starts_ends_with != 201711L
7655# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26"
7656# endif
7657
7658# ifndef __cpp_lib_stdatomic_h
7659# error "__cpp_lib_stdatomic_h should be defined in c++26"
7660# endif
7661# if __cpp_lib_stdatomic_h != 202011L
7662# error "__cpp_lib_stdatomic_h should have the value 202011L in c++26"
7663# endif
7664
7665# ifndef __cpp_lib_string_contains
7666# error "__cpp_lib_string_contains should be defined in c++26"
7667# endif
7668# if __cpp_lib_string_contains != 202011L
7669# error "__cpp_lib_string_contains should have the value 202011L in c++26"
7670# endif
7671
7672# ifndef __cpp_lib_string_resize_and_overwrite
7673# error "__cpp_lib_string_resize_and_overwrite should be defined in c++26"
7674# endif
7675# if __cpp_lib_string_resize_and_overwrite != 202110L
7676# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26"
7677# endif
7678
7679# ifndef __cpp_lib_string_udls
7680# error "__cpp_lib_string_udls should be defined in c++26"
7681# endif
7682# if __cpp_lib_string_udls != 201304L
7683# error "__cpp_lib_string_udls should have the value 201304L in c++26"
7684# endif
7685
7686# ifndef __cpp_lib_string_view
7687# error "__cpp_lib_string_view should be defined in c++26"
7688# endif
7689# if __cpp_lib_string_view != 201803L
7690# error "__cpp_lib_string_view should have the value 201803L in c++26"
7691# endif
7692
7693# if !defined(_LIBCPP_VERSION)
7694# ifndef __cpp_lib_submdspan
7695# error "__cpp_lib_submdspan should be defined in c++26"
7696# endif
7697# if __cpp_lib_submdspan != 202306L
7698# error "__cpp_lib_submdspan should have the value 202306L in c++26"
7699# endif
7700# else // _LIBCPP_VERSION
7701# ifdef __cpp_lib_submdspan
7702# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!"
7703# endif
7704# endif
7705
7706# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
7707# ifndef __cpp_lib_syncbuf
7708# error "__cpp_lib_syncbuf should be defined in c++26"
7709# endif
7710# if __cpp_lib_syncbuf != 201803L
7711# error "__cpp_lib_syncbuf should have the value 201803L in c++26"
7712# endif
7713# else
7714# ifdef __cpp_lib_syncbuf
7715# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)' is not met!"
7716# endif
7717# endif
7718
7719# if !defined(_LIBCPP_VERSION)
7720# ifndef __cpp_lib_text_encoding
7721# error "__cpp_lib_text_encoding should be defined in c++26"
7722# endif
7723# if __cpp_lib_text_encoding != 202306L
7724# error "__cpp_lib_text_encoding should have the value 202306L in c++26"
7725# endif
7726# else // _LIBCPP_VERSION
7727# ifdef __cpp_lib_text_encoding
7728# error "__cpp_lib_text_encoding should not be defined because it is unimplemented in libc++!"
7729# endif
7730# endif
7731
7732# if !defined(_LIBCPP_VERSION)
7733# ifndef __cpp_lib_three_way_comparison
7734# error "__cpp_lib_three_way_comparison should be defined in c++26"
7735# endif
7736# if __cpp_lib_three_way_comparison != 201907L
7737# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
7738# endif
7739# else // _LIBCPP_VERSION
7740# ifdef __cpp_lib_three_way_comparison
7741# error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
7742# endif
7743# endif
7744
7745# ifndef __cpp_lib_to_address
7746# error "__cpp_lib_to_address should be defined in c++26"
7747# endif
7748# if __cpp_lib_to_address != 201711L
7749# error "__cpp_lib_to_address should have the value 201711L in c++26"
7750# endif
7751
7752# ifndef __cpp_lib_to_array
7753# error "__cpp_lib_to_array should be defined in c++26"
7754# endif
7755# if __cpp_lib_to_array != 201907L
7756# error "__cpp_lib_to_array should have the value 201907L in c++26"
7757# endif
7758
7759# if !defined(_LIBCPP_VERSION)
7760# ifndef __cpp_lib_to_chars
7761# error "__cpp_lib_to_chars should be defined in c++26"
7762# endif
7763# if __cpp_lib_to_chars != 202306L
7764# error "__cpp_lib_to_chars should have the value 202306L in c++26"
7765# endif
7766# else // _LIBCPP_VERSION
7767# ifdef __cpp_lib_to_chars
7768# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
7769# endif
7770# endif
7771
7772# if !defined(_LIBCPP_VERSION)
7773# ifndef __cpp_lib_to_string
7774# error "__cpp_lib_to_string should be defined in c++26"
7775# endif
7776# if __cpp_lib_to_string != 202306L
7777# error "__cpp_lib_to_string should have the value 202306L in c++26"
7778# endif
7779# else // _LIBCPP_VERSION
7780# ifdef __cpp_lib_to_string
7781# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
7782# endif
7783# endif
7784
7785# ifndef __cpp_lib_to_underlying
7786# error "__cpp_lib_to_underlying should be defined in c++26"
7787# endif
7788# if __cpp_lib_to_underlying != 202102L
7789# error "__cpp_lib_to_underlying should have the value 202102L in c++26"
7790# endif
7791
7792# ifndef __cpp_lib_transformation_trait_aliases
7793# error "__cpp_lib_transformation_trait_aliases should be defined in c++26"
7794# endif
7795# if __cpp_lib_transformation_trait_aliases != 201304L
7796# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26"
7797# endif
7798
7799# ifndef __cpp_lib_transparent_operators
7800# error "__cpp_lib_transparent_operators should be defined in c++26"
7801# endif
7802# if __cpp_lib_transparent_operators != 201510L
7803# error "__cpp_lib_transparent_operators should have the value 201510L in c++26"
7804# endif
7805
7806# ifndef __cpp_lib_tuple_element_t
7807# error "__cpp_lib_tuple_element_t should be defined in c++26"
7808# endif
7809# if __cpp_lib_tuple_element_t != 201402L
7810# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26"
7811# endif
7812
7813# if !defined(_LIBCPP_VERSION)
7814# ifndef __cpp_lib_tuple_like
7815# error "__cpp_lib_tuple_like should be defined in c++26"
7816# endif
7817# if __cpp_lib_tuple_like != 202311L
7818# error "__cpp_lib_tuple_like should have the value 202311L in c++26"
7819# endif
7820# else // _LIBCPP_VERSION
7821# ifdef __cpp_lib_tuple_like
7822# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
7823# endif
7824# endif
7825
7826# ifndef __cpp_lib_tuples_by_type
7827# error "__cpp_lib_tuples_by_type should be defined in c++26"
7828# endif
7829# if __cpp_lib_tuples_by_type != 201304L
7830# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26"
7831# endif
7832
7833# ifndef __cpp_lib_type_identity
7834# error "__cpp_lib_type_identity should be defined in c++26"
7835# endif
7836# if __cpp_lib_type_identity != 201806L
7837# error "__cpp_lib_type_identity should have the value 201806L in c++26"
7838# endif
7839
7840# ifndef __cpp_lib_type_trait_variable_templates
7841# error "__cpp_lib_type_trait_variable_templates should be defined in c++26"
7842# endif
7843# if __cpp_lib_type_trait_variable_templates != 201510L
7844# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26"
7845# endif
7846
7847# ifndef __cpp_lib_uncaught_exceptions
7848# error "__cpp_lib_uncaught_exceptions should be defined in c++26"
7849# endif
7850# if __cpp_lib_uncaught_exceptions != 201411L
7851# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26"
7852# endif
7853
7854# ifndef __cpp_lib_unordered_map_try_emplace
7855# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26"
7856# endif
7857# if __cpp_lib_unordered_map_try_emplace != 201411L
7858# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26"
7859# endif
7860
7861# ifndef __cpp_lib_unreachable
7862# error "__cpp_lib_unreachable should be defined in c++26"
7863# endif
7864# if __cpp_lib_unreachable != 202202L
7865# error "__cpp_lib_unreachable should have the value 202202L in c++26"
7866# endif
7867
7868# ifndef __cpp_lib_unwrap_ref
7869# error "__cpp_lib_unwrap_ref should be defined in c++26"
7870# endif
7871# if __cpp_lib_unwrap_ref != 201811L
7872# error "__cpp_lib_unwrap_ref should have the value 201811L in c++26"
7873# endif
7874
7875# ifndef __cpp_lib_variant
7876# error "__cpp_lib_variant should be defined in c++26"
7877# endif
7878# if __cpp_lib_variant != 202102L
7879# error "__cpp_lib_variant should have the value 202102L in c++26"
7880# endif
7881
7882# ifndef __cpp_lib_void_t
7883# error "__cpp_lib_void_t should be defined in c++26"
7884# endif
7885# if __cpp_lib_void_t != 201411L
7886# error "__cpp_lib_void_t should have the value 201411L in c++26"
7887# endif
7888
7889# if !defined(_LIBCPP_VERSION)
7890# ifndef __cpp_lib_within_lifetime
7891# error "__cpp_lib_within_lifetime should be defined in c++26"
7892# endif
7893# if __cpp_lib_within_lifetime != 202306L
7894# error "__cpp_lib_within_lifetime should have the value 202306L in c++26"
7895# endif
7896# else // _LIBCPP_VERSION
7897# ifdef __cpp_lib_within_lifetime
7898# error "__cpp_lib_within_lifetime should not be defined because it is unimplemented in libc++!"
7899# endif
7900# endif
7901
7902#endif // TEST_STD_VER > 23
7903
7904

source code of libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp