From Jason Turner

[support.limits]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmppy7njrih/{from.md → to.md} +292 -128
tmp/tmppy7njrih/{from.md → to.md} RENAMED
@@ -13,217 +13,362 @@ about the C++ standard library (e.g., version number and release date).
13
 
14
  Each of the macros defined in `<version>` is also defined after
15
  inclusion of any member of the set of library headers indicated in the
16
  corresponding comment in this synopsis.
17
 
18
- [*Note 1*: Future revisions of C++ might replace the values of these
19
- macros with greater values. — *end note*]
20
 
21
  ``` cpp
22
- #define __cpp_lib_addressof_constexpr 201603L // also in <memory>
 
 
 
23
  #define __cpp_lib_algorithm_iterator_requirements 202207L
24
  // also in <algorithm>, <numeric>, <memory>
 
25
  #define __cpp_lib_allocate_at_least 202302L // also in <memory>
26
  #define __cpp_lib_allocator_traits_is_always_equal 201411L
27
- // also in <memory>, <scoped_allocator>, <string>, <deque>, <forward_list>, <list>, <vector>,
28
- // <map>, <set>, <unordered_map>, <unordered_set>
29
- #define __cpp_lib_adaptor_iterator_pair_constructor 202106L // also in <stack>, <queue>
30
  #define __cpp_lib_any 201606L // also in <any>
31
- #define __cpp_lib_apply 201603L // also in <tuple>
32
  #define __cpp_lib_array_constexpr 201811L // also in <iterator>, <array>
33
- #define __cpp_lib_as_const 201510L // also in <utility>
34
  #define __cpp_lib_associative_heterogeneous_erasure 202110L
35
  // also in <map>, <set>, <unordered_map>, <unordered_set>
36
- #define __cpp_lib_assume_aligned 201811L // also in <memory>
37
- #define __cpp_lib_atomic_flag_test 201907L // also in <atomic>
38
- #define __cpp_lib_atomic_float 201711L // also in <atomic>
39
- #define __cpp_lib_atomic_is_always_lock_free 201603L // also in <atomic>
 
 
40
  #define __cpp_lib_atomic_lock_free_type_aliases 201907L // also in <atomic>
41
- #define __cpp_lib_atomic_ref 201806L // also in <atomic>
 
 
42
  #define __cpp_lib_atomic_shared_ptr 201711L // also in <memory>
43
- #define __cpp_lib_atomic_value_initialization 201911L // also in <atomic>, <memory>
44
- #define __cpp_lib_atomic_wait 201907L // also in <atomic>
45
  #define __cpp_lib_barrier 202302L // also in <barrier>
46
- #define __cpp_lib_bind_back 202202L // also in <functional>
47
- #define __cpp_lib_bind_front 201907L // also in <functional>
48
- #define __cpp_lib_bit_cast 201806L // also in <bit>
49
- #define __cpp_lib_bitops 201907L // also in <bit>
50
- #define __cpp_lib_bool_constant 201505L // also in <type_traits>
51
- #define __cpp_lib_bounded_array_traits 201902L // also in <type_traits>
 
52
  #define __cpp_lib_boyer_moore_searcher 201603L // also in <functional>
53
- #define __cpp_lib_byte 201603L // also in <cstddef>
54
- #define __cpp_lib_byteswap 202110L // also in <bit>
55
  #define __cpp_lib_char8_t 201907L
56
- // also in <atomic>, <filesystem>, <istream>, <limits>, <locale>, <ostream>, <string>, <string_view>
57
- #define __cpp_lib_chrono 201907L // also in <chrono>
 
58
  #define __cpp_lib_chrono_udls 201304L // also in <chrono>
59
  #define __cpp_lib_clamp 201603L // also in <algorithm>
60
- #define __cpp_lib_common_reference 202302L // also in <type_traits>
61
- #define __cpp_lib_common_reference_wrapper 202302L // also in <functional>
62
  #define __cpp_lib_complex_udls 201309L // also in <complex>
63
- #define __cpp_lib_concepts 202207L // also in <concepts>, <compare>
64
- #define __cpp_lib_constexpr_algorithms 201806L // also in <algorithm>, <utility>
 
 
 
65
  #define __cpp_lib_constexpr_bitset 202207L // also in <bitset>
66
- #define __cpp_lib_constexpr_charconv 202207L // also in <charconv>
67
- #define __cpp_lib_constexpr_cmath 202202L // also in <cmath>, <cstdlib>
68
- #define __cpp_lib_constexpr_complex 201711L // also in <complex>
 
69
  #define __cpp_lib_constexpr_dynamic_alloc 201907L // also in <memory>
70
- #define __cpp_lib_constexpr_functional 201907L // also in <functional>
71
- #define __cpp_lib_constexpr_iterator 201811L // also in <iterator>
72
- #define __cpp_lib_constexpr_memory 202202L // also in <memory>
 
 
 
 
 
 
 
 
 
73
  #define __cpp_lib_constexpr_numeric 201911L // also in <numeric>
 
 
 
74
  #define __cpp_lib_constexpr_string 201907L // also in <string>
75
  #define __cpp_lib_constexpr_string_view 201811L // also in <string_view>
76
- #define __cpp_lib_constexpr_tuple 201811L // also in <tuple>
77
- #define __cpp_lib_constexpr_typeinfo 202106L // also in <typeinfo>
78
- #define __cpp_lib_constexpr_utility 201811L // also in <utility>
 
 
79
  #define __cpp_lib_constexpr_vector 201907L // also in <vector>
 
 
80
  #define __cpp_lib_containers_ranges 202202L
81
  // also in <vector>, <list>, <forward_list>, <map>, <set>, <unordered_map>, <unordered_set>,
82
  // <deque>, <queue>, <stack>, <string>
83
- #define __cpp_lib_coroutine 201902L // also in <coroutine>
84
- #define __cpp_lib_destroying_delete 201806L // also in <new>
 
 
 
 
 
85
  #define __cpp_lib_enable_shared_from_this 201603L // also in <memory>
86
- #define __cpp_lib_endian 201907L // also in <bit>
87
  #define __cpp_lib_erase_if 202002L
88
  // also in <string>, <deque>, <forward_list>, <list>, <vector>, <map>, <set>, <unordered_map>,
89
  // <unordered_set>
90
- #define __cpp_lib_exchange_function 201304L // also in <utility>
 
91
  #define __cpp_lib_execution 201902L // also in <execution>
92
  #define __cpp_lib_expected 202211L // also in <expected>
93
  #define __cpp_lib_filesystem 201703L // also in <filesystem>
94
  #define __cpp_lib_flat_map 202207L // also in <flat_map>
95
  #define __cpp_lib_flat_set 202207L // also in <flat_set>
96
- #define __cpp_lib_format 202207L // also in <format>
 
97
  #define __cpp_lib_format_ranges 202207L // also in <format>
 
98
  #define __cpp_lib_formatters 202302L // also in <stacktrace>, <thread>
99
- #define __cpp_lib_forward_like 202207L // also in <utility>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  #define __cpp_lib_gcd_lcm 201606L // also in <numeric>
101
  #define __cpp_lib_generator 202207L // also in <generator>
102
  #define __cpp_lib_generic_associative_lookup 201304L // also in <map>, <set>
103
  #define __cpp_lib_generic_unordered_lookup 201811L
104
  // also in <unordered_map>, <unordered_set>
105
- #define __cpp_lib_hardware_interference_size 201703L // also in <new>
106
- #define __cpp_lib_has_unique_object_representations 201606L // also in <type_traits>
 
 
107
  #define __cpp_lib_hypot 201603L // also in <cmath>
108
  #define __cpp_lib_incomplete_container_elements 201505L
109
  // also in <forward_list>, <list>, <vector>
110
- #define __cpp_lib_int_pow2 202002L // also in <bit>
 
 
111
  #define __cpp_lib_integer_comparison_functions 202002L // also in <utility>
112
- #define __cpp_lib_integer_sequence 201304L // also in <utility>
113
- #define __cpp_lib_integral_constant_callable 201304L // also in <type_traits>
114
  #define __cpp_lib_interpolate 201902L // also in <cmath>, <numeric>
115
- #define __cpp_lib_invoke 201411L // also in <functional>
116
- #define __cpp_lib_invoke_r 202106L // also in <functional>
117
  #define __cpp_lib_ios_noreplace 202207L // also in <ios>
118
- #define __cpp_lib_is_aggregate 201703L // also in <type_traits>
119
- #define __cpp_lib_is_constant_evaluated 201811L // also in <type_traits>
120
- #define __cpp_lib_is_final 201402L // also in <type_traits>
121
- #define __cpp_lib_is_implicit_lifetime 202302L // also in <type_traits>
122
- #define __cpp_lib_is_invocable 201703L // also in <type_traits>
123
- #define __cpp_lib_is_layout_compatible 201907L // also in <type_traits>
124
- #define __cpp_lib_is_nothrow_convertible 201806L // also in <type_traits>
125
- #define __cpp_lib_is_null_pointer 201309L // also in <type_traits>
126
- #define __cpp_lib_is_pointer_interconvertible 201907L // also in <type_traits>
127
- #define __cpp_lib_is_scoped_enum 202011L // also in <type_traits>
128
- #define __cpp_lib_is_swappable 201603L // also in <type_traits>
 
 
 
129
  #define __cpp_lib_jthread 201911L // also in <stop_token>, <thread>
130
  #define __cpp_lib_latch 201907L // also in <latch>
131
- #define __cpp_lib_launder 201606L // also in <new>
 
132
  #define __cpp_lib_list_remove_return_type 201806L // also in <forward_list>, <list>
133
- #define __cpp_lib_logical_traits 201510L // also in <type_traits>
134
- #define __cpp_lib_make_from_tuple 201606L // also in <tuple>
135
- #define __cpp_lib_make_reverse_iterator 201402L // also in <iterator>
136
  #define __cpp_lib_make_unique 201304L // also in <memory>
137
  #define __cpp_lib_map_try_emplace 201411L // also in <map>
138
  #define __cpp_lib_math_constants 201907L // also in <numbers>
139
  #define __cpp_lib_math_special_functions 201603L // also in <cmath>
140
- #define __cpp_lib_mdspan 202207L // also in <mdspan>
141
  #define __cpp_lib_memory_resource 201603L // also in <memory_resource>
142
- #define __cpp_lib_modules 202207L
143
- #define __cpp_lib_move_iterator_concept 202207L // also in <iterator>
144
  #define __cpp_lib_move_only_function 202110L // also in <functional>
145
  #define __cpp_lib_node_extract 201606L
146
  // also in <map>, <set>, <unordered_map>, <unordered_set>
147
  #define __cpp_lib_nonmember_container_access 201411L
148
- // also in <array>, <deque>, <forward_list>, <iterator>, <list>, <map>, <regex>, <set>, <string>,
149
- // <unordered_map>, <unordered_set>, <vector>
150
- #define __cpp_lib_not_fn 201603L // also in <functional>
151
- #define __cpp_lib_null_iterators 201304L // also in <iterator>
152
- #define __cpp_lib_optional 202110L // also in <optional>
153
- #define __cpp_lib_out_ptr 202106L // also in <memory>
154
- #define __cpp_lib_parallel_algorithm 201603L // also in <algorithm>, <numeric>
 
 
 
 
 
 
155
  #define __cpp_lib_polymorphic_allocator 201902L // also in <memory_resource>
156
- #define __cpp_lib_print 202207L // also in <print>, <ostream>
157
  #define __cpp_lib_quoted_string_io 201304L // also in <iomanip>
158
- #define __cpp_lib_ranges 202302L
159
  // also in <algorithm>, <functional>, <iterator>, <memory>, <ranges>
160
- #define __cpp_lib_ranges_as_const 202207L // also in <ranges>
161
- #define __cpp_lib_ranges_as_rvalue 202207L // also in <ranges>
162
- #define __cpp_lib_ranges_cartesian_product 202207L // also in <ranges>
163
- #define __cpp_lib_ranges_chunk 202202L // also in <ranges>
164
- #define __cpp_lib_ranges_chunk_by 202202L // also in <ranges>
 
 
165
  #define __cpp_lib_ranges_contains 202207L // also in <algorithm>
166
- #define __cpp_lib_ranges_enumerate 202302L // also in <ranges>, <version>
167
  #define __cpp_lib_ranges_find_last 202207L // also in <algorithm>
168
  #define __cpp_lib_ranges_fold 202207L // also in <algorithm>
 
 
169
  #define __cpp_lib_ranges_iota 202202L // also in <numeric>
170
- #define __cpp_lib_ranges_join_with 202202L // also in <ranges>
171
- #define __cpp_lib_ranges_repeat 202207L // also in <ranges>
172
- #define __cpp_lib_ranges_slide 202202L // also in <ranges>
 
173
  #define __cpp_lib_ranges_starts_ends_with 202106L // also in <algorithm>
174
- #define __cpp_lib_ranges_stride 202207L // also in <ranges>
175
- #define __cpp_lib_ranges_to_container 202202L // also in <ranges>
176
- #define __cpp_lib_ranges_zip 202110L // also in <ranges>, <tuple>, <utility>
177
- #define __cpp_lib_raw_memory_algorithms 201606L // also in <memory>
178
- #define __cpp_lib_reference_from_temporary 202202L // also in <type_traits>
179
- #define __cpp_lib_remove_cvref 201711L // also in <type_traits>
180
- #define __cpp_lib_result_of_sfinae 201210L // also in <functional>, <type_traits>
 
 
 
 
 
 
 
181
  #define __cpp_lib_robust_nonmodifying_seq_ops 201304L // also in <algorithm>
182
  #define __cpp_lib_sample 201603L // also in <algorithm>
 
183
  #define __cpp_lib_scoped_lock 201703L // also in <mutex>
184
  #define __cpp_lib_semaphore 201907L // also in <semaphore>
 
185
  #define __cpp_lib_shared_mutex 201505L // also in <shared_mutex>
186
  #define __cpp_lib_shared_ptr_arrays 201707L // also in <memory>
187
  #define __cpp_lib_shared_ptr_weak_type 201606L // also in <memory>
188
  #define __cpp_lib_shared_timed_mutex 201402L // also in <shared_mutex>
189
  #define __cpp_lib_shift 202202L // also in <algorithm>
 
 
 
190
  #define __cpp_lib_smart_ptr_for_overwrite 202002L // also in <memory>
191
- #define __cpp_lib_source_location 201907L // also in <source_location>
192
- #define __cpp_lib_span 202002L // also in <span>
 
 
193
  #define __cpp_lib_spanstream 202106L // also in <spanstream>
194
- #define __cpp_lib_ssize 201902L // also in <iterator>
 
195
  #define __cpp_lib_stacktrace 202011L // also in <stacktrace>
196
- #define __cpp_lib_start_lifetime_as 202207L // also in <memory>
197
  #define __cpp_lib_starts_ends_with 201711L // also in <string>, <string_view>
198
  #define __cpp_lib_stdatomic_h 202011L // also in <stdatomic.h>
199
  #define __cpp_lib_string_contains 202011L // also in <string>, <string_view>
200
  #define __cpp_lib_string_resize_and_overwrite 202110L // also in <string>
 
201
  #define __cpp_lib_string_udls 201304L // also in <string>
202
- #define __cpp_lib_string_view 201803L // also in <string>, <string_view>
 
203
  #define __cpp_lib_syncbuf 201803L // also in <syncstream>
204
- #define __cpp_lib_three_way_comparison 201907L // also in <compare>
205
- #define __cpp_lib_to_address 201711L // also in <memory>
206
- #define __cpp_lib_to_array 201907L // also in <array>
207
- #define __cpp_lib_to_chars 201611L // also in <charconv>
208
- #define __cpp_lib_to_underlying 202102L // also in <utility>
209
- #define __cpp_lib_transformation_trait_aliases 201304L // also in <type_traits>
210
- #define __cpp_lib_transparent_operators 201510L // also in <memory>, <functional>
211
- #define __cpp_lib_tuple_like 202207L
 
 
 
 
 
 
 
212
  // also in <utility>, <tuple>, <map>, <unordered_map>
213
- #define __cpp_lib_tuple_element_t 201402L // also in <tuple>
214
- #define __cpp_lib_tuples_by_type 201304L // also in <utility>, <tuple>
215
- #define __cpp_lib_type_identity 201806L // also in <type_traits>
216
- #define __cpp_lib_type_trait_variable_templates 201510L // also in <type_traits>
217
- #define __cpp_lib_uncaught_exceptions 201411L // also in <exception>
218
  #define __cpp_lib_unordered_map_try_emplace 201411L // also in <unordered_map>
219
- #define __cpp_lib_unreachable 202202L // also in <utility>
220
- #define __cpp_lib_unwrap_ref 201811L // also in <type_traits>
221
- #define __cpp_lib_variant 202106L // also in <variant>
222
- #define __cpp_lib_void_t 201411L // also in <type_traits>
223
  ```
224
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  ### Header `<limits>` synopsis <a id="limits.syn">[[limits.syn]]</a>
226
 
227
  ``` cpp
228
  // all freestanding
229
  namespace std {
@@ -364,10 +509,13 @@ not have specializations.
364
  #### `numeric_limits` members <a id="numeric.limits.members">[[numeric.limits.members]]</a>
365
 
366
  Each member function defined in this subclause is signal-safe
367
  [[support.signal]].
368
 
 
 
 
369
  ``` cpp
370
  static constexpr T min() noexcept;
371
  ```
372
 
373
  Minimum finite value.[^3]
@@ -402,11 +550,11 @@ static constexpr int digits;
402
  Number of `radix` digits that can be represented without change.
403
 
404
  For integer types, the number of non-sign bits in the representation.
405
 
406
  For floating-point types, the number of `radix` digits in the
407
- mantissa.[^6]
408
 
409
  ``` cpp
410
  static constexpr int digits10;
411
  ```
412
 
@@ -583,11 +731,11 @@ Meaningful for all floating-point types.
583
 
584
  ``` cpp
585
  static constexpr bool is_iec559;
586
  ```
587
 
588
- `true` if and only if the type adheres to ISO/IEC/IEEE 60559.[^22]
589
 
590
  [*Note 1*: The value is `true` for any of the types `float16_t`,
591
  `float32_t`, `float64_t`, or `float128_t`, if
592
  present [[basic.extended.fp]]. — *end note*]
593
 
@@ -755,11 +903,23 @@ namespace std {
755
 
756
  ### Header `<climits>` synopsis <a id="climits.syn">[[climits.syn]]</a>
757
 
758
  ``` cpp
759
  // all freestanding
 
760
  #define CHAR_BIT see below
 
 
 
 
 
 
 
 
 
 
 
761
  #define SCHAR_MIN see below
762
  #define SCHAR_MAX see below
763
  #define UCHAR_MAX see below
764
  #define CHAR_MIN see below
765
  #define CHAR_MAX see below
@@ -777,35 +937,39 @@ namespace std {
777
  #define LLONG_MAX see below
778
  #define ULLONG_MAX see below
779
  ```
780
 
781
  The header `<climits>` defines all macros the same as the C standard
782
- library header `<limits.h>`.
 
783
 
784
- [*Note 1*: Except for `CHAR_BIT` and `MB_LEN_MAX`, a macro referring to
785
- an integer type `T` defines a constant whose type is the promoted type
786
- of `T` [[conv.prom]]. — *end note*]
787
 
788
- See also: ISO C 5.2.4.2.1
789
 
790
  ### Header `<cfloat>` synopsis <a id="cfloat.syn">[[cfloat.syn]]</a>
791
 
792
  ``` cpp
793
  // all freestanding
 
 
794
  #define FLT_ROUNDS see below
795
  #define FLT_EVAL_METHOD see below
796
- #define FLT_HAS_SUBNORM see below
797
- #define DBL_HAS_SUBNORM see below
798
- #define LDBL_HAS_SUBNORM see below
799
  #define FLT_RADIX see below
 
 
 
 
 
800
  #define FLT_MANT_DIG see below
801
  #define DBL_MANT_DIG see below
802
  #define LDBL_MANT_DIG see below
803
  #define FLT_DECIMAL_DIG see below
804
  #define DBL_DECIMAL_DIG see below
805
  #define LDBL_DECIMAL_DIG see below
806
- #define DECIMAL_DIG see below
807
  #define FLT_DIG see below
808
  #define DBL_DIG see below
809
  #define LDBL_DIG see below
810
  #define FLT_MIN_EXP see below
811
  #define DBL_MIN_EXP see below
@@ -834,7 +998,7 @@ See also: ISO C 5.2.4.2.1
834
  ```
835
 
836
  The header `<cfloat>` defines all macros the same as the C standard
837
  library header `<float.h>`.
838
 
839
- See also: ISO C 5.2.4.2.2
840
 
 
13
 
14
  Each of the macros defined in `<version>` is also defined after
15
  inclusion of any member of the set of library headers indicated in the
16
  corresponding comment in this synopsis.
17
 
18
+ [*Note 1*: Future revisions of this document might replace the values
19
+ of these macros with greater values. — *end note*]
20
 
21
  ``` cpp
22
+ #define __cpp_lib_adaptor_iterator_pair_constructor 202106L // also in <stack>, <queue>
23
+ #define __cpp_lib_addressof_constexpr 201603L // freestanding, also in <memory>
24
+ #define __cpp_lib_algorithm_default_value_type 202403L
25
+ // also in <algorithm>, <ranges>, <string>, <deque>, <list>, <forward_list>, <vector>
26
  #define __cpp_lib_algorithm_iterator_requirements 202207L
27
  // also in <algorithm>, <numeric>, <memory>
28
+ #define __cpp_lib_aligned_accessor 202411L // also in <mdspan>
29
  #define __cpp_lib_allocate_at_least 202302L // also in <memory>
30
  #define __cpp_lib_allocator_traits_is_always_equal 201411L
31
+ // freestanding, also in <memory>, <scoped_allocator>, <string>, <deque>, <forward_list>, <list>,
32
+ // <vector>, <map>, <set>, <unordered_map>, <unordered_set>
 
33
  #define __cpp_lib_any 201606L // also in <any>
34
+ #define __cpp_lib_apply 202506L // freestanding, also in <tuple>, <type_traits>
35
  #define __cpp_lib_array_constexpr 201811L // also in <iterator>, <array>
36
+ #define __cpp_lib_as_const 201510L // freestanding, also in <utility>
37
  #define __cpp_lib_associative_heterogeneous_erasure 202110L
38
  // also in <map>, <set>, <unordered_map>, <unordered_set>
39
+ #define __cpp_lib_associative_heterogeneous_insertion 202306L
40
+ // also in <map>, <set>, <unordered_map>, <unordered_set>
41
+ #define __cpp_lib_assume_aligned 201811L // freestanding, also in <memory>
42
+ #define __cpp_lib_atomic_flag_test 201907L // freestanding, also in <atomic>
43
+ #define __cpp_lib_atomic_float 201711L // freestanding, also in <atomic>
44
+ #define __cpp_lib_atomic_is_always_lock_free 201603L // freestanding, also in <atomic>
45
  #define __cpp_lib_atomic_lock_free_type_aliases 201907L // also in <atomic>
46
+ #define __cpp_lib_atomic_min_max 202506L // freestanding, also in <atomic>
47
+ #define __cpp_lib_atomic_reductions 202506L // freestanding, also in <atomic>
48
+ #define __cpp_lib_atomic_ref 202411L // freestanding, also in <atomic>
49
  #define __cpp_lib_atomic_shared_ptr 201711L // also in <memory>
50
+ #define __cpp_lib_atomic_value_initialization 201911L // freestanding, also in <atomic>, <memory>
51
+ #define __cpp_lib_atomic_wait 201907L // freestanding, also in <atomic>
52
  #define __cpp_lib_barrier 202302L // also in <barrier>
53
+ #define __cpp_lib_bind_back 202306L // freestanding, also in <functional>
54
+ #define __cpp_lib_bind_front 202306L // freestanding, also in <functional>
55
+ #define __cpp_lib_bit_cast 201806L // freestanding, also in <bit>
56
+ #define __cpp_lib_bitops 201907L // freestanding, also in <bit>
57
+ #define __cpp_lib_bitset 202306L // also in <bitset>
58
+ #define __cpp_lib_bool_constant 201505L // freestanding, also in <type_traits>
59
+ #define __cpp_lib_bounded_array_traits 201902L // freestanding, also in <type_traits>
60
  #define __cpp_lib_boyer_moore_searcher 201603L // also in <functional>
61
+ #define __cpp_lib_byte 201603L // freestanding, also in <cstddef>
62
+ #define __cpp_lib_byteswap 202110L // freestanding, also in <bit>
63
  #define __cpp_lib_char8_t 201907L
64
+ // freestanding, also in <atomic>, <filesystem>, <istream>, <limits>, <locale>, <ostream>, <string>,
65
+ // <string_view>
66
+ #define __cpp_lib_chrono 202306L // also in <chrono>
67
  #define __cpp_lib_chrono_udls 201304L // also in <chrono>
68
  #define __cpp_lib_clamp 201603L // also in <algorithm>
69
+ #define __cpp_lib_common_reference 202302L // freestanding, also in <type_traits>
70
+ #define __cpp_lib_common_reference_wrapper 202302L // freestanding, also in <functional>
71
  #define __cpp_lib_complex_udls 201309L // also in <complex>
72
+ #define __cpp_lib_concepts 202207L
73
+ // freestanding, also in <concepts>, <compare>
74
+ #define __cpp_lib_constant_wrapper 202506L // freestanding, also in <type_traits>
75
+ #define __cpp_lib_constexpr_algorithms 202306L // also in <algorithm>, <utility>
76
+ #define __cpp_lib_constexpr_atomic 202411L // also in <atomic>
77
  #define __cpp_lib_constexpr_bitset 202207L // also in <bitset>
78
+ #define __cpp_lib_constexpr_charconv 202207L // freestanding, also in <charconv>
79
+ #define __cpp_lib_constexpr_cmath 202306L // also in <cmath>, <cstdlib>
80
+ #define __cpp_lib_constexpr_complex 202306L // also in <complex>
81
+ #define __cpp_lib_constexpr_deque 202502L // also in <deque>
82
  #define __cpp_lib_constexpr_dynamic_alloc 201907L // also in <memory>
83
+ #define __cpp_lib_constexpr_exceptions 202502L
84
+ // also in <exception>, <stdexcept>, <expected>, <optional>, <variant>, and <format>
85
+ #define __cpp_lib_constexpr_flat_map 202502L // also in <flat_map>
86
+ #define __cpp_lib_constexpr_flat_set 202502L // also in <flat_set>
87
+ #define __cpp_lib_constexpr_forward_list 202502L // also in <forward_list>
88
+ #define __cpp_lib_constexpr_functional 201907L // freestanding, also in <functional>
89
+ #define __cpp_lib_constexpr_inplace_vector 202502L // also in <inplace_vector>
90
+ #define __cpp_lib_constexpr_iterator 201811L // freestanding, also in <iterator>
91
+ #define __cpp_lib_constexpr_list 202502L // also in <list>
92
+ #define __cpp_lib_constexpr_map 202502L // also in <map>
93
+ #define __cpp_lib_constexpr_memory 202506L // freestanding, also in <memory>
94
+ #define __cpp_lib_constexpr_new 202406L // freestanding, also in <new>
95
  #define __cpp_lib_constexpr_numeric 201911L // also in <numeric>
96
+ #define __cpp_lib_constexpr_queue 202502L // also in <queue>
97
+ #define __cpp_lib_constexpr_set 202502L // also in <set>
98
+ #define __cpp_lib_constexpr_stack 202502L // also in <stack>
99
  #define __cpp_lib_constexpr_string 201907L // also in <string>
100
  #define __cpp_lib_constexpr_string_view 201811L // also in <string_view>
101
+ #define __cpp_lib_constexpr_tuple 201811L // freestanding, also in <tuple>
102
+ #define __cpp_lib_constexpr_typeinfo 202106L // freestanding, also in <typeinfo>
103
+ #define __cpp_lib_constexpr_unordered_map 202502L // also in <unordered_map>
104
+ #define __cpp_lib_constexpr_unordered_set 202502L // also in <unordered_set>
105
+ #define __cpp_lib_constexpr_utility 201811L // freestanding, also in <utility>
106
  #define __cpp_lib_constexpr_vector 201907L // also in <vector>
107
+ #define __cpp_lib_constrained_equality 202411L // freestanding,
108
+ // also in <utility>, <tuple>, <optional>, <variant>, <expected>
109
  #define __cpp_lib_containers_ranges 202202L
110
  // also in <vector>, <list>, <forward_list>, <map>, <set>, <unordered_map>, <unordered_set>,
111
  // <deque>, <queue>, <stack>, <string>
112
+ #define __cpp_lib_contracts 202502L // freestanding, also in <contracts>
113
+ #define __cpp_lib_copyable_function 202306L // also in <functional>
114
+ #define __cpp_lib_coroutine 201902L // freestanding, also in <coroutine>
115
+ #define __cpp_lib_counting_scope 202506L // also in <execution>
116
+ #define __cpp_lib_debugging 202403L // freestanding, also in <debugging>
117
+ #define __cpp_lib_define_static 202506L // freestanding, also in <meta>
118
+ #define __cpp_lib_destroying_delete 201806L // freestanding, also in <new>
119
  #define __cpp_lib_enable_shared_from_this 201603L // also in <memory>
120
+ #define __cpp_lib_endian 201907L // freestanding, also in <bit>
121
  #define __cpp_lib_erase_if 202002L
122
  // also in <string>, <deque>, <forward_list>, <list>, <vector>, <map>, <set>, <unordered_map>,
123
  // <unordered_set>
124
+ #define __cpp_lib_exception_ptr_cast 202506L // also in <exception>
125
+ #define __cpp_lib_exchange_function 201304L // freestanding, also in <utility>
126
  #define __cpp_lib_execution 201902L // also in <execution>
127
  #define __cpp_lib_expected 202211L // also in <expected>
128
  #define __cpp_lib_filesystem 201703L // also in <filesystem>
129
  #define __cpp_lib_flat_map 202207L // also in <flat_map>
130
  #define __cpp_lib_flat_set 202207L // also in <flat_set>
131
+ #define __cpp_lib_format 202311L // also in <format>
132
+ #define __cpp_lib_format_path 202506L // also in <filesystem>
133
  #define __cpp_lib_format_ranges 202207L // also in <format>
134
+ #define __cpp_lib_format_uchar 202311L // also in <format>
135
  #define __cpp_lib_formatters 202302L // also in <stacktrace>, <thread>
136
+ #define __cpp_lib_forward_like 202207L // freestanding, also in <utility>
137
+ #define __cpp_lib_freestanding_algorithm 202502L // freestanding, also in <algorithm>
138
+ #define __cpp_lib_freestanding_array 202311L // freestanding, also in <array>
139
+ #define __cpp_lib_freestanding_char_traits 202306L // freestanding, also in <string>
140
+ #define __cpp_lib_freestanding_charconv 202306L // freestanding, also in <charconv>
141
+ #define __cpp_lib_freestanding_cstdlib 202306L // freestanding, also in <cstdlib>, <cmath>
142
+ #define __cpp_lib_freestanding_cstring 202311L // freestanding, also in <cstring>
143
+ #define __cpp_lib_freestanding_cwchar 202306L // freestanding, also in <cwchar>
144
+ #define __cpp_lib_freestanding_errc 202306L
145
+ // freestanding, also in <cerrno>, <system_error>
146
+ #define __cpp_lib_freestanding_execution 202502L // freestanding, also in <execution>
147
+ #define __cpp_lib_freestanding_expected 202311L // freestanding, also in <expected>
148
+ #define __cpp_lib_freestanding_feature_test_macros 202306L // freestanding
149
+ #define __cpp_lib_freestanding_functional 202306L // freestanding, also in <functional>
150
+ #define __cpp_lib_freestanding_iterator 202306L // freestanding, also in <iterator>
151
+ #define __cpp_lib_freestanding_mdspan 202311L // freestanding, also in <mdspan>
152
+ #define __cpp_lib_freestanding_memory 202502L // freestanding, also in <memory>
153
+ #define __cpp_lib_freestanding_numeric 202502L // freestanding, also in <numeric>
154
+ #define __cpp_lib_freestanding_operator_new see below // freestanding, also in <new>
155
+ #define __cpp_lib_freestanding_optional 202506L // freestanding, also in <optional>
156
+ #define __cpp_lib_freestanding_random 202502L // freestanding, also in <random>
157
+ #define __cpp_lib_freestanding_ranges 202306L // freestanding, also in <ranges>
158
+ #define __cpp_lib_freestanding_ratio 202306L // freestanding, also in <ratio>
159
+ #define __cpp_lib_freestanding_string_view 202311L // freestanding, also in <string_view>
160
+ #define __cpp_lib_freestanding_tuple 202306L // freestanding, also in <tuple>
161
+ #define __cpp_lib_freestanding_utility 202306L // freestanding, also in <utility>
162
+ #define __cpp_lib_freestanding_variant 202311L // freestanding, also in <variant>
163
+ #define __cpp_lib_fstream_native_handle 202306L // also in <fstream>
164
+ #define __cpp_lib_function_ref 202306L // also in <functional>
165
  #define __cpp_lib_gcd_lcm 201606L // also in <numeric>
166
  #define __cpp_lib_generator 202207L // also in <generator>
167
  #define __cpp_lib_generic_associative_lookup 201304L // also in <map>, <set>
168
  #define __cpp_lib_generic_unordered_lookup 201811L
169
  // also in <unordered_map>, <unordered_set>
170
+ #define __cpp_lib_hardware_interference_size 201703L // freestanding, also in <new>
171
+ #define __cpp_lib_has_unique_object_representations 201606L // freestanding, also in <type_traits>
172
+ #define __cpp_lib_hazard_pointer 202306L // also in <hazard_pointer>
173
+ #define __cpp_lib_hive 202502L // also in <hive>
174
  #define __cpp_lib_hypot 201603L // also in <cmath>
175
  #define __cpp_lib_incomplete_container_elements 201505L
176
  // also in <forward_list>, <list>, <vector>
177
+ #define __cpp_lib_indirect 202502L // also in <memory>
178
+ #define __cpp_lib_inplace_vector 202406L // also in <inplace_vector>
179
+ #define __cpp_lib_int_pow2 202002L // freestanding, also in <bit>
180
  #define __cpp_lib_integer_comparison_functions 202002L // also in <utility>
181
+ #define __cpp_lib_integer_sequence 201304L // freestanding, also in <utility>
182
+ #define __cpp_lib_integral_constant_callable 201304L // freestanding, also in <type_traits>
183
  #define __cpp_lib_interpolate 201902L // also in <cmath>, <numeric>
184
+ #define __cpp_lib_invoke 201411L // freestanding, also in <functional>
185
+ #define __cpp_lib_invoke_r 202106L // freestanding, also in <functional>
186
  #define __cpp_lib_ios_noreplace 202207L // also in <ios>
187
+ #define __cpp_lib_is_aggregate 201703L // freestanding, also in <type_traits>
188
+ #define __cpp_lib_is_constant_evaluated 201811L // freestanding, also in <type_traits>
189
+ #define __cpp_lib_is_final 201402L // freestanding, also in <type_traits>
190
+ #define __cpp_lib_is_implicit_lifetime 202302L // freestanding, also in <type_traits>
191
+ #define __cpp_lib_is_invocable 201703L // freestanding, also in <type_traits>
192
+ #define __cpp_lib_is_layout_compatible 201907L // freestanding, also in <type_traits>
193
+ #define __cpp_lib_is_nothrow_convertible 201806L // freestanding, also in <type_traits>
194
+ #define __cpp_lib_is_null_pointer 201309L // freestanding, also in <type_traits>
195
+ #define __cpp_lib_is_pointer_interconvertible 201907L // freestanding, also in <type_traits>
196
+ #define __cpp_lib_is_scoped_enum 202011L // freestanding, also in <type_traits>
197
+ #define __cpp_lib_is_sufficiently_aligned 202411L // also in <memory>
198
+ #define __cpp_lib_is_swappable 201603L // freestanding, also in <type_traits>
199
+ #define __cpp_lib_is_virtual_base_of 202406L // freestanding, also in <type_traits>
200
+ #define __cpp_lib_is_within_lifetime 202306L // freestanding, also in <type_traits>
201
  #define __cpp_lib_jthread 201911L // also in <stop_token>, <thread>
202
  #define __cpp_lib_latch 201907L // also in <latch>
203
+ #define __cpp_lib_launder 201606L // freestanding, also in <new>
204
+ #define __cpp_lib_linalg 202412L // also in <linalg>
205
  #define __cpp_lib_list_remove_return_type 201806L // also in <forward_list>, <list>
206
+ #define __cpp_lib_logical_traits 201510L // freestanding, also in <type_traits>
207
+ #define __cpp_lib_make_from_tuple 201606L // freestanding, also in <tuple>
208
+ #define __cpp_lib_make_reverse_iterator 201402L // freestanding, also in <iterator>
209
  #define __cpp_lib_make_unique 201304L // also in <memory>
210
  #define __cpp_lib_map_try_emplace 201411L // also in <map>
211
  #define __cpp_lib_math_constants 201907L // also in <numbers>
212
  #define __cpp_lib_math_special_functions 201603L // also in <cmath>
213
+ #define __cpp_lib_mdspan 202406L // freestanding, also in <mdspan>
214
  #define __cpp_lib_memory_resource 201603L // also in <memory_resource>
215
+ #define __cpp_lib_modules 202207L // freestanding
216
+ #define __cpp_lib_move_iterator_concept 202207L // freestanding, also in <iterator>
217
  #define __cpp_lib_move_only_function 202110L // also in <functional>
218
  #define __cpp_lib_node_extract 201606L
219
  // also in <map>, <set>, <unordered_map>, <unordered_set>
220
  #define __cpp_lib_nonmember_container_access 201411L
221
+ // freestanding, also in <array>, <deque>, <forward_list>, <iterator>, <list>, <map>, <regex>, <set>,
222
+ // <string>, <unordered_map>, <unordered_set>, <vector>
223
+ #define __cpp_lib_not_fn 202306L // freestanding, also in <functional>
224
+ #define __cpp_lib_null_iterators 201304L // freestanding, also in <iterator>
225
+ #define __cpp_lib_observable_checkpoint 202506L // freestanding, also in <utility>
226
+ #define __cpp_lib_optional 202506L // also in <optional>
227
+ #define __cpp_lib_optional_range_support 202406L // freestanding, also in <optional>
228
+ #define __cpp_lib_out_ptr 202311L // freestanding, also in <memory>
229
+ #define __cpp_lib_parallel_algorithm 202506L
230
+ // also in <algorithm>, <numeric>, <memory>
231
+ #define __cpp_lib_parallel_scheduler 202506L // also in <execution>
232
+ #define __cpp_lib_philox_engine 202406L // also in <random>
233
+ #define __cpp_lib_polymorphic 202502L // also in <memory>
234
  #define __cpp_lib_polymorphic_allocator 201902L // also in <memory_resource>
235
+ #define __cpp_lib_print 202406L // also in <print>, <ostream>
236
  #define __cpp_lib_quoted_string_io 201304L // also in <iomanip>
237
+ #define __cpp_lib_ranges 202406L
238
  // also in <algorithm>, <functional>, <iterator>, <memory>, <ranges>
239
+ #define __cpp_lib_ranges_as_const 202311L // freestanding, also in <ranges>
240
+ #define __cpp_lib_ranges_as_rvalue 202207L // freestanding, also in <ranges>
241
+ #define __cpp_lib_ranges_cache_latest 202411L // freestanding, also in <ranges>
242
+ #define __cpp_lib_ranges_cartesian_product 202207L // freestanding, also in <ranges>
243
+ #define __cpp_lib_ranges_chunk 202202L // freestanding, also in <ranges>
244
+ #define __cpp_lib_ranges_chunk_by 202202L // freestanding, also in <ranges>
245
+ #define __cpp_lib_ranges_concat 202403L // freestanding, also in <ranges>
246
  #define __cpp_lib_ranges_contains 202207L // also in <algorithm>
247
+ #define __cpp_lib_ranges_enumerate 202302L // also in <ranges>
248
  #define __cpp_lib_ranges_find_last 202207L // also in <algorithm>
249
  #define __cpp_lib_ranges_fold 202207L // also in <algorithm>
250
+ #define __cpp_lib_ranges_generate_random 202403L // also in <random>
251
+ #define __cpp_lib_ranges_indices 202506L // also in <ranges>
252
  #define __cpp_lib_ranges_iota 202202L // also in <numeric>
253
+ #define __cpp_lib_ranges_join_with 202202L // freestanding, also in <ranges>
254
+ #define __cpp_lib_ranges_repeat 202207L // freestanding, also in <ranges>
255
+ #define __cpp_lib_ranges_reserve_hint 202502L // also in <ranges>
256
+ #define __cpp_lib_ranges_slide 202202L // freestanding, also in <ranges>
257
  #define __cpp_lib_ranges_starts_ends_with 202106L // also in <algorithm>
258
+ #define __cpp_lib_ranges_stride 202207L // freestanding, also in <ranges>
259
+ #define __cpp_lib_ranges_to_container 202202L // freestanding, also in <ranges>
260
+ #define __cpp_lib_ranges_to_input 202502L // freestanding, also in <ranges>
261
+ #define __cpp_lib_ranges_zip 202110L
262
+ // freestanding, also in <ranges>, <tuple>, <utility>
263
+ #define __cpp_lib_ratio 202306L // freestanding, also in <ratio>
264
+ #define __cpp_lib_raw_memory_algorithms 202411L // also in <memory>
265
+ #define __cpp_lib_rcu 202306L // also in <rcu>
266
+ #define __cpp_lib_reference_from_temporary 202202L // freestanding, also in <type_traits>
267
+ #define __cpp_lib_reference_wrapper 202403L // freestanding, also in <functional>
268
+ #define __cpp_lib_reflection 202506L // also in <meta>
269
+ #define __cpp_lib_remove_cvref 201711L // freestanding, also in <type_traits>
270
+ #define __cpp_lib_result_of_sfinae 201210L
271
+ // freestanding, also in <functional>, <type_traits>
272
  #define __cpp_lib_robust_nonmodifying_seq_ops 201304L // also in <algorithm>
273
  #define __cpp_lib_sample 201603L // also in <algorithm>
274
+ #define __cpp_lib_saturation_arithmetic 202311L // also in <numeric>
275
  #define __cpp_lib_scoped_lock 201703L // also in <mutex>
276
  #define __cpp_lib_semaphore 201907L // also in <semaphore>
277
+ #define __cpp_lib_senders 202506L // also in <execution>
278
  #define __cpp_lib_shared_mutex 201505L // also in <shared_mutex>
279
  #define __cpp_lib_shared_ptr_arrays 201707L // also in <memory>
280
  #define __cpp_lib_shared_ptr_weak_type 201606L // also in <memory>
281
  #define __cpp_lib_shared_timed_mutex 201402L // also in <shared_mutex>
282
  #define __cpp_lib_shift 202202L // also in <algorithm>
283
+ #define __cpp_lib_simd 202506L // also in <simd>
284
+ #define __cpp_lib_simd_complex 202502L // also in <simd>
285
+ #define __cpp_lib_simd_permutations 202506L // also in <simd>
286
  #define __cpp_lib_smart_ptr_for_overwrite 202002L // also in <memory>
287
+ #define __cpp_lib_smart_ptr_owner_equality 202306L // also in <memory>
288
+ #define __cpp_lib_source_location 201907L // freestanding, also in <source_location>
289
+ #define __cpp_lib_span 202311L // freestanding, also in <span>
290
+ #define __cpp_lib_span_initializer_list 202311L // freestanding, also in <span>
291
  #define __cpp_lib_spanstream 202106L // also in <spanstream>
292
+ #define __cpp_lib_ssize 201902L // freestanding, also in <iterator>
293
+ #define __cpp_lib_sstream_from_string_view 202306L // also in <sstream>
294
  #define __cpp_lib_stacktrace 202011L // also in <stacktrace>
295
+ #define __cpp_lib_start_lifetime_as 202207L // freestanding, also in <memory>
296
  #define __cpp_lib_starts_ends_with 201711L // also in <string>, <string_view>
297
  #define __cpp_lib_stdatomic_h 202011L // also in <stdatomic.h>
298
  #define __cpp_lib_string_contains 202011L // also in <string>, <string_view>
299
  #define __cpp_lib_string_resize_and_overwrite 202110L // also in <string>
300
+ #define __cpp_lib_string_subview 202506L // also in <string>, <string_view>
301
  #define __cpp_lib_string_udls 201304L // also in <string>
302
+ #define __cpp_lib_string_view 202403L // also in <string>, <string_view>
303
+ #define __cpp_lib_submdspan 202411L // freestanding, also in <mdspan>
304
  #define __cpp_lib_syncbuf 201803L // also in <syncstream>
305
+ #define __cpp_lib_task 202506L // also in <execution>
306
+ #define __cpp_lib_text_encoding 202306L // also in <text_encoding>
307
+ #define __cpp_lib_three_way_comparison 201907L // freestanding, also in <compare>
308
+ #define __cpp_lib_to_address 201711L // freestanding, also in <memory>
309
+ #define __cpp_lib_to_array 201907L // freestanding, also in <array>
310
+ #define __cpp_lib_to_chars 202306L // also in <charconv>
311
+ #define __cpp_lib_to_string 202306L // also in <string>
312
+ #define __cpp_lib_to_underlying 202102L // freestanding, also in <utility>
313
+ #define __cpp_lib_transformation_trait_aliases 201304L // freestanding, also in <type_traits>
314
+ #define __cpp_lib_transparent_operators 201510L
315
+ // freestanding, also in <memory>, <functional>
316
+ #define __cpp_lib_trivially_relocatable 202502L
317
+ // freestanding, also in <memory>, <type_traits>
318
+ #define __cpp_lib_tuple_element_t 201402L // freestanding, also in <tuple>
319
+ #define __cpp_lib_tuple_like 202311L
320
  // also in <utility>, <tuple>, <map>, <unordered_map>
321
+ #define __cpp_lib_tuples_by_type 201304L // freestanding, also in <utility>, <tuple>
322
+ #define __cpp_lib_type_identity 201806L // freestanding, also in <type_traits>
323
+ #define __cpp_lib_type_order 202506L // also in <compare>
324
+ #define __cpp_lib_type_trait_variable_templates 201510L // freestanding, also in <type_traits>
325
+ #define __cpp_lib_uncaught_exceptions 201411L // freestanding, also in <exception>
326
  #define __cpp_lib_unordered_map_try_emplace 201411L // also in <unordered_map>
327
+ #define __cpp_lib_unreachable 202202L // freestanding, also in <utility>
328
+ #define __cpp_lib_unwrap_ref 201811L // freestanding, also in <type_traits>
329
+ #define __cpp_lib_variant 202306L // also in <variant>
330
+ #define __cpp_lib_void_t 201411L // freestanding, also in <type_traits>
331
  ```
332
 
333
+ Additionally, each of the following macros is defined in a hardened
334
+ implementation:
335
+
336
+ ``` cpp
337
+ #define __cpp_lib_hardened_array 202502L // also in <array>
338
+ #define __cpp_lib_hardened_basic_stacktrace 202506L // also in <stacktrace>
339
+ #define __cpp_lib_hardened_basic_string 202502L // also in <string>
340
+ #define __cpp_lib_hardened_basic_string_view 202502L // also in <string_view>
341
+ #define __cpp_lib_hardened_bitset 202502L // also in <bitset>
342
+ #define __cpp_lib_hardened_common_iterator 202506L // also in <iterator>
343
+ #define __cpp_lib_hardened_counted_iterator 202506L // also in <iterator>
344
+ #define __cpp_lib_hardened_deque 202502L // also in <deque>
345
+ #define __cpp_lib_hardened_expected 202502L // also in <expected>
346
+ #define __cpp_lib_hardened_forward_list 202502L // also in <forward_list>
347
+ #define __cpp_lib_hardened_inplace_vector 202502L // also in <inplace_vector>
348
+ #define __cpp_lib_hardened_list 202502L // also in <list>
349
+ #define __cpp_lib_hardened_mdspan 202502L // also in <mdspan>
350
+ #define __cpp_lib_hardened_optional 202502L // also in <optional>
351
+ #define __cpp_lib_hardened_shared_ptr_array 202506L // also in <memory>
352
+ #define __cpp_lib_hardened_span 202502L // also in <span>
353
+ #define __cpp_lib_hardened_valarray 202502L // also in <valarray>
354
+ #define __cpp_lib_hardened_vector 202502L // also in <vector>
355
+ #define __cpp_lib_hardened_view_interface 202506L // also in <ranges>
356
+ ```
357
+
358
+ The macro `__cpp_lib_freestanding_operator_new` is defined to the
359
+ integer literal `202306L` if all the default versions of the replaceable
360
+ global allocation functions meet the requirements of a hosted
361
+ implementation, and to the integer literal `0` otherwise [[new.delete]].
362
+
363
+ *Recommended practice:* Freestanding implementations should only define
364
+ a macro from `<version>` if the implementation provides the
365
+ corresponding facility in its entirety.
366
+
367
+ *Recommended practice:* A non-hardened implementation should not define
368
+ macros from `<version>` required for hardened implementations.
369
+
370
  ### Header `<limits>` synopsis <a id="limits.syn">[[limits.syn]]</a>
371
 
372
  ``` cpp
373
  // all freestanding
374
  namespace std {
 
509
  #### `numeric_limits` members <a id="numeric.limits.members">[[numeric.limits.members]]</a>
510
 
511
  Each member function defined in this subclause is signal-safe
512
  [[support.signal]].
513
 
514
+ [*Note 1*: The arithmetic specification described in ISO/IEC
515
+ 10967-1:2012 is commonly termed LIA-1. — *end note*]
516
+
517
  ``` cpp
518
  static constexpr T min() noexcept;
519
  ```
520
 
521
  Minimum finite value.[^3]
 
550
  Number of `radix` digits that can be represented without change.
551
 
552
  For integer types, the number of non-sign bits in the representation.
553
 
554
  For floating-point types, the number of `radix` digits in the
555
+ significand.[^6]
556
 
557
  ``` cpp
558
  static constexpr int digits10;
559
  ```
560
 
 
731
 
732
  ``` cpp
733
  static constexpr bool is_iec559;
734
  ```
735
 
736
+ `true` if and only if the type adheres to ISO/IEC 60559.[^22]
737
 
738
  [*Note 1*: The value is `true` for any of the types `float16_t`,
739
  `float32_t`, `float64_t`, or `float128_t`, if
740
  present [[basic.extended.fp]]. — *end note*]
741
 
 
903
 
904
  ### Header `<climits>` synopsis <a id="climits.syn">[[climits.syn]]</a>
905
 
906
  ``` cpp
907
  // all freestanding
908
+ #define BOOL_WIDTH see below
909
  #define CHAR_BIT see below
910
+ #define CHAR_WIDTH see below
911
+ #define SCHAR_WIDTH see below
912
+ #define UCHAR_WIDTH see below
913
+ #define USHRT_WIDTH see below
914
+ #define SHRT_WIDTH see below
915
+ #define UINT_WIDTH see below
916
+ #define INT_WIDTH see below
917
+ #define ULONG_WIDTH see below
918
+ #define LONG_WIDTH see below
919
+ #define ULLONG_WIDTH see below
920
+ #define LLONG_WIDTH see below
921
  #define SCHAR_MIN see below
922
  #define SCHAR_MAX see below
923
  #define UCHAR_MAX see below
924
  #define CHAR_MIN see below
925
  #define CHAR_MAX see below
 
937
  #define LLONG_MAX see below
938
  #define ULLONG_MAX see below
939
  ```
940
 
941
  The header `<climits>` defines all macros the same as the C standard
942
+ library header `<limits.h>`, except that it does not define the macro
943
+ `BITINT_MAXWIDTH`.
944
 
945
+ [*Note 1*: Except for the `WIDTH` macros, `CHAR_BIT`, and `MB_LEN_MAX`,
946
+ a macro referring to an integer type `T` defines a constant whose type
947
+ is the promoted type of `T` [[conv.prom]]. — *end note*]
948
 
949
+ See also: ISO C 5.3.5.3.2
950
 
951
  ### Header `<cfloat>` synopsis <a id="cfloat.syn">[[cfloat.syn]]</a>
952
 
953
  ``` cpp
954
  // all freestanding
955
+ #define __STDC_VERSION_FLOAT_H__ 202311L
956
+
957
  #define FLT_ROUNDS see below
958
  #define FLT_EVAL_METHOD see below
 
 
 
959
  #define FLT_RADIX see below
960
+ #define INFINITY see below
961
+ #define NAN see below
962
+ #define FLT_SNAN see below
963
+ #define DBL_SNAN see below
964
+ #define LDBL_SNAN see below
965
  #define FLT_MANT_DIG see below
966
  #define DBL_MANT_DIG see below
967
  #define LDBL_MANT_DIG see below
968
  #define FLT_DECIMAL_DIG see below
969
  #define DBL_DECIMAL_DIG see below
970
  #define LDBL_DECIMAL_DIG see below
 
971
  #define FLT_DIG see below
972
  #define DBL_DIG see below
973
  #define LDBL_DIG see below
974
  #define FLT_MIN_EXP see below
975
  #define DBL_MIN_EXP see below
 
998
  ```
999
 
1000
  The header `<cfloat>` defines all macros the same as the C standard
1001
  library header `<float.h>`.
1002
 
1003
+ See also: ISO C 5.3.5.3.3
1004