Go to the documentation of this file. 47 #pragma GCC system_header 51 #if !defined(__cpp_lib_incomplete_container_elements) 53 # define __glibcxx_incomplete_container_elements 201505L 54 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements) 55 # define __cpp_lib_incomplete_container_elements 201505L 59 #undef __glibcxx_want_incomplete_container_elements 61 #if !defined(__cpp_lib_uncaught_exceptions) 62 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L)) 63 # define __glibcxx_uncaught_exceptions 201411L 64 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions) 65 # define __cpp_lib_uncaught_exceptions 201411L 69 #undef __glibcxx_want_uncaught_exceptions 71 #if !defined(__cpp_lib_allocator_traits_is_always_equal) 72 # if (__cplusplus >= 201103L) 73 # define __glibcxx_allocator_traits_is_always_equal 201411L 74 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal) 75 # define __cpp_lib_allocator_traits_is_always_equal 201411L 79 #undef __glibcxx_want_allocator_traits_is_always_equal 81 #if !defined(__cpp_lib_is_null_pointer) 82 # if (__cplusplus >= 201103L) 83 # define __glibcxx_is_null_pointer 201309L 84 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer) 85 # define __cpp_lib_is_null_pointer 201309L 89 #undef __glibcxx_want_is_null_pointer 91 #if !defined(__cpp_lib_result_of_sfinae) 92 # if (__cplusplus >= 201103L) 93 # define __glibcxx_result_of_sfinae 201210L 94 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae) 95 # define __cpp_lib_result_of_sfinae 201210L 99 #undef __glibcxx_want_result_of_sfinae 101 #if !defined(__cpp_lib_shared_ptr_arrays) 102 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 103 # define __glibcxx_shared_ptr_arrays 201707L 104 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays) 105 # define __cpp_lib_shared_ptr_arrays 201707L 107 # elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED 108 # define __glibcxx_shared_ptr_arrays 201611L 109 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays) 110 # define __cpp_lib_shared_ptr_arrays 201611L 114 #undef __glibcxx_want_shared_ptr_arrays 116 #if !defined(__cpp_lib_is_swappable) 117 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) 118 # define __glibcxx_is_swappable 201603L 119 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable) 120 # define __cpp_lib_is_swappable 201603L 124 #undef __glibcxx_want_is_swappable 126 #if !defined(__cpp_lib_void_t) 127 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) 128 # define __glibcxx_void_t 201411L 129 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t) 130 # define __cpp_lib_void_t 201411L 134 #undef __glibcxx_want_void_t 136 #if !defined(__cpp_lib_enable_shared_from_this) 137 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED 138 # define __glibcxx_enable_shared_from_this 201603L 139 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this) 140 # define __cpp_lib_enable_shared_from_this 201603L 144 #undef __glibcxx_want_enable_shared_from_this 146 #if !defined(__cpp_lib_math_spec_funcs) 147 # if (__cplusplus >= 201103L) 148 # define __glibcxx_math_spec_funcs 201003L 149 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs) 150 # define __STDCPP_MATH_SPEC_FUNCS__ 201003L 154 #undef __glibcxx_want_math_spec_funcs 156 #if !defined(__cpp_lib_coroutine) 157 # if (__cplusplus >= 201402L) && (__cpp_impl_coroutine) 158 # define __glibcxx_coroutine 201902L 159 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine) 160 # define __cpp_lib_coroutine 201902L 164 #undef __glibcxx_want_coroutine 166 #if !defined(__cpp_lib_exchange_function) 167 # if (__cplusplus >= 201402L) 168 # define __glibcxx_exchange_function 201304L 169 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function) 170 # define __cpp_lib_exchange_function 201304L 174 #undef __glibcxx_want_exchange_function 176 #if !defined(__cpp_lib_integer_sequence) 177 # if (__cplusplus >= 201402L) 178 # define __glibcxx_integer_sequence 201304L 179 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence) 180 # define __cpp_lib_integer_sequence 201304L 184 #undef __glibcxx_want_integer_sequence 186 #if !defined(__cpp_lib_integral_constant_callable) 187 # if (__cplusplus >= 201402L) 188 # define __glibcxx_integral_constant_callable 201304L 189 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable) 190 # define __cpp_lib_integral_constant_callable 201304L 194 #undef __glibcxx_want_integral_constant_callable 196 #if !defined(__cpp_lib_is_final) 197 # if (__cplusplus >= 201402L) 198 # define __glibcxx_is_final 201402L 199 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final) 200 # define __cpp_lib_is_final 201402L 204 #undef __glibcxx_want_is_final 206 #if !defined(__cpp_lib_make_reverse_iterator) 207 # if (__cplusplus >= 201402L) 208 # define __glibcxx_make_reverse_iterator 201402L 209 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator) 210 # define __cpp_lib_make_reverse_iterator 201402L 214 #undef __glibcxx_want_make_reverse_iterator 216 #if !defined(__cpp_lib_null_iterators) 217 # if (__cplusplus >= 201402L) 218 # define __glibcxx_null_iterators 201304L 219 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators) 220 # define __cpp_lib_null_iterators 201304L 224 #undef __glibcxx_want_null_iterators 226 #if !defined(__cpp_lib_transformation_trait_aliases) 227 # if (__cplusplus >= 201402L) 228 # define __glibcxx_transformation_trait_aliases 201304L 229 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases) 230 # define __cpp_lib_transformation_trait_aliases 201304L 234 #undef __glibcxx_want_transformation_trait_aliases 236 #if !defined(__cpp_lib_transparent_operators) 237 # if (__cplusplus >= 201402L) 238 # define __glibcxx_transparent_operators 201510L 239 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators) 240 # define __cpp_lib_transparent_operators 201510L 244 #undef __glibcxx_want_transparent_operators 246 #if !defined(__cpp_lib_tuple_element_t) 247 # if (__cplusplus >= 201402L) 248 # define __glibcxx_tuple_element_t 201402L 249 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t) 250 # define __cpp_lib_tuple_element_t 201402L 254 #undef __glibcxx_want_tuple_element_t 256 #if !defined(__cpp_lib_tuples_by_type) 257 # if (__cplusplus >= 201402L) 258 # define __glibcxx_tuples_by_type 201304L 259 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type) 260 # define __cpp_lib_tuples_by_type 201304L 264 #undef __glibcxx_want_tuples_by_type 266 #if !defined(__cpp_lib_robust_nonmodifying_seq_ops) 267 # if (__cplusplus >= 201402L) 268 # define __glibcxx_robust_nonmodifying_seq_ops 201304L 269 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops) 270 # define __cpp_lib_robust_nonmodifying_seq_ops 201304L 274 #undef __glibcxx_want_robust_nonmodifying_seq_ops 276 #if !defined(__cpp_lib_to_chars) 277 # if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) 278 # define __glibcxx_to_chars 202306L 279 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) 280 # define __cpp_lib_to_chars 202306L 282 # elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) 283 # define __glibcxx_to_chars 201611L 284 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) 285 # define __cpp_lib_to_chars 201611L 289 #undef __glibcxx_want_to_chars 291 #if !defined(__cpp_lib_chrono_udls) 292 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 293 # define __glibcxx_chrono_udls 201304L 294 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls) 295 # define __cpp_lib_chrono_udls 201304L 299 #undef __glibcxx_want_chrono_udls 301 #if !defined(__cpp_lib_complex_udls) 302 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 303 # define __glibcxx_complex_udls 201309L 304 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls) 305 # define __cpp_lib_complex_udls 201309L 309 #undef __glibcxx_want_complex_udls 311 #if !defined(__cpp_lib_generic_associative_lookup) 312 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 313 # define __glibcxx_generic_associative_lookup 201304L 314 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup) 315 # define __cpp_lib_generic_associative_lookup 201304L 319 #undef __glibcxx_want_generic_associative_lookup 321 #if !defined(__cpp_lib_make_unique) 322 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 323 # define __glibcxx_make_unique 201304L 324 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique) 325 # define __cpp_lib_make_unique 201304L 329 #undef __glibcxx_want_make_unique 331 #if !defined(__cpp_lib_quoted_string_io) 332 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 333 # define __glibcxx_quoted_string_io 201304L 334 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io) 335 # define __cpp_lib_quoted_string_io 201304L 339 #undef __glibcxx_want_quoted_string_io 341 #if !defined(__cpp_lib_shared_timed_mutex) 342 # if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 343 # define __glibcxx_shared_timed_mutex 201402L 344 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex) 345 # define __cpp_lib_shared_timed_mutex 201402L 349 #undef __glibcxx_want_shared_timed_mutex 351 #if !defined(__cpp_lib_string_udls) 352 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 353 # define __glibcxx_string_udls 201304L 354 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls) 355 # define __cpp_lib_string_udls 201304L 359 #undef __glibcxx_want_string_udls 361 #if !defined(__cpp_lib_addressof_constexpr) 362 # if (__cplusplus >= 201703L) 363 # define __glibcxx_addressof_constexpr 201603L 364 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr) 365 # define __cpp_lib_addressof_constexpr 201603L 369 #undef __glibcxx_want_addressof_constexpr 371 #if !defined(__cpp_lib_any) 372 # if (__cplusplus >= 201703L) 373 # define __glibcxx_any 201606L 374 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_any) 375 # define __cpp_lib_any 201606L 379 #undef __glibcxx_want_any 381 #if !defined(__cpp_lib_apply) 382 # if (__cplusplus >= 201703L) 383 # define __glibcxx_apply 201603L 384 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply) 385 # define __cpp_lib_apply 201603L 389 #undef __glibcxx_want_apply 391 #if !defined(__cpp_lib_as_const) 392 # if (__cplusplus >= 201703L) 393 # define __glibcxx_as_const 201510L 394 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const) 395 # define __cpp_lib_as_const 201510L 399 #undef __glibcxx_want_as_const 401 #if !defined(__cpp_lib_atomic_is_always_lock_free) 402 # if (__cplusplus >= 201703L) 403 # define __glibcxx_atomic_is_always_lock_free 201603L 404 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free) 405 # define __cpp_lib_atomic_is_always_lock_free 201603L 409 #undef __glibcxx_want_atomic_is_always_lock_free 411 #if !defined(__cpp_lib_bool_constant) 412 # if (__cplusplus >= 201703L) 413 # define __glibcxx_bool_constant 201505L 414 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant) 415 # define __cpp_lib_bool_constant 201505L 419 #undef __glibcxx_want_bool_constant 421 #if !defined(__cpp_lib_byte) 422 # if (__cplusplus >= 201703L) 423 # define __glibcxx_byte 201603L 424 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte) 425 # define __cpp_lib_byte 201603L 429 #undef __glibcxx_want_byte 431 #if !defined(__cpp_lib_has_unique_object_representations) 432 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)) 433 # define __glibcxx_has_unique_object_representations 201606L 434 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations) 435 # define __cpp_lib_has_unique_object_representations 201606L 439 #undef __glibcxx_want_has_unique_object_representations 441 #if !defined(__cpp_lib_hardware_interference_size) 442 # if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE)) 443 # define __glibcxx_hardware_interference_size 201703L 444 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size) 445 # define __cpp_lib_hardware_interference_size 201703L 449 #undef __glibcxx_want_hardware_interference_size 451 #if !defined(__cpp_lib_invoke) 452 # if (__cplusplus >= 201703L) 453 # define __glibcxx_invoke 201411L 454 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke) 455 # define __cpp_lib_invoke 201411L 459 #undef __glibcxx_want_invoke 461 #if !defined(__cpp_lib_is_aggregate) 462 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE)) 463 # define __glibcxx_is_aggregate 201703L 464 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate) 465 # define __cpp_lib_is_aggregate 201703L 469 #undef __glibcxx_want_is_aggregate 471 #if !defined(__cpp_lib_is_invocable) 472 # if (__cplusplus >= 201703L) 473 # define __glibcxx_is_invocable 201703L 474 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable) 475 # define __cpp_lib_is_invocable 201703L 479 #undef __glibcxx_want_is_invocable 481 #if !defined(__cpp_lib_launder) 482 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER)) 483 # define __glibcxx_launder 201606L 484 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder) 485 # define __cpp_lib_launder 201606L 489 #undef __glibcxx_want_launder 491 #if !defined(__cpp_lib_logical_traits) 492 # if (__cplusplus >= 201703L) 493 # define __glibcxx_logical_traits 201510L 494 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits) 495 # define __cpp_lib_logical_traits 201510L 499 #undef __glibcxx_want_logical_traits 501 #if !defined(__cpp_lib_make_from_tuple) 502 # if (__cplusplus >= 201703L) 503 # define __glibcxx_make_from_tuple 201606L 504 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple) 505 # define __cpp_lib_make_from_tuple 201606L 509 #undef __glibcxx_want_make_from_tuple 511 #if !defined(__cpp_lib_not_fn) 512 # if (__cplusplus >= 201703L) 513 # define __glibcxx_not_fn 201603L 514 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn) 515 # define __cpp_lib_not_fn 201603L 519 #undef __glibcxx_want_not_fn 521 #if !defined(__cpp_lib_type_trait_variable_templates) 522 # if (__cplusplus >= 201703L) 523 # define __glibcxx_type_trait_variable_templates 201510L 524 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates) 525 # define __cpp_lib_type_trait_variable_templates 201510L 529 #undef __glibcxx_want_type_trait_variable_templates 531 #if !defined(__cpp_lib_variant) 532 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L) 533 # define __glibcxx_variant 202106L 534 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) 535 # define __cpp_lib_variant 202106L 537 # elif (__cplusplus >= 201703L) 538 # define __glibcxx_variant 202102L 539 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) 540 # define __cpp_lib_variant 202102L 544 #undef __glibcxx_want_variant 546 #if !defined(__cpp_lib_lcm) 547 # if (__cplusplus >= 201703L) 548 # define __glibcxx_lcm 201606L 549 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm) 550 # define __cpp_lib_lcm 201606L 554 #undef __glibcxx_want_lcm 556 #if !defined(__cpp_lib_gcd) 557 # if (__cplusplus >= 201703L) 558 # define __glibcxx_gcd 201606L 559 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd) 560 # define __cpp_lib_gcd 201606L 564 #undef __glibcxx_want_gcd 566 #if !defined(__cpp_lib_gcd_lcm) 567 # if (__cplusplus >= 201703L) 568 # define __glibcxx_gcd_lcm 201606L 569 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm) 570 # define __cpp_lib_gcd_lcm 201606L 574 #undef __glibcxx_want_gcd_lcm 576 #if !defined(__cpp_lib_raw_memory_algorithms) 577 # if (__cplusplus >= 201703L) 578 # define __glibcxx_raw_memory_algorithms 201606L 579 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms) 580 # define __cpp_lib_raw_memory_algorithms 201606L 584 #undef __glibcxx_want_raw_memory_algorithms 586 #if !defined(__cpp_lib_array_constexpr) 587 # if (__cplusplus >= 202002L) 588 # define __glibcxx_array_constexpr 201811L 589 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) 590 # define __cpp_lib_array_constexpr 201811L 592 # elif (__cplusplus >= 201703L) 593 # define __glibcxx_array_constexpr 201803L 594 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) 595 # define __cpp_lib_array_constexpr 201803L 599 #undef __glibcxx_want_array_constexpr 601 #if !defined(__cpp_lib_nonmember_container_access) 602 # if (__cplusplus >= 201703L) 603 # define __glibcxx_nonmember_container_access 201411L 604 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access) 605 # define __cpp_lib_nonmember_container_access 201411L 609 #undef __glibcxx_want_nonmember_container_access 611 #if !defined(__cpp_lib_clamp) 612 # if (__cplusplus >= 201703L) 613 # define __glibcxx_clamp 201603L 614 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp) 615 # define __cpp_lib_clamp 201603L 619 #undef __glibcxx_want_clamp 621 #if !defined(__cpp_lib_sample) 622 # if (__cplusplus >= 201703L) 623 # define __glibcxx_sample 201603L 624 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample) 625 # define __cpp_lib_sample 201603L 629 #undef __glibcxx_want_sample 631 #if !defined(__cpp_lib_boyer_moore_searcher) 632 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 633 # define __glibcxx_boyer_moore_searcher 201603L 634 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher) 635 # define __cpp_lib_boyer_moore_searcher 201603L 639 #undef __glibcxx_want_boyer_moore_searcher 641 #if !defined(__cpp_lib_chrono) 642 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 643 # define __glibcxx_chrono 201907L 644 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) 645 # define __cpp_lib_chrono 201907L 647 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 648 # define __glibcxx_chrono 201611L 649 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) 650 # define __cpp_lib_chrono 201611L 654 #undef __glibcxx_want_chrono 656 #if !defined(__cpp_lib_execution) 657 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 658 # define __glibcxx_execution 201902L 659 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution) 660 # define __cpp_lib_execution 201902L 664 #undef __glibcxx_want_execution 666 #if !defined(__cpp_lib_filesystem) 667 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 668 # define __glibcxx_filesystem 201703L 669 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem) 670 # define __cpp_lib_filesystem 201703L 674 #undef __glibcxx_want_filesystem 676 #if !defined(__cpp_lib_hypot) 677 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 678 # define __glibcxx_hypot 201603L 679 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot) 680 # define __cpp_lib_hypot 201603L 684 #undef __glibcxx_want_hypot 686 #if !defined(__cpp_lib_map_try_emplace) 687 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 688 # define __glibcxx_map_try_emplace 201411L 689 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace) 690 # define __cpp_lib_map_try_emplace 201411L 694 #undef __glibcxx_want_map_try_emplace 696 #if !defined(__cpp_lib_math_special_functions) 697 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 698 # define __glibcxx_math_special_functions 201603L 699 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions) 700 # define __cpp_lib_math_special_functions 201603L 704 #undef __glibcxx_want_math_special_functions 706 #if !defined(__cpp_lib_memory_resource) 707 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 708 # define __glibcxx_memory_resource 201603L 709 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) 710 # define __cpp_lib_memory_resource 201603L 712 # elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 713 # define __glibcxx_memory_resource 1L 714 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) 715 # define __cpp_lib_memory_resource 1L 719 #undef __glibcxx_want_memory_resource 721 #if !defined(__cpp_lib_node_extract) 722 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 723 # define __glibcxx_node_extract 201606L 724 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract) 725 # define __cpp_lib_node_extract 201606L 729 #undef __glibcxx_want_node_extract 731 #if !defined(__cpp_lib_parallel_algorithm) 732 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 733 # define __glibcxx_parallel_algorithm 201603L 734 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm) 735 # define __cpp_lib_parallel_algorithm 201603L 739 #undef __glibcxx_want_parallel_algorithm 741 #if !defined(__cpp_lib_scoped_lock) 742 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 743 # define __glibcxx_scoped_lock 201703L 744 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock) 745 # define __cpp_lib_scoped_lock 201703L 749 #undef __glibcxx_want_scoped_lock 751 #if !defined(__cpp_lib_shared_mutex) 752 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 753 # define __glibcxx_shared_mutex 201505L 754 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex) 755 # define __cpp_lib_shared_mutex 201505L 759 #undef __glibcxx_want_shared_mutex 761 #if !defined(__cpp_lib_shared_ptr_weak_type) 762 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 763 # define __glibcxx_shared_ptr_weak_type 201606L 764 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type) 765 # define __cpp_lib_shared_ptr_weak_type 201606L 769 #undef __glibcxx_want_shared_ptr_weak_type 771 #if !defined(__cpp_lib_string_view) 772 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 773 # define __glibcxx_string_view 201803L 774 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view) 775 # define __cpp_lib_string_view 201803L 779 #undef __glibcxx_want_string_view 781 #if !defined(__cpp_lib_unordered_map_try_emplace) 782 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 783 # define __glibcxx_unordered_map_try_emplace 201411L 784 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace) 785 # define __cpp_lib_unordered_map_try_emplace 201411L 789 #undef __glibcxx_want_unordered_map_try_emplace 791 #if !defined(__cpp_lib_assume_aligned) 792 # if (__cplusplus >= 202002L) 793 # define __glibcxx_assume_aligned 201811L 794 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned) 795 # define __cpp_lib_assume_aligned 201811L 799 #undef __glibcxx_want_assume_aligned 801 #if !defined(__cpp_lib_atomic_flag_test) 802 # if (__cplusplus >= 202002L) 803 # define __glibcxx_atomic_flag_test 201907L 804 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test) 805 # define __cpp_lib_atomic_flag_test 201907L 809 #undef __glibcxx_want_atomic_flag_test 811 #if !defined(__cpp_lib_atomic_float) 812 # if (__cplusplus >= 202002L) 813 # define __glibcxx_atomic_float 201711L 814 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float) 815 # define __cpp_lib_atomic_float 201711L 819 #undef __glibcxx_want_atomic_float 821 #if !defined(__cpp_lib_atomic_lock_free_type_aliases) 822 # if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2) 823 # define __glibcxx_atomic_lock_free_type_aliases 201907L 824 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases) 825 # define __cpp_lib_atomic_lock_free_type_aliases 201907L 829 #undef __glibcxx_want_atomic_lock_free_type_aliases 831 #if !defined(__cpp_lib_atomic_ref) 832 # if (__cplusplus >= 202002L) 833 # define __glibcxx_atomic_ref 201806L 834 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref) 835 # define __cpp_lib_atomic_ref 201806L 839 #undef __glibcxx_want_atomic_ref 841 #if !defined(__cpp_lib_atomic_value_initialization) 842 # if (__cplusplus >= 202002L) 843 # define __glibcxx_atomic_value_initialization 201911L 844 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization) 845 # define __cpp_lib_atomic_value_initialization 201911L 849 #undef __glibcxx_want_atomic_value_initialization 851 #if !defined(__cpp_lib_bind_front) 852 # if (__cplusplus >= 202002L) 853 # define __glibcxx_bind_front 201907L 854 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front) 855 # define __cpp_lib_bind_front 201907L 859 #undef __glibcxx_want_bind_front 861 #if !defined(__cpp_lib_bind_back) 862 # if (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter) 863 # define __glibcxx_bind_back 202202L 864 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back) 865 # define __cpp_lib_bind_back 202202L 869 #undef __glibcxx_want_bind_back 871 #if !defined(__cpp_lib_starts_ends_with) 872 # if (__cplusplus >= 202002L) 873 # define __glibcxx_starts_ends_with 201711L 874 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with) 875 # define __cpp_lib_starts_ends_with 201711L 879 #undef __glibcxx_want_starts_ends_with 881 #if !defined(__cpp_lib_bit_cast) 882 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast)) 883 # define __glibcxx_bit_cast 201806L 884 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast) 885 # define __cpp_lib_bit_cast 201806L 889 #undef __glibcxx_want_bit_cast 891 #if !defined(__cpp_lib_bitops) 892 # if (__cplusplus >= 202002L) 893 # define __glibcxx_bitops 201907L 894 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops) 895 # define __cpp_lib_bitops 201907L 899 #undef __glibcxx_want_bitops 901 #if !defined(__cpp_lib_bounded_array_traits) 902 # if (__cplusplus >= 202002L) 903 # define __glibcxx_bounded_array_traits 201902L 904 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits) 905 # define __cpp_lib_bounded_array_traits 201902L 909 #undef __glibcxx_want_bounded_array_traits 911 #if !defined(__cpp_lib_concepts) 912 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L) 913 # define __glibcxx_concepts 202002L 914 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts) 915 # define __cpp_lib_concepts 202002L 919 #undef __glibcxx_want_concepts 921 #if !defined(__cpp_lib_optional) 922 # if (__cplusplus >= 202100L) && (__glibcxx_concepts) 923 # define __glibcxx_optional 202110L 924 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 925 # define __cpp_lib_optional 202110L 927 # elif (__cplusplus >= 202002L) 928 # define __glibcxx_optional 202106L 929 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 930 # define __cpp_lib_optional 202106L 932 # elif (__cplusplus >= 201703L) 933 # define __glibcxx_optional 201606L 934 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 935 # define __cpp_lib_optional 201606L 939 #undef __glibcxx_want_optional 941 #if !defined(__cpp_lib_destroying_delete) 942 # if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete) 943 # define __glibcxx_destroying_delete 201806L 944 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete) 945 # define __cpp_lib_destroying_delete 201806L 949 #undef __glibcxx_want_destroying_delete 951 #if !defined(__cpp_lib_constexpr_string_view) 952 # if (__cplusplus >= 202002L) 953 # define __glibcxx_constexpr_string_view 201811L 954 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view) 955 # define __cpp_lib_constexpr_string_view 201811L 959 #undef __glibcxx_want_constexpr_string_view 961 #if !defined(__cpp_lib_endian) 962 # if (__cplusplus >= 202002L) 963 # define __glibcxx_endian 201907L 964 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian) 965 # define __cpp_lib_endian 201907L 969 #undef __glibcxx_want_endian 971 #if !defined(__cpp_lib_int_pow2) 972 # if (__cplusplus >= 202002L) 973 # define __glibcxx_int_pow2 202002L 974 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2) 975 # define __cpp_lib_int_pow2 202002L 979 #undef __glibcxx_want_int_pow2 981 #if !defined(__cpp_lib_integer_comparison_functions) 982 # if (__cplusplus >= 202002L) 983 # define __glibcxx_integer_comparison_functions 202002L 984 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions) 985 # define __cpp_lib_integer_comparison_functions 202002L 989 #undef __glibcxx_want_integer_comparison_functions 991 #if !defined(__cpp_lib_is_constant_evaluated) 992 # if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)) 993 # define __glibcxx_is_constant_evaluated 201811L 994 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated) 995 # define __cpp_lib_is_constant_evaluated 201811L 999 #undef __glibcxx_want_is_constant_evaluated 1001 #if !defined(__cpp_lib_constexpr_char_traits) 1002 # if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated)) 1003 # define __glibcxx_constexpr_char_traits 201811L 1004 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits) 1005 # define __cpp_lib_constexpr_char_traits 201811L 1007 # elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) 1008 # define __glibcxx_constexpr_char_traits 201611L 1009 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits) 1010 # define __cpp_lib_constexpr_char_traits 201611L 1014 #undef __glibcxx_want_constexpr_char_traits 1016 #if !defined(__cpp_lib_is_layout_compatible) 1017 # if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member)) 1018 # define __glibcxx_is_layout_compatible 201907L 1019 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible) 1020 # define __cpp_lib_is_layout_compatible 201907L 1024 #undef __glibcxx_want_is_layout_compatible 1026 #if !defined(__cpp_lib_is_nothrow_convertible) 1027 # if (__cplusplus >= 202002L) 1028 # define __glibcxx_is_nothrow_convertible 201806L 1029 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible) 1030 # define __cpp_lib_is_nothrow_convertible 201806L 1034 #undef __glibcxx_want_is_nothrow_convertible 1036 #if !defined(__cpp_lib_is_pointer_interconvertible) 1037 # if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class)) 1038 # define __glibcxx_is_pointer_interconvertible 201907L 1039 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible) 1040 # define __cpp_lib_is_pointer_interconvertible 201907L 1044 #undef __glibcxx_want_is_pointer_interconvertible 1046 #if !defined(__cpp_lib_math_constants) 1047 # if (__cplusplus >= 202002L) 1048 # define __glibcxx_math_constants 201907L 1049 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants) 1050 # define __cpp_lib_math_constants 201907L 1054 #undef __glibcxx_want_math_constants 1056 #if !defined(__cpp_lib_make_obj_using_allocator) 1057 # if (__cplusplus >= 202002L) && (__cpp_concepts) 1058 # define __glibcxx_make_obj_using_allocator 201811L 1059 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator) 1060 # define __cpp_lib_make_obj_using_allocator 201811L 1064 #undef __glibcxx_want_make_obj_using_allocator 1066 #if !defined(__cpp_lib_remove_cvref) 1067 # if (__cplusplus >= 202002L) 1068 # define __glibcxx_remove_cvref 201711L 1069 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref) 1070 # define __cpp_lib_remove_cvref 201711L 1074 #undef __glibcxx_want_remove_cvref 1076 #if !defined(__cpp_lib_source_location) 1077 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location)) 1078 # define __glibcxx_source_location 201907L 1079 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location) 1080 # define __cpp_lib_source_location 201907L 1084 #undef __glibcxx_want_source_location 1086 #if !defined(__cpp_lib_span) 1087 # if (__cplusplus > 202302L) && (__glibcxx_concepts) 1088 # define __glibcxx_span 202311L 1089 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) 1090 # define __cpp_lib_span 202311L 1092 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts) 1093 # define __glibcxx_span 202002L 1094 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) 1095 # define __cpp_lib_span 202002L 1099 #undef __glibcxx_want_span 1101 #if !defined(__cpp_lib_ssize) 1102 # if (__cplusplus >= 202002L) 1103 # define __glibcxx_ssize 201902L 1104 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize) 1105 # define __cpp_lib_ssize 201902L 1109 #undef __glibcxx_want_ssize 1111 #if !defined(__cpp_lib_three_way_comparison) 1112 # if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts) 1113 # define __glibcxx_three_way_comparison 201907L 1114 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison) 1115 # define __cpp_lib_three_way_comparison 201907L 1119 #undef __glibcxx_want_three_way_comparison 1121 #if !defined(__cpp_lib_to_address) 1122 # if (__cplusplus >= 202002L) 1123 # define __glibcxx_to_address 201711L 1124 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address) 1125 # define __cpp_lib_to_address 201711L 1129 #undef __glibcxx_want_to_address 1131 #if !defined(__cpp_lib_to_array) 1132 # if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L) 1133 # define __glibcxx_to_array 201907L 1134 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array) 1135 # define __cpp_lib_to_array 201907L 1139 #undef __glibcxx_want_to_array 1141 #if !defined(__cpp_lib_type_identity) 1142 # if (__cplusplus >= 202002L) 1143 # define __glibcxx_type_identity 201806L 1144 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity) 1145 # define __cpp_lib_type_identity 201806L 1149 #undef __glibcxx_want_type_identity 1151 #if !defined(__cpp_lib_unwrap_ref) 1152 # if (__cplusplus >= 202002L) 1153 # define __glibcxx_unwrap_ref 201811L 1154 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref) 1155 # define __cpp_lib_unwrap_ref 201811L 1159 #undef __glibcxx_want_unwrap_ref 1161 #if !defined(__cpp_lib_constexpr_iterator) 1162 # if (__cplusplus >= 202002L) 1163 # define __glibcxx_constexpr_iterator 201811L 1164 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator) 1165 # define __cpp_lib_constexpr_iterator 201811L 1169 #undef __glibcxx_want_constexpr_iterator 1171 #if !defined(__cpp_lib_interpolate) 1172 # if (__cplusplus >= 202002L) 1173 # define __glibcxx_interpolate 201902L 1174 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate) 1175 # define __cpp_lib_interpolate 201902L 1179 #undef __glibcxx_want_interpolate 1181 #if !defined(__cpp_lib_constexpr_utility) 1182 # if (__cplusplus >= 202002L) 1183 # define __glibcxx_constexpr_utility 201811L 1184 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility) 1185 # define __cpp_lib_constexpr_utility 201811L 1189 #undef __glibcxx_want_constexpr_utility 1191 #if !defined(__cpp_lib_shift) 1192 # if (__cplusplus >= 202002L) 1193 # define __glibcxx_shift 201806L 1194 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift) 1195 # define __cpp_lib_shift 201806L 1199 #undef __glibcxx_want_shift 1201 #if !defined(__cpp_lib_ranges) 1202 # if (__cplusplus >= 202100L) && (__glibcxx_concepts) 1203 # define __glibcxx_ranges 202211L 1204 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) 1205 # define __cpp_lib_ranges 202211L 1207 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts) 1208 # define __glibcxx_ranges 202110L 1209 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) 1210 # define __cpp_lib_ranges 202110L 1214 #undef __glibcxx_want_ranges 1216 #if !defined(__cpp_lib_constexpr_numeric) 1217 # if (__cplusplus >= 202002L) 1218 # define __glibcxx_constexpr_numeric 201911L 1219 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric) 1220 # define __cpp_lib_constexpr_numeric 201911L 1224 #undef __glibcxx_want_constexpr_numeric 1226 #if !defined(__cpp_lib_constexpr_functional) 1227 # if (__cplusplus >= 202002L) 1228 # define __glibcxx_constexpr_functional 201907L 1229 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional) 1230 # define __cpp_lib_constexpr_functional 201907L 1234 #undef __glibcxx_want_constexpr_functional 1236 #if !defined(__cpp_lib_constexpr_algorithms) 1237 # if (__cplusplus >= 202002L) 1238 # define __glibcxx_constexpr_algorithms 201806L 1239 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms) 1240 # define __cpp_lib_constexpr_algorithms 201806L 1244 #undef __glibcxx_want_constexpr_algorithms 1246 #if !defined(__cpp_lib_constexpr_tuple) 1247 # if (__cplusplus >= 202002L) 1248 # define __glibcxx_constexpr_tuple 201811L 1249 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple) 1250 # define __cpp_lib_constexpr_tuple 201811L 1254 #undef __glibcxx_want_constexpr_tuple 1256 #if !defined(__cpp_lib_constexpr_memory) 1257 # if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc) 1258 # define __glibcxx_constexpr_memory 202202L 1259 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory) 1260 # define __cpp_lib_constexpr_memory 202202L 1262 # elif (__cplusplus >= 202002L) 1263 # define __glibcxx_constexpr_memory 201811L 1264 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory) 1265 # define __cpp_lib_constexpr_memory 201811L 1269 #undef __glibcxx_want_constexpr_memory 1271 #if !defined(__cpp_lib_atomic_shared_ptr) 1272 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1273 # define __glibcxx_atomic_shared_ptr 201711L 1274 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr) 1275 # define __cpp_lib_atomic_shared_ptr 201711L 1279 #undef __glibcxx_want_atomic_shared_ptr 1281 #if !defined(__cpp_lib_atomic_wait) 1282 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 1283 # define __glibcxx_atomic_wait 201907L 1284 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) 1285 # define __cpp_lib_atomic_wait 201907L 1287 # elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX)) 1288 # define __glibcxx_atomic_wait 201907L 1289 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) 1290 # define __cpp_lib_atomic_wait 201907L 1294 #undef __glibcxx_want_atomic_wait 1296 #if !defined(__cpp_lib_barrier) 1297 # if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait) 1298 # define __glibcxx_barrier 201907L 1299 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier) 1300 # define __cpp_lib_barrier 201907L 1304 #undef __glibcxx_want_barrier 1306 #if !defined(__cpp_lib_format) 1307 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1308 # define __glibcxx_format 202110L 1309 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format) 1310 # define __cpp_lib_format 202110L 1314 #undef __glibcxx_want_format 1316 #if !defined(__cpp_lib_format_uchar) 1317 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1318 # define __glibcxx_format_uchar 202311L 1319 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar) 1320 # define __cpp_lib_format_uchar 202311L 1324 #undef __glibcxx_want_format_uchar 1326 #if !defined(__cpp_lib_constexpr_complex) 1327 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1328 # define __glibcxx_constexpr_complex 201711L 1329 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex) 1330 # define __cpp_lib_constexpr_complex 201711L 1334 #undef __glibcxx_want_constexpr_complex 1336 #if !defined(__cpp_lib_constexpr_dynamic_alloc) 1337 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1338 # define __glibcxx_constexpr_dynamic_alloc 201907L 1339 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc) 1340 # define __cpp_lib_constexpr_dynamic_alloc 201907L 1344 #undef __glibcxx_want_constexpr_dynamic_alloc 1346 #if !defined(__cpp_lib_constexpr_string) 1347 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated)) 1348 # define __glibcxx_constexpr_string 201907L 1349 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1350 # define __cpp_lib_constexpr_string 201907L 1352 # elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated)) 1353 # define __glibcxx_constexpr_string 201811L 1354 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1355 # define __cpp_lib_constexpr_string 201811L 1357 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) 1358 # define __glibcxx_constexpr_string 201611L 1359 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1360 # define __cpp_lib_constexpr_string 201611L 1364 #undef __glibcxx_want_constexpr_string 1366 #if !defined(__cpp_lib_constexpr_vector) 1367 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1368 # define __glibcxx_constexpr_vector 201907L 1369 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector) 1370 # define __cpp_lib_constexpr_vector 201907L 1374 #undef __glibcxx_want_constexpr_vector 1376 #if !defined(__cpp_lib_erase_if) 1377 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1378 # define __glibcxx_erase_if 202002L 1379 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if) 1380 # define __cpp_lib_erase_if 202002L 1384 #undef __glibcxx_want_erase_if 1386 #if !defined(__cpp_lib_generic_unordered_lookup) 1387 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1388 # define __glibcxx_generic_unordered_lookup 201811L 1389 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup) 1390 # define __cpp_lib_generic_unordered_lookup 201811L 1394 #undef __glibcxx_want_generic_unordered_lookup 1396 #if !defined(__cpp_lib_jthread) 1397 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 1398 # define __glibcxx_jthread 201911L 1399 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread) 1400 # define __cpp_lib_jthread 201911L 1404 #undef __glibcxx_want_jthread 1406 #if !defined(__cpp_lib_latch) 1407 # if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait) 1408 # define __glibcxx_latch 201907L 1409 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch) 1410 # define __cpp_lib_latch 201907L 1414 #undef __glibcxx_want_latch 1416 #if !defined(__cpp_lib_list_remove_return_type) 1417 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1418 # define __glibcxx_list_remove_return_type 201806L 1419 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type) 1420 # define __cpp_lib_list_remove_return_type 201806L 1424 #undef __glibcxx_want_list_remove_return_type 1426 #if !defined(__cpp_lib_polymorphic_allocator) 1427 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1428 # define __glibcxx_polymorphic_allocator 201902L 1429 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator) 1430 # define __cpp_lib_polymorphic_allocator 201902L 1434 #undef __glibcxx_want_polymorphic_allocator 1436 #if !defined(__cpp_lib_move_iterator_concept) 1437 # if (__cplusplus >= 202002L) && (__glibcxx_concepts) 1438 # define __glibcxx_move_iterator_concept 202207L 1439 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept) 1440 # define __cpp_lib_move_iterator_concept 202207L 1444 #undef __glibcxx_want_move_iterator_concept 1446 #if !defined(__cpp_lib_semaphore) 1447 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE) 1448 # define __glibcxx_semaphore 201907L 1449 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore) 1450 # define __cpp_lib_semaphore 201907L 1454 #undef __glibcxx_want_semaphore 1456 #if !defined(__cpp_lib_smart_ptr_for_overwrite) 1457 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1458 # define __glibcxx_smart_ptr_for_overwrite 202002L 1459 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite) 1460 # define __cpp_lib_smart_ptr_for_overwrite 202002L 1464 #undef __glibcxx_want_smart_ptr_for_overwrite 1466 #if !defined(__cpp_lib_syncbuf) 1467 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED 1468 # define __glibcxx_syncbuf 201803L 1469 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf) 1470 # define __cpp_lib_syncbuf 201803L 1474 #undef __glibcxx_want_syncbuf 1476 #if !defined(__cpp_lib_byteswap) 1477 # if (__cplusplus >= 202100L) 1478 # define __glibcxx_byteswap 202110L 1479 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap) 1480 # define __cpp_lib_byteswap 202110L 1484 #undef __glibcxx_want_byteswap 1486 #if !defined(__cpp_lib_constexpr_charconv) 1487 # if (__cplusplus >= 202100L) 1488 # define __glibcxx_constexpr_charconv 202207L 1489 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv) 1490 # define __cpp_lib_constexpr_charconv 202207L 1494 #undef __glibcxx_want_constexpr_charconv 1496 #if !defined(__cpp_lib_constexpr_typeinfo) 1497 # if (__cplusplus >= 202100L) 1498 # define __glibcxx_constexpr_typeinfo 202106L 1499 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo) 1500 # define __cpp_lib_constexpr_typeinfo 202106L 1504 #undef __glibcxx_want_constexpr_typeinfo 1506 #if !defined(__cpp_lib_expected) 1507 # if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L) 1508 # define __glibcxx_expected 202211L 1509 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected) 1510 # define __cpp_lib_expected 202211L 1514 #undef __glibcxx_want_expected 1516 #if !defined(__cpp_lib_freestanding_algorithm) 1517 # if (__cplusplus >= 202100L) 1518 # define __glibcxx_freestanding_algorithm 202311L 1519 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm) 1520 # define __cpp_lib_freestanding_algorithm 202311L 1524 #undef __glibcxx_want_freestanding_algorithm 1526 #if !defined(__cpp_lib_freestanding_array) 1527 # if (__cplusplus >= 202100L) 1528 # define __glibcxx_freestanding_array 202311L 1529 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array) 1530 # define __cpp_lib_freestanding_array 202311L 1534 #undef __glibcxx_want_freestanding_array 1536 #if !defined(__cpp_lib_freestanding_cstring) 1537 # if (__cplusplus >= 202100L) 1538 # define __glibcxx_freestanding_cstring 202311L 1539 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring) 1540 # define __cpp_lib_freestanding_cstring 202311L 1544 #undef __glibcxx_want_freestanding_cstring 1546 #if !defined(__cpp_lib_freestanding_expected) 1547 # if (__cplusplus >= 202100L) && (__cpp_lib_expected) 1548 # define __glibcxx_freestanding_expected 202311L 1549 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected) 1550 # define __cpp_lib_freestanding_expected 202311L 1554 #undef __glibcxx_want_freestanding_expected 1556 #if !defined(__cpp_lib_freestanding_optional) 1557 # if (__cplusplus >= 202100L) 1558 # define __glibcxx_freestanding_optional 202311L 1559 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional) 1560 # define __cpp_lib_freestanding_optional 202311L 1564 #undef __glibcxx_want_freestanding_optional 1566 #if !defined(__cpp_lib_freestanding_string_view) 1567 # if (__cplusplus >= 202100L) 1568 # define __glibcxx_freestanding_string_view 202311L 1569 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view) 1570 # define __cpp_lib_freestanding_string_view 202311L 1574 #undef __glibcxx_want_freestanding_string_view 1576 #if !defined(__cpp_lib_freestanding_variant) 1577 # if (__cplusplus >= 202100L) 1578 # define __glibcxx_freestanding_variant 202311L 1579 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant) 1580 # define __cpp_lib_freestanding_variant 202311L 1584 #undef __glibcxx_want_freestanding_variant 1586 #if !defined(__cpp_lib_invoke_r) 1587 # if (__cplusplus >= 202100L) 1588 # define __glibcxx_invoke_r 202106L 1589 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r) 1590 # define __cpp_lib_invoke_r 202106L 1594 #undef __glibcxx_want_invoke_r 1596 #if !defined(__cpp_lib_is_scoped_enum) 1597 # if (__cplusplus >= 202100L) 1598 # define __glibcxx_is_scoped_enum 202011L 1599 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum) 1600 # define __cpp_lib_is_scoped_enum 202011L 1604 #undef __glibcxx_want_is_scoped_enum 1606 #if !defined(__cpp_lib_reference_from_temporary) 1607 # if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary)) 1608 # define __glibcxx_reference_from_temporary 202202L 1609 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary) 1610 # define __cpp_lib_reference_from_temporary 202202L 1614 #undef __glibcxx_want_reference_from_temporary 1616 #if !defined(__cpp_lib_ranges_to_container) 1617 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1618 # define __glibcxx_ranges_to_container 202202L 1619 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container) 1620 # define __cpp_lib_ranges_to_container 202202L 1624 #undef __glibcxx_want_ranges_to_container 1626 #if !defined(__cpp_lib_ranges_zip) 1627 # if (__cplusplus >= 202100L) 1628 # define __glibcxx_ranges_zip 202110L 1629 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip) 1630 # define __cpp_lib_ranges_zip 202110L 1634 #undef __glibcxx_want_ranges_zip 1636 #if !defined(__cpp_lib_ranges_chunk) 1637 # if (__cplusplus >= 202100L) 1638 # define __glibcxx_ranges_chunk 202202L 1639 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk) 1640 # define __cpp_lib_ranges_chunk 202202L 1644 #undef __glibcxx_want_ranges_chunk 1646 #if !defined(__cpp_lib_ranges_slide) 1647 # if (__cplusplus >= 202100L) 1648 # define __glibcxx_ranges_slide 202202L 1649 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide) 1650 # define __cpp_lib_ranges_slide 202202L 1654 #undef __glibcxx_want_ranges_slide 1656 #if !defined(__cpp_lib_ranges_chunk_by) 1657 # if (__cplusplus >= 202100L) 1658 # define __glibcxx_ranges_chunk_by 202202L 1659 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by) 1660 # define __cpp_lib_ranges_chunk_by 202202L 1664 #undef __glibcxx_want_ranges_chunk_by 1666 #if !defined(__cpp_lib_ranges_join_with) 1667 # if (__cplusplus >= 202100L) 1668 # define __glibcxx_ranges_join_with 202202L 1669 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with) 1670 # define __cpp_lib_ranges_join_with 202202L 1674 #undef __glibcxx_want_ranges_join_with 1676 #if !defined(__cpp_lib_ranges_repeat) 1677 # if (__cplusplus >= 202100L) 1678 # define __glibcxx_ranges_repeat 202207L 1679 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat) 1680 # define __cpp_lib_ranges_repeat 202207L 1684 #undef __glibcxx_want_ranges_repeat 1686 #if !defined(__cpp_lib_ranges_stride) 1687 # if (__cplusplus >= 202100L) 1688 # define __glibcxx_ranges_stride 202207L 1689 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride) 1690 # define __cpp_lib_ranges_stride 202207L 1694 #undef __glibcxx_want_ranges_stride 1696 #if !defined(__cpp_lib_ranges_cartesian_product) 1697 # if (__cplusplus >= 202100L) 1698 # define __glibcxx_ranges_cartesian_product 202207L 1699 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product) 1700 # define __cpp_lib_ranges_cartesian_product 202207L 1704 #undef __glibcxx_want_ranges_cartesian_product 1706 #if !defined(__cpp_lib_ranges_as_rvalue) 1707 # if (__cplusplus >= 202100L) 1708 # define __glibcxx_ranges_as_rvalue 202207L 1709 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue) 1710 # define __cpp_lib_ranges_as_rvalue 202207L 1714 #undef __glibcxx_want_ranges_as_rvalue 1716 #if !defined(__cpp_lib_ranges_as_const) 1717 # if (__cplusplus >= 202100L) 1718 # define __glibcxx_ranges_as_const 202311L 1719 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const) 1720 # define __cpp_lib_ranges_as_const 202311L 1724 #undef __glibcxx_want_ranges_as_const 1726 #if !defined(__cpp_lib_ranges_enumerate) 1727 # if (__cplusplus >= 202100L) 1728 # define __glibcxx_ranges_enumerate 202302L 1729 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate) 1730 # define __cpp_lib_ranges_enumerate 202302L 1734 #undef __glibcxx_want_ranges_enumerate 1736 #if !defined(__cpp_lib_ranges_fold) 1737 # if (__cplusplus >= 202100L) 1738 # define __glibcxx_ranges_fold 202207L 1739 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold) 1740 # define __cpp_lib_ranges_fold 202207L 1744 #undef __glibcxx_want_ranges_fold 1746 #if !defined(__cpp_lib_ranges_contains) 1747 # if (__cplusplus >= 202100L) 1748 # define __glibcxx_ranges_contains 202207L 1749 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains) 1750 # define __cpp_lib_ranges_contains 202207L 1754 #undef __glibcxx_want_ranges_contains 1756 #if !defined(__cpp_lib_ranges_iota) 1757 # if (__cplusplus >= 202100L) 1758 # define __glibcxx_ranges_iota 202202L 1759 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota) 1760 # define __cpp_lib_ranges_iota 202202L 1764 #undef __glibcxx_want_ranges_iota 1766 #if !defined(__cpp_lib_ranges_find_last) 1767 # if (__cplusplus >= 202100L) 1768 # define __glibcxx_ranges_find_last 202207L 1769 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last) 1770 # define __cpp_lib_ranges_find_last 202207L 1774 #undef __glibcxx_want_ranges_find_last 1776 #if !defined(__cpp_lib_constexpr_bitset) 1777 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc) 1778 # define __glibcxx_constexpr_bitset 202202L 1779 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset) 1780 # define __cpp_lib_constexpr_bitset 202202L 1784 #undef __glibcxx_want_constexpr_bitset 1786 #if !defined(__cpp_lib_stdatomic_h) 1787 # if (__cplusplus >= 202100L) 1788 # define __glibcxx_stdatomic_h 202011L 1789 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h) 1790 # define __cpp_lib_stdatomic_h 202011L 1794 #undef __glibcxx_want_stdatomic_h 1796 #if !defined(__cpp_lib_adaptor_iterator_pair_constructor) 1797 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1798 # define __glibcxx_adaptor_iterator_pair_constructor 202106L 1799 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor) 1800 # define __cpp_lib_adaptor_iterator_pair_constructor 202106L 1804 #undef __glibcxx_want_adaptor_iterator_pair_constructor 1806 #if !defined(__cpp_lib_formatters) 1807 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1808 # define __glibcxx_formatters 202302L 1809 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters) 1810 # define __cpp_lib_formatters 202302L 1814 #undef __glibcxx_want_formatters 1816 #if !defined(__cpp_lib_forward_like) 1817 # if (__cplusplus >= 202100L) 1818 # define __glibcxx_forward_like 202207L 1819 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like) 1820 # define __cpp_lib_forward_like 202207L 1824 #undef __glibcxx_want_forward_like 1826 #if !defined(__cpp_lib_generator) 1827 # if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation) 1828 # define __glibcxx_generator 202207L 1829 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator) 1830 # define __cpp_lib_generator 202207L 1834 #undef __glibcxx_want_generator 1836 #if !defined(__cpp_lib_ios_noreplace) 1837 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1838 # define __glibcxx_ios_noreplace 202207L 1839 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace) 1840 # define __cpp_lib_ios_noreplace 202207L 1844 #undef __glibcxx_want_ios_noreplace 1846 #if !defined(__cpp_lib_move_only_function) 1847 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1848 # define __glibcxx_move_only_function 202110L 1849 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function) 1850 # define __cpp_lib_move_only_function 202110L 1854 #undef __glibcxx_want_move_only_function 1856 #if !defined(__cpp_lib_out_ptr) 1857 # if (__cplusplus >= 202100L) 1858 # define __glibcxx_out_ptr 202311L 1859 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr) 1860 # define __cpp_lib_out_ptr 202311L 1864 #undef __glibcxx_want_out_ptr 1866 #if !defined(__cpp_lib_print) 1867 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1868 # define __glibcxx_print 202211L 1869 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print) 1870 # define __cpp_lib_print 202211L 1874 #undef __glibcxx_want_print 1876 #if !defined(__cpp_lib_spanstream) 1877 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span) 1878 # define __glibcxx_spanstream 202106L 1879 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream) 1880 # define __cpp_lib_spanstream 202106L 1884 #undef __glibcxx_want_spanstream 1886 #if !defined(__cpp_lib_stacktrace) 1887 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE) 1888 # define __glibcxx_stacktrace 202011L 1889 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace) 1890 # define __cpp_lib_stacktrace 202011L 1894 #undef __glibcxx_want_stacktrace 1896 #if !defined(__cpp_lib_string_contains) 1897 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1898 # define __glibcxx_string_contains 202011L 1899 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains) 1900 # define __cpp_lib_string_contains 202011L 1904 #undef __glibcxx_want_string_contains 1906 #if !defined(__cpp_lib_string_resize_and_overwrite) 1907 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1908 # define __glibcxx_string_resize_and_overwrite 202110L 1909 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite) 1910 # define __cpp_lib_string_resize_and_overwrite 202110L 1914 #undef __glibcxx_want_string_resize_and_overwrite 1916 #if !defined(__cpp_lib_to_underlying) 1917 # if (__cplusplus >= 202100L) 1918 # define __glibcxx_to_underlying 202102L 1919 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying) 1920 # define __cpp_lib_to_underlying 202102L 1924 #undef __glibcxx_want_to_underlying 1926 #if !defined(__cpp_lib_tuple_like) 1927 # if (__cplusplus >= 202100L) 1928 # define __glibcxx_tuple_like 202207L 1929 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) 1930 # define __cpp_lib_tuple_like 202207L 1934 #undef __glibcxx_want_tuple_like 1936 #if !defined(__cpp_lib_unreachable) 1937 # if (__cplusplus >= 202100L) 1938 # define __glibcxx_unreachable 202202L 1939 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable) 1940 # define __cpp_lib_unreachable 202202L 1944 #undef __glibcxx_want_unreachable 1946 #if !defined(__cpp_lib_fstream_native_handle) 1947 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED 1948 # define __glibcxx_fstream_native_handle 202306L 1949 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle) 1950 # define __cpp_lib_fstream_native_handle 202306L 1954 #undef __glibcxx_want_fstream_native_handle 1956 #if !defined(__cpp_lib_ratio) 1957 # if (__cplusplus > 202302L) 1958 # define __glibcxx_ratio 202306L 1959 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio) 1960 # define __cpp_lib_ratio 202306L 1964 #undef __glibcxx_want_ratio 1966 #if !defined(__cpp_lib_reference_wrapper) 1967 # if (__cplusplus > 202302L) 1968 # define __glibcxx_reference_wrapper 202403L 1969 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper) 1970 # define __cpp_lib_reference_wrapper 202403L 1974 #undef __glibcxx_want_reference_wrapper 1976 #if !defined(__cpp_lib_saturation_arithmetic) 1977 # if (__cplusplus > 202302L) 1978 # define __glibcxx_saturation_arithmetic 202311L 1979 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic) 1980 # define __cpp_lib_saturation_arithmetic 202311L 1984 #undef __glibcxx_want_saturation_arithmetic 1986 #if !defined(__cpp_lib_text_encoding) 1987 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L) 1988 # define __glibcxx_text_encoding 202306L 1989 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding) 1990 # define __cpp_lib_text_encoding 202306L 1994 #undef __glibcxx_want_text_encoding 1996 #if !defined(__cpp_lib_to_string) 1997 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars) 1998 # define __glibcxx_to_string 202306L 1999 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string) 2000 # define __cpp_lib_to_string 202306L 2004 #undef __glibcxx_want_to_string 2006 #undef __glibcxx_want_all