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