tmp/tmpimbimx7q/{from.md → to.md}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
### Clause [[lex]]: lexical conventions <a id="diff.cpp03.lex">[[diff.cpp03.lex]]</a>
|
| 2 |
|
| 3 |
-
[[lex.pptoken]] **Change:** New kinds of string literals **Rationale:**
|
| 4 |
Required for new features. **Effect on original feature:** Valid
|
| 5 |
C++03code may fail to compile or produce different results in this
|
| 6 |
International Standard. Specifically, macros named `R`, `u8`, `u8R`,
|
| 7 |
`u`, `uR`, `U`, `UR`, or `LR` will not be expanded when adjacent to a
|
| 8 |
string literal but will be interpreted as part of the string literal.
|
|
@@ -11,11 +11,11 @@ For example,
|
|
| 11 |
``` cpp
|
| 12 |
#define u8 "abc"
|
| 13 |
const char* s = u8"def"; // Previously "abcdef", now "def"
|
| 14 |
```
|
| 15 |
|
| 16 |
-
[[lex.pptoken]] **Change:** User-defined literal string support
|
| 17 |
**Rationale:** Required for new features. **Effect on original
|
| 18 |
feature:** Valid C++03code may fail to compile or produce different
|
| 19 |
results in this International Standard, as the following example
|
| 20 |
illustrates.
|
| 21 |
|
|
@@ -24,20 +24,20 @@ illustrates.
|
|
| 24 |
"hello"_x // #1
|
| 25 |
```
|
| 26 |
|
| 27 |
Previously, \#1 would have consisted of two separate preprocessing
|
| 28 |
tokens and the macro `_x` would have been expanded. In this
|
| 29 |
-
International Standard, \#1 consists of a single preprocessing
|
| 30 |
-
|
| 31 |
|
| 32 |
-
[[lex.key]] **Change:** New keywords **Rationale:** Required for new
|
| 33 |
features. **Effect on original feature:** Added to Table
|
| 34 |
[[tab:keywords]], the following identifiers are new keywords: `alignas`,
|
| 35 |
`alignof`, `char16_t`, `char32_t`, `constexpr`, `decltype`, `noexcept`,
|
| 36 |
`nullptr`, `static_assert`, and `thread_local`. Valid C++03code using
|
| 37 |
these identifiers is invalid in this International Standard.
|
| 38 |
|
| 39 |
-
[[lex.icon]] **Change:** Type of integer literals **Rationale:** C99
|
| 40 |
compatibility. **Effect on original feature:** Certain integer literals
|
| 41 |
larger than can be represented by `long` could change from an unsigned
|
| 42 |
integer type to `signed long long`.
|
| 43 |
|
|
|
|
| 1 |
### Clause [[lex]]: lexical conventions <a id="diff.cpp03.lex">[[diff.cpp03.lex]]</a>
|
| 2 |
|
| 3 |
+
[[lex.pptoken]] **Change:** New kinds of string literals. **Rationale:**
|
| 4 |
Required for new features. **Effect on original feature:** Valid
|
| 5 |
C++03code may fail to compile or produce different results in this
|
| 6 |
International Standard. Specifically, macros named `R`, `u8`, `u8R`,
|
| 7 |
`u`, `uR`, `U`, `UR`, or `LR` will not be expanded when adjacent to a
|
| 8 |
string literal but will be interpreted as part of the string literal.
|
|
|
|
| 11 |
``` cpp
|
| 12 |
#define u8 "abc"
|
| 13 |
const char* s = u8"def"; // Previously "abcdef", now "def"
|
| 14 |
```
|
| 15 |
|
| 16 |
+
[[lex.pptoken]] **Change:** User-defined literal string support.
|
| 17 |
**Rationale:** Required for new features. **Effect on original
|
| 18 |
feature:** Valid C++03code may fail to compile or produce different
|
| 19 |
results in this International Standard, as the following example
|
| 20 |
illustrates.
|
| 21 |
|
|
|
|
| 24 |
"hello"_x // #1
|
| 25 |
```
|
| 26 |
|
| 27 |
Previously, \#1 would have consisted of two separate preprocessing
|
| 28 |
tokens and the macro `_x` would have been expanded. In this
|
| 29 |
+
International Standard, \#1 consists of a single preprocessing token, so
|
| 30 |
+
the macro is not expanded.
|
| 31 |
|
| 32 |
+
[[lex.key]] **Change:** New keywords. **Rationale:** Required for new
|
| 33 |
features. **Effect on original feature:** Added to Table
|
| 34 |
[[tab:keywords]], the following identifiers are new keywords: `alignas`,
|
| 35 |
`alignof`, `char16_t`, `char32_t`, `constexpr`, `decltype`, `noexcept`,
|
| 36 |
`nullptr`, `static_assert`, and `thread_local`. Valid C++03code using
|
| 37 |
these identifiers is invalid in this International Standard.
|
| 38 |
|
| 39 |
+
[[lex.icon]] **Change:** Type of integer literals. **Rationale:** C99
|
| 40 |
compatibility. **Effect on original feature:** Certain integer literals
|
| 41 |
larger than can be represented by `long` could change from an unsigned
|
| 42 |
integer type to `signed long long`.
|
| 43 |
|