From Jason Turner

[cpp.predefined]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp9v870lql/{from.md → to.md} +60 -30
tmp/tmp9v870lql/{from.md → to.md} RENAMED
@@ -4,13 +4,20 @@ The following macro names shall be defined by the implementation:
4
 
5
  - **`__cplusplus`**
6
 
7
  The integer literal `202302L`.
8
 
9
- [*Note 1*: It is intended that future versions of this International
10
- Standard will replace the value of this macro with a greater
11
- value. — *end note*]
 
 
 
 
 
 
 
12
 
13
  - **`__DATE__`**
14
 
15
  The date of translation of the source file: a character string literal
16
  of the form `"Mmm dd yyyy"`, where the names of the months are the same
@@ -30,89 +37,121 @@ The presumed line number (within the current source file) of the current
30
  source line (an integer literal).[^10]
31
 
32
  - **`__STDC_HOSTED__`**
33
 
34
  The integer literal `1` if the implementation is a hosted implementation
35
- or the integer literal `0` if it is not.
 
36
 
37
  - **`__STDCPP_DEFAULT_NEW_ALIGNMENT__`**
38
 
39
  An integer literal of type `std::size_t` whose value is the alignment
40
  guaranteed by a call to `operator new(std::size_t)` or
41
  `operator new[](std::size_t)`.
42
 
43
- [*Note 2*: Larger alignments will be passed to
44
  `operator new(std::size_t, std::align_val_t)`, etc.
45
  [[expr.new]]. — *end note*]
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  - **`__TIME__`**
48
 
49
  The time of translation of the source file: a character string literal
50
  of the form `"hh:mm:ss"` as in the time generated by the `asctime`
51
  function. If the time of translation is not available, an
52
  *implementation-defined* valid time shall be supplied.
53
 
54
- - **The names listed in [[cpp.predefined.ft]].**
55
-
56
- The macros defined in [[cpp.predefined.ft]] shall be defined to the
57
- corresponding integer literal.
58
-
59
- [*Note 3*: Future versions of this International Standard might replace
60
- the values of these macros with greater values. — *end note*]
61
-
62
  **Table: Feature-test macros** <a id="cpp.predefined.ft">[cpp.predefined.ft]</a>
63
 
64
  | Macro name | Value |
65
  | --------------------------------------- | --------- |
66
  | `__cpp_aggregate_bases` | `201603L` |
67
  | `__cpp_aggregate_nsdmi` | `201304L` |
68
  | `__cpp_aggregate_paren_init` | `201902L` |
69
  | `__cpp_alias_templates` | `200704L` |
70
  | `__cpp_aligned_new` | `201606L` |
71
  | `__cpp_attributes` | `200809L` |
 
72
  | `__cpp_binary_literals` | `201304L` |
73
  | `__cpp_capture_star_this` | `201603L` |
74
- | `__cpp_char8_t` | `201811L` |
75
- | `__cpp_concepts` | `201907L` |
76
  | `__cpp_conditional_explicit` | `201806L` |
77
- | `__cpp_constexpr` | `201907L` |
78
  | `__cpp_constexpr_dynamic_alloc` | `201907L` |
79
  | `__cpp_constexpr_in_decltype` | `201711L` |
80
- | `__cpp_consteval` | `201811L` |
81
  | `__cpp_constinit` | `201907L` |
82
  | `__cpp_decltype` | `200707L` |
83
  | `__cpp_decltype_auto` | `201304L` |
84
  | `__cpp_deduction_guides` | `201907L` |
85
  | `__cpp_delegating_constructors` | `200604L` |
86
  | `__cpp_designated_initializers` | `201707L` |
87
  | `__cpp_enumerator_attributes` | `201411L` |
 
88
  | `__cpp_fold_expressions` | `201603L` |
89
  | `__cpp_generic_lambdas` | `201707L` |
90
  | `__cpp_guaranteed_copy_elision` | `201606L` |
91
  | `__cpp_hex_float` | `201603L` |
 
92
  | `__cpp_if_constexpr` | `201606L` |
93
  | `__cpp_impl_coroutine` | `201902L` |
94
  | `__cpp_impl_destroying_delete` | `201806L` |
95
  | `__cpp_impl_three_way_comparison` | `201907L` |
 
96
  | `__cpp_inheriting_constructors` | `201511L` |
97
  | `__cpp_init_captures` | `201803L` |
98
  | `__cpp_initializer_lists` | `200806L` |
99
  | `__cpp_inline_variables` | `201606L` |
100
  | `__cpp_lambdas` | `200907L` |
101
  | `__cpp_modules` | `201907L` |
 
 
102
  | `__cpp_namespace_attributes` | `201411L` |
103
  | `__cpp_noexcept_function_type` | `201510L` |
104
  | `__cpp_nontype_template_args` | `201911L` |
105
  | `__cpp_nontype_template_parameter_auto` | `201606L` |
106
  | `__cpp_nsdmi` | `200809L` |
107
- | `__cpp_range_based_for` | `201603L` |
108
  | `__cpp_raw_strings` | `200710L` |
109
  | `__cpp_ref_qualifiers` | `200710L` |
110
  | `__cpp_return_type_deduction` | `201304L` |
111
  | `__cpp_rvalue_references` | `200610L` |
 
112
  | `__cpp_sized_deallocation` | `201309L` |
113
  | `__cpp_static_assert` | `201411L` |
 
114
  | `__cpp_structured_bindings` | `201606L` |
115
  | `__cpp_template_template_args` | `201611L` |
116
  | `__cpp_threadsafe_static_init` | `200806L` |
117
  | `__cpp_unicode_characters` | `200704L` |
118
  | `__cpp_unicode_literals` | `200710L` |
@@ -143,22 +182,13 @@ character literal.
143
  Whether \_\_STDC_VERSION\_\_ is predefined and if so, what its value is,
144
  are *implementation-defined*.
145
 
146
  - **`__STDC_ISO_10646__`**
147
 
148
- An integer literal of the form `yyyymmL` (for example, `199712L`). If
149
- this symbol is defined, then every character in the Unicode required
150
- set, when stored in an object of type `wchar_t`, has the same value as
151
- the code point of that character. The *Unicode required set* consists of
152
- all the characters that are defined by ISO/IEC 10646, along with all
153
- amendments and technical corrigenda as of the specified year and month.
154
-
155
- - **`__STDCPP_STRICT_POINTER_SAFETY__`**
156
-
157
- Defined, and has the value integer literal 1, if and only if the
158
- implementation has strict pointer safety
159
- [[basic.stc.dynamic.safety]].
160
 
161
  - **`__STDCPP_THREADS__`**
162
 
163
  Defined, and has the value integer literal 1, if and only if a program
164
  can have more than one thread of execution [[intro.multithread]].
 
4
 
5
  - **`__cplusplus`**
6
 
7
  The integer literal `202302L`.
8
 
9
+ [*Note 1*: Future revisions of C++ will replace the value of this macro
10
+ with a greater value. *end note*]
11
+
12
+ - **The names listed in [[cpp.predefined.ft]].**
13
+
14
+ The macros defined in [[cpp.predefined.ft]] shall be defined to the
15
+ corresponding integer literal.
16
+
17
+ [*Note 2*: Future revisions of C++ might replace the values of these
18
+ macros with greater values. — *end note*]
19
 
20
  - **`__DATE__`**
21
 
22
  The date of translation of the source file: a character string literal
23
  of the form `"Mmm dd yyyy"`, where the names of the months are the same
 
37
  source line (an integer literal).[^10]
38
 
39
  - **`__STDC_HOSTED__`**
40
 
41
  The integer literal `1` if the implementation is a hosted implementation
42
+ or the integer literal `0` if it is a freestanding implementation
43
+ [[intro.compliance]].
44
 
45
  - **`__STDCPP_DEFAULT_NEW_ALIGNMENT__`**
46
 
47
  An integer literal of type `std::size_t` whose value is the alignment
48
  guaranteed by a call to `operator new(std::size_t)` or
49
  `operator new[](std::size_t)`.
50
 
51
+ [*Note 3*: Larger alignments will be passed to
52
  `operator new(std::size_t, std::align_val_t)`, etc.
53
  [[expr.new]]. — *end note*]
54
 
55
+ - **`__STDCPP_FLOAT16_T__`**
56
+
57
+ Defined as the integer literal `1` if and only if the implementation
58
+ supports the ISO/IEC/IEEE 60559 floating-point interchange format
59
+ binary16 as an extended floating-point type [[basic.extended.fp]].
60
+
61
+ - **`__STDCPP_FLOAT32_T__`**
62
+
63
+ Defined as the integer literal `1` if and only if the implementation
64
+ supports the ISO/IEC/IEEE 60559 floating-point interchange format
65
+ binary32 as an extended floating-point type.
66
+
67
+ - **`__STDCPP_FLOAT64_T__`**
68
+
69
+ Defined as the integer literal `1` if and only if the implementation
70
+ supports the ISO/IEC/IEEE 60559 floating-point interchange format
71
+ binary64 as an extended floating-point type.
72
+
73
+ - **`__STDCPP_FLOAT128_T__`**
74
+
75
+ Defined as the integer literal `1` if and only if the implementation
76
+ supports the ISO/IEC/IEEE 60559 floating-point interchange format
77
+ binary128 as an extended floating-point type.
78
+
79
+ - **`__STDCPP_BFLOAT16_T__`**
80
+
81
+ Defined as the integer literal `1` if and only if the implementation
82
+ supports an extended floating-point type with the properties of the
83
+ \*typedef-name\* `std::bfloat16_t` as described in
84
+ [[basic.extended.fp]].
85
+
86
  - **`__TIME__`**
87
 
88
  The time of translation of the source file: a character string literal
89
  of the form `"hh:mm:ss"` as in the time generated by the `asctime`
90
  function. If the time of translation is not available, an
91
  *implementation-defined* valid time shall be supplied.
92
 
 
 
 
 
 
 
 
 
93
  **Table: Feature-test macros** <a id="cpp.predefined.ft">[cpp.predefined.ft]</a>
94
 
95
  | Macro name | Value |
96
  | --------------------------------------- | --------- |
97
  | `__cpp_aggregate_bases` | `201603L` |
98
  | `__cpp_aggregate_nsdmi` | `201304L` |
99
  | `__cpp_aggregate_paren_init` | `201902L` |
100
  | `__cpp_alias_templates` | `200704L` |
101
  | `__cpp_aligned_new` | `201606L` |
102
  | `__cpp_attributes` | `200809L` |
103
+ | `__cpp_auto_cast` | `202110L` |
104
  | `__cpp_binary_literals` | `201304L` |
105
  | `__cpp_capture_star_this` | `201603L` |
106
+ | `__cpp_char8_t` | `202207L` |
107
+ | `__cpp_concepts` | `202002L` |
108
  | `__cpp_conditional_explicit` | `201806L` |
109
+ | `__cpp_constexpr` | `202211L` |
110
  | `__cpp_constexpr_dynamic_alloc` | `201907L` |
111
  | `__cpp_constexpr_in_decltype` | `201711L` |
112
+ | `__cpp_consteval` | `202211L` |
113
  | `__cpp_constinit` | `201907L` |
114
  | `__cpp_decltype` | `200707L` |
115
  | `__cpp_decltype_auto` | `201304L` |
116
  | `__cpp_deduction_guides` | `201907L` |
117
  | `__cpp_delegating_constructors` | `200604L` |
118
  | `__cpp_designated_initializers` | `201707L` |
119
  | `__cpp_enumerator_attributes` | `201411L` |
120
+ | `__cpp_explicit_this_parameter` | `202110L` |
121
  | `__cpp_fold_expressions` | `201603L` |
122
  | `__cpp_generic_lambdas` | `201707L` |
123
  | `__cpp_guaranteed_copy_elision` | `201606L` |
124
  | `__cpp_hex_float` | `201603L` |
125
+ | `__cpp_if_consteval` | `202106L` |
126
  | `__cpp_if_constexpr` | `201606L` |
127
  | `__cpp_impl_coroutine` | `201902L` |
128
  | `__cpp_impl_destroying_delete` | `201806L` |
129
  | `__cpp_impl_three_way_comparison` | `201907L` |
130
+ | `__cpp_implicit_move` | `202207L` |
131
  | `__cpp_inheriting_constructors` | `201511L` |
132
  | `__cpp_init_captures` | `201803L` |
133
  | `__cpp_initializer_lists` | `200806L` |
134
  | `__cpp_inline_variables` | `201606L` |
135
  | `__cpp_lambdas` | `200907L` |
136
  | `__cpp_modules` | `201907L` |
137
+ | `__cpp_multidimensional_subscript` | `202211L` |
138
+ | `__cpp_named_character_escapes` | `202207L` |
139
  | `__cpp_namespace_attributes` | `201411L` |
140
  | `__cpp_noexcept_function_type` | `201510L` |
141
  | `__cpp_nontype_template_args` | `201911L` |
142
  | `__cpp_nontype_template_parameter_auto` | `201606L` |
143
  | `__cpp_nsdmi` | `200809L` |
144
+ | `__cpp_range_based_for` | `202211L` |
145
  | `__cpp_raw_strings` | `200710L` |
146
  | `__cpp_ref_qualifiers` | `200710L` |
147
  | `__cpp_return_type_deduction` | `201304L` |
148
  | `__cpp_rvalue_references` | `200610L` |
149
+ | `__cpp_size_t_suffix` | `202011L` |
150
  | `__cpp_sized_deallocation` | `201309L` |
151
  | `__cpp_static_assert` | `201411L` |
152
+ | `__cpp_static_call_operator` | `202207L` |
153
  | `__cpp_structured_bindings` | `201606L` |
154
  | `__cpp_template_template_args` | `201611L` |
155
  | `__cpp_threadsafe_static_init` | `200806L` |
156
  | `__cpp_unicode_characters` | `200704L` |
157
  | `__cpp_unicode_literals` | `200710L` |
 
182
  Whether \_\_STDC_VERSION\_\_ is predefined and if so, what its value is,
183
  are *implementation-defined*.
184
 
185
  - **`__STDC_ISO_10646__`**
186
 
187
+ An integer literal of the form `yyyymmL` (for example, `199712L`).
188
+ Whether \_\_STDC_ISO_10646\_\_ is predefined and if so, what its value
189
+ is, are *implementation-defined*.
 
 
 
 
 
 
 
 
 
190
 
191
  - **`__STDCPP_THREADS__`**
192
 
193
  Defined, and has the value integer literal 1, if and only if a program
194
  can have more than one thread of execution [[intro.multithread]].