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*:
|
| 10 |
-
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
|
|
|
| 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
|
| 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` | `
|
| 75 |
-
| `__cpp_concepts` | `
|
| 76 |
| `__cpp_conditional_explicit` | `201806L` |
|
| 77 |
-
| `__cpp_constexpr` | `
|
| 78 |
| `__cpp_constexpr_dynamic_alloc` | `201907L` |
|
| 79 |
| `__cpp_constexpr_in_decltype` | `201711L` |
|
| 80 |
-
| `__cpp_consteval` | `
|
| 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` | `
|
| 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`).
|
| 149 |
-
|
| 150 |
-
|
| 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]].
|