16 Language support library [language.support]

16.3 Implementation properties [support.limits]

16.3.1 General [support.limits.general]

The headers <limits>, <climits>, and <cfloat> supply characteristics of implementation-dependent arithmetic types ([basic.fundamental]).
The header <version> supplies implementation-dependent information about the C++ standard library (e.g., version number and release date).
The macros in Table 35 are defined after inclusion of the header <version> or one of the corresponding headers specified in the table.
[Note
:
Future versions of this International Standard might replace the values of these macros with greater values.
end note
]
Table 35 — Standard library feature-test macros
Macro name
Value
Header(s)
__cpp_­lib_­addressof_­constexpr
201603L
<memory>
__cpp_­lib_­allocator_­traits_­is_­always_­equal
201411L
<memory> <scoped_­allocator> <string> <deque> <forward_­list> <list> <vector> <map> <set> <unordered_­map> <unordered_­set>
__cpp_­lib_­any
201606L
<any>
__cpp_­lib_­apply
201603L
<tuple>
__cpp_­lib_­array_­constexpr
201603L
<iterator> <array>
__cpp_­lib_­as_­const
201510L
<utility>
__cpp_­lib_­atomic_­is_­always_­lock_­free
201603L
<atomic>
__cpp_­lib_­atomic_­ref
201806L
<atomic>
__cpp_­lib_­bit_­cast
201806L
<bit>
__cpp_­lib_­bool_­constant
201505L
<type_­traits>
__cpp_­lib_­boyer_­moore_­searcher
201603L
<functional>
__cpp_­lib_­byte
201603L
<cstddef>
__cpp_­lib_­chrono
201611L
<chrono>
__cpp_­lib_­clamp
201603L
<algorithm>
__cpp_­lib_­complex_­udls
201309L
<complex>
__cpp_­lib_­concepts
201806L
<concepts>
__cpp_­lib_­constexpr_­swap_­algorithms
201806L
<algorithm>
__cpp_­lib_­enable_­shared_­from_­this
201603L
<memory>
__cpp_­lib_­exchange_­function
201304L
<utility>
__cpp_­lib_­execution
201603L
<execution>
__cpp_­lib_­filesystem
201703L
<filesystem>
__cpp_­lib_­gcd_­lcm
201606L
<numeric>
__cpp_­lib_­generic_­associative_­lookup
201304L
<map> <set>
__cpp_­lib_­hardware_­interference_­size
201703L
<new>
__cpp_­lib_­has_­unique_­object_­representations
201606L
<type_­traits>
__cpp_­lib_­hypot
201603L
<cmath>
__cpp_­lib_­incomplete_­container_­elements
201505L
<forward_­list> <list> <vector>
__cpp_­lib_­integer_­sequence
201304L
<utility>
__cpp_­lib_­integral_­constant_­callable
201304L
<type_­traits>
__cpp_­lib_­invoke
201411L
<functional>
__cpp_­lib_­is_­aggregate
201703L
<type_­traits>
__cpp_­lib_­is_­final
201402L
<type_­traits>
__cpp_­lib_­is_­invocable
201703L
<type_­traits>
__cpp_­lib_­is_­null_­pointer
201309L
<type_­traits>
__cpp_­lib_­is_­swappable
201603L
<type_­traits>
__cpp_­lib_­launder
201606L
<new>
__cpp_­lib_­list_­remove_­return_­type
201806L
<forward_­list> <list>
__cpp_­lib_­logical_­traits
201510L
<type_­traits>
__cpp_­lib_­make_­from_­tuple
201606L
<tuple>
__cpp_­lib_­make_­reverse_­iterator
201402L
<iterator>
__cpp_­lib_­make_­unique
201304L
<memory>
__cpp_­lib_­map_­try_­emplace
201411L
<map>
__cpp_­lib_­math_­special_­functions
201603L
<cmath>
__cpp_­lib_­memory_­resource
201603L
<memory_­resource>
__cpp_­lib_­node_­extract
201606L
<map> <set> <unordered_­map> <unordered_­set>
__cpp_­lib_­nonmember_­container_­access
201411L
<iterator> <array> <deque> <forward_­list> <list> <map> <regex> <set> <string> <unordered_­map> <unordered_­set> <vector>
__cpp_­lib_­not_­fn
201603L
<functional>
__cpp_­lib_­null_­iterators
201304L
<iterator>
__cpp_­lib_­optional
201606L
<optional>
__cpp_­lib_­parallel_­algorithm
201603L
<algorithm> <numeric>
__cpp_­lib_­quoted_­string_­io
201304L
<iomanip>
__cpp_­lib_­raw_­memory_­algorithms
201606L
<memory>
__cpp_­lib_­result_­of_­sfinae
201210L
<functional> <type_­traits>
__cpp_­lib_­robust_­nonmodifying_­seq_­ops
201304L
<algorithm>
__cpp_­lib_­sample
201603L
<algorithm>
__cpp_­lib_­scoped_­lock
201703L
<mutex>
__cpp_­lib_­shared_­mutex
201505L
<shared_­mutex>
__cpp_­lib_­shared_­ptr_­arrays
201611L
<memory>
__cpp_­lib_­shared_­ptr_­weak_­type
201606L
<memory>
__cpp_­lib_­shared_­timed_­mutex
201402L
<shared_­mutex>
__cpp_­lib_­string_­udls
201304L
<string>
__cpp_­lib_­string_­view
201606L
<string> <string_­view>
__cpp_­lib_­to_­chars
201611L
<utility>
__cpp_­lib_­transformation_­trait_­aliases
201304L
<type_­traits>
__cpp_­lib_­transparent_­operators
201510L
<memory> <functional>
__cpp_­lib_­tuple_­element_­t
201402L
<tuple>
__cpp_­lib_­tuples_­by_­type
201304L
<utility> <tuple>
__cpp_­lib_­type_­trait_­variable_­templates
201510L
<type_­traits>
__cpp_­lib_­uncaught_­exceptions
201411L
<exception>
__cpp_­lib_­unordered_­map_­try_­emplace
201411L
<unordered_­map>
__cpp_­lib_­variant
201606L
<variant>
__cpp_­lib_­void_­t
201411L
<type_­traits>