From Jason Turner

[diff.cpp03.lex]

Diff to HTML by rtfpessoa

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 tokens,
30
- so 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
 
 
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