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