|
516 | 516 | about the C++ standard library
|
517 | 517 | (e.g., version number and release date).
|
518 | 518 |
|
| 519 | +\pnum |
| 520 | +The macros in \tref{support.ft} are defined |
| 521 | +after inclusion of the header \tcode{<version>} or |
| 522 | +one of the corresponding headers specified in the table. |
| 523 | +\begin{note} |
| 524 | +Future versions of this International Standard might replace |
| 525 | +the values of these macros with greater values. |
| 526 | +\end{note} |
| 527 | + |
| 528 | +\begin{LongTable}{Standard library feature-test macros} |
| 529 | +{tab:support.ft}{llx{.3\hsize}} |
| 530 | +\\ \topline |
| 531 | +\lhdr{Macro name} & \chdr{Value} & \rhdr{Header(s)} \\ \capsep |
| 532 | +\endfirsthead |
| 533 | +\continuedcaption \\ |
| 534 | +\hline |
| 535 | +\lhdr{Macro name} & \chdr{Value} & \rhdr{Header(s)} \\ \capsep |
| 536 | +\endhead |
| 537 | +\defnlibxname{cpp_lib_addressof_constexpr} & \tcode{201603L} & |
| 538 | + \tcode{<memory>} \\ \rowsep |
| 539 | +\defnlibxname{cpp_lib_allocator_traits_is_always_equal} & \tcode{201411L} & |
| 540 | + \tcode{<memory>} \tcode{<scoped_allocator>} \tcode{<string>} |
| 541 | + \tcode{<deque>} \tcode{<forward_list>} \tcode{<list>} \tcode{<vector>} |
| 542 | + \tcode{<map>} \tcode{<set>} \tcode{<unordered_map>} |
| 543 | + \tcode{<unordered_set>} \\ \rowsep |
| 544 | +\defnlibxname{cpp_lib_any} & \tcode{201606L} & |
| 545 | + \tcode{<any>} \\ \rowsep |
| 546 | +\defnlibxname{cpp_lib_apply} & \tcode{201603L} & |
| 547 | + \tcode{<tuple>} \\ \rowsep |
| 548 | +\defnlibxname{cpp_lib_array_constexpr} & \tcode{201603L} & |
| 549 | + \tcode{<iterator>} \tcode{<array>} \\ \rowsep |
| 550 | +\defnlibxname{cpp_lib_as_const} & \tcode{201510L} & |
| 551 | + \tcode{<utility>} \\ \rowsep |
| 552 | +\defnlibxname{cpp_lib_atomic_is_always_lock_free} & \tcode{201603L} & |
| 553 | + \tcode{<atomic>} \\ \rowsep |
| 554 | +\defnlibxname{cpp_lib_bool_constant} & \tcode{201505L} & |
| 555 | + \tcode{<type_traits>} \\ \rowsep |
| 556 | +\defnlibxname{cpp_lib_boyer_moore_searcher} & \tcode{201603L} & |
| 557 | + \tcode{<functional>} \\ \rowsep |
| 558 | +\defnlibxname{cpp_lib_byte} & \tcode{201603L} & |
| 559 | + \tcode{<cstddef>} \\ \rowsep |
| 560 | +\defnlibxname{cpp_lib_chrono} & \tcode{201611L} & |
| 561 | + \tcode{<chrono>} \\ \rowsep |
| 562 | +\defnlibxname{cpp_lib_clamp} & \tcode{201603L} & |
| 563 | + \tcode{<algorithm>} \\ \rowsep |
| 564 | +\defnlibxname{cpp_lib_complex_udls} & \tcode{201309L} & |
| 565 | + \tcode{<complex>} \\ \rowsep |
| 566 | +\defnlibxname{cpp_lib_enable_shared_from_this} & \tcode{201603L} & |
| 567 | + \tcode{<memory>} \\ \rowsep |
| 568 | +\defnlibxname{cpp_lib_exchange_function} & \tcode{201304L} & |
| 569 | + \tcode{<utility>} \\ \rowsep |
| 570 | +\defnlibxname{cpp_lib_execution} & \tcode{201603L} & |
| 571 | + \tcode{<execution>} \\ \rowsep |
| 572 | +\defnlibxname{cpp_lib_filesystem} & \tcode{201703L} & |
| 573 | + \tcode{<filesystem>} \\ \rowsep |
| 574 | +\defnlibxname{cpp_lib_gcd_lcm} & \tcode{201606L} & |
| 575 | + \tcode{<numeric>} \\ \rowsep |
| 576 | +\defnlibxname{cpp_lib_generic_associative_lookup} & \tcode{201304L} & |
| 577 | + \tcode{<map>} \tcode{<set>} \\ \rowsep |
| 578 | +\defnlibxname{cpp_lib_hardware_interference_size} & \tcode{201703L} & |
| 579 | + \tcode{<new>} \\ \rowsep |
| 580 | +\defnlibxname{cpp_lib_has_unique_object_representations} & \tcode{201606L} & |
| 581 | + \tcode{<type_traits>} \\ \rowsep |
| 582 | +\defnlibxname{cpp_lib_hypot} & \tcode{201603L} & |
| 583 | + \tcode{<cmath>} \\ \rowsep |
| 584 | +\defnlibxname{cpp_lib_incomplete_container_elements} & \tcode{201505L} & |
| 585 | + \tcode{<forwardlist>} \tcode{<list>} \tcode{<vector>} \\ \rowsep |
| 586 | +\defnlibxname{cpp_lib_integer_sequence} & \tcode{201304L} & |
| 587 | + \tcode{<utility>} \\ \rowsep |
| 588 | +\defnlibxname{cpp_lib_integral_constant_callable} & \tcode{201304L} & |
| 589 | + \tcode{<type_traits>} \\ \rowsep |
| 590 | +\defnlibxname{cpp_lib_invoke} & \tcode{201411L} & |
| 591 | + \tcode{<functional>} \\ \rowsep |
| 592 | +\defnlibxname{cpp_lib_is_aggregate} & \tcode{201703L} & |
| 593 | + \tcode{<type_traits>} \\ \rowsep |
| 594 | +\defnlibxname{cpp_lib_is_final} & \tcode{201402L} & |
| 595 | + \tcode{<type_traits>} \\ \rowsep |
| 596 | +\defnlibxname{cpp_lib_is_invocable} & \tcode{201703L} & |
| 597 | + \tcode{<type_traits>} \\ \rowsep |
| 598 | +\defnlibxname{cpp_lib_is_null_pointer} & \tcode{201309L} & |
| 599 | + \tcode{<type_traits>} \\ \rowsep |
| 600 | +\defnlibxname{cpp_lib_is_swappable} & \tcode{201603L} & |
| 601 | + \tcode{<type_traits>} \\ \rowsep |
| 602 | +\defnlibxname{cpp_lib_launder} & \tcode{201606L} & |
| 603 | + \tcode{<new>} \\ \rowsep |
| 604 | +\defnlibxname{cpp_lib_logical_traits} & \tcode{201510L} & |
| 605 | + \tcode{<type_traits>} \\ \rowsep |
| 606 | +\defnlibxname{cpp_lib_make_from_tuple} & \tcode{201606L} & |
| 607 | + \tcode{<tuple>} \\ \rowsep |
| 608 | +\defnlibxname{cpp_lib_make_reverse_iterator} & \tcode{201402L} & |
| 609 | + \tcode{<iterator>} \\ \rowsep |
| 610 | +\defnlibxname{cpp_lib_make_unique} & \tcode{201304L} & |
| 611 | + \tcode{<memory>} \\ \rowsep |
| 612 | +\defnlibxname{cpp_lib_map_try_emplace} & \tcode{201411L} & |
| 613 | + \tcode{<map>} \\ \rowsep |
| 614 | +\defnlibxname{cpp_lib_math_special_functions} & \tcode{201603L} & |
| 615 | + \tcode{<cmath>} \\ \rowsep |
| 616 | +\defnlibxname{cpp_lib_memory_resource} & \tcode{201603L} & |
| 617 | + \tcode{<memory_resource>} \\ \rowsep |
| 618 | +\defnlibxname{cpp_lib_node_extract} & \tcode{201606L} & |
| 619 | + \tcode{<map>} \tcode{<set>} \tcode{<unordered_map>} |
| 620 | + \tcode{<unordered_set>} \\ \rowsep |
| 621 | +\defnlibxname{cpp_lib_nonmember_container_access} & \tcode{201411L} & |
| 622 | + \tcode{<iterator>} \tcode{<array>} \tcode{<deque>} \tcode{<forward_list>} |
| 623 | + \tcode{<list>} \tcode{<map>} \tcode{<regex>} \tcode{<set>} \tcode{<string>} |
| 624 | + \tcode{<unordered_map>} \tcode{<unordered_set>} \tcode{<vector>} \\ \rowsep |
| 625 | +\defnlibxname{cpp_lib_not_fn} & \tcode{201603L} & |
| 626 | + \tcode{<functional>} \\ \rowsep |
| 627 | +\defnlibxname{cpp_lib_null_iterators} & \tcode{201304L} & |
| 628 | + \tcode{<iterator>} \\ \rowsep |
| 629 | +\defnlibxname{cpp_lib_optional} & \tcode{201606L} & |
| 630 | + \tcode{<optional>} \\ \rowsep |
| 631 | +\defnlibxname{cpp_lib_parallel_algorithm} & \tcode{201603L} & |
| 632 | + \tcode{<algorithm>} \tcode{<numeric>} \\ \rowsep |
| 633 | +\defnlibxname{cpp_lib_quoted_string_io} & \tcode{201304L} & |
| 634 | + \tcode{<iomanip>} \\ \rowsep |
| 635 | +\defnlibxname{cpp_lib_raw_memory_algorithms} & \tcode{201606L} & |
| 636 | + \tcode{<memory>} \\ \rowsep |
| 637 | +\defnlibxname{cpp_lib_result_of_sfinae} & \tcode{201210L} & |
| 638 | + \tcode{<functional>} \tcode{<type_traits>} \\ \rowsep |
| 639 | +\defnlibxname{cpp_lib_robust_nonmodifying_seq_ops} & \tcode{201304L} & |
| 640 | + \tcode{<algorithm>} \\ \rowsep |
| 641 | +\defnlibxname{cpp_lib_sample} & \tcode{201603L} & |
| 642 | + \tcode{<algorithm>} \\ \rowsep |
| 643 | +\defnlibxname{cpp_lib_scoped_lock} & \tcode{201703L} & |
| 644 | + \tcode{<mutex>} \\ \rowsep |
| 645 | +\defnlibxname{cpp_lib_shared_mutex} & \tcode{201505L} & |
| 646 | + \tcode{<shared_mutex>} \\ \rowsep |
| 647 | +\defnlibxname{cpp_lib_shared_ptr_arrays} & \tcode{201611L} & |
| 648 | + \tcode{<memory>} \\ \rowsep |
| 649 | +\defnlibxname{cpp_lib_shared_ptr_weak_type} & \tcode{201606L} & |
| 650 | + \tcode{<memory>} \\ \rowsep |
| 651 | +\defnlibxname{cpp_lib_shared_timed_mutex} & \tcode{201402L} & |
| 652 | + \tcode{<shared_mutex>} \\ \rowsep |
| 653 | +\defnlibxname{cpp_lib_string_udls} & \tcode{201304L} & |
| 654 | + \tcode{<string>} \\ \rowsep |
| 655 | +\defnlibxname{cpp_lib_string_view} & \tcode{201606L} & |
| 656 | + \tcode{<string>} \tcode{<string_view>} \\ \rowsep |
| 657 | +\defnlibxname{cpp_lib_to_chars} & \tcode{201611L} & |
| 658 | + \tcode{<utility>} \\ \rowsep |
| 659 | +\defnlibxname{cpp_lib_transformation_trait_aliases} & \tcode{201304L} & |
| 660 | + \tcode{<type_traits>} \\ \rowsep |
| 661 | +\defnlibxname{cpp_lib_transparent_operators} & \tcode{201510L} & |
| 662 | + \tcode{<memory>} \tcode{<functional>} \\ \rowsep |
| 663 | +\defnlibxname{cpp_lib_tuple_element_t} & \tcode{201402L} & |
| 664 | + \tcode{<tuple>} \\ \rowsep |
| 665 | +\defnlibxname{cpp_lib_tuples_by_type} & \tcode{201304L} & |
| 666 | + \tcode{<utility>} \tcode{<tuple>} \\ \rowsep |
| 667 | +\defnlibxname{cpp_lib_type_trait_variable_templates} & \tcode{201510L} & |
| 668 | + \tcode{<type_traits>} \\ \rowsep |
| 669 | +\defnlibxname{cpp_lib_uncaught_exceptions} & \tcode{201411L} & |
| 670 | + \tcode{<exception>} \\ \rowsep |
| 671 | +\defnlibxname{cpp_lib_unordered_map_try_emplace} & \tcode{201411L} & |
| 672 | + \tcode{<unordered_map>} \\ \rowsep |
| 673 | +\defnlibxname{cpp_lib_variant} & \tcode{201606L} & |
| 674 | + \tcode{<variant>} \\ \rowsep |
| 675 | +\defnlibxname{cpp_lib_void_t} & \tcode{201411L} & |
| 676 | + \tcode{<type_traits>} \\ \rowsep |
| 677 | +\end{LongTable} |
| 678 | + |
519 | 679 | \rSec2[limits.syn]{Header \tcode{<limits>} synopsis}
|
520 | 680 | \indexhdr{limits}%
|
521 | 681 | \indextext{\idxcode{numeric_limits}}%
|
|
0 commit comments