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