From Jason Turner

[cpp.stringize]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpokq0msm4/{from.md → to.md} +17 -14
tmp/tmpokq0msm4/{from.md → to.md} RENAMED
@@ -6,20 +6,23 @@ in the replacement list.
6
 
7
  A *character string literal* is a *string-literal* with no prefix. If,
8
  in the replacement list, a parameter is immediately preceded by a `#`
9
  preprocessing token, both are replaced by a single character string
10
  literal preprocessing token that contains the spelling of the
11
- preprocessing token sequence for the corresponding argument. Each
12
- occurrence of white space between the argument’s preprocessing tokens
13
- becomes a single space character in the character string literal. White
14
- space before the first preprocessing token and after the last
15
- preprocessing token comprising the argument is deleted. Otherwise, the
16
- original spelling of each preprocessing token in the argument is
17
- retained in the character string literal, except for special handling
18
- for producing the spelling of string literals and character literals: a
19
- `\` character is inserted before each `"` and `\` character of a
20
- character literal or string literal (including the delimiting `"`
21
- characters). If the replacement that results is not a valid character
22
- string literal, the behavior is undefined. The character string literal
23
- corresponding to an empty argument is `""`. The order of evaluation of
24
- `#` and `##` operators is unspecified.
 
 
 
25
 
 
6
 
7
  A *character string literal* is a *string-literal* with no prefix. If,
8
  in the replacement list, a parameter is immediately preceded by a `#`
9
  preprocessing token, both are replaced by a single character string
10
  literal preprocessing token that contains the spelling of the
11
+ preprocessing token sequence for the corresponding argument (excluding
12
+ placemarker tokens). Let the *stringizing argument* be the preprocessing
13
+ token sequence for the corresponding argument with placemarker tokens
14
+ removed. Each occurrence of white space between the stringizing
15
+ argument’s preprocessing tokens becomes a single space character in the
16
+ character string literal. White space before the first preprocessing
17
+ token and after the last preprocessing token comprising the stringizing
18
+ argument is deleted. Otherwise, the original spelling of each
19
+ preprocessing token in the stringizing argument is retained in the
20
+ character string literal, except for special handling for producing the
21
+ spelling of *string-literal*s and *character-literal*s: a `\` character
22
+ is inserted before each `"` and `\` character of a *character-literal*
23
+ or *string-literal* (including the delimiting `"` characters). If the
24
+ replacement that results is not a valid character string literal, the
25
+ behavior is undefined. The character string literal corresponding to an
26
+ empty stringizing argument is `""`. The order of evaluation of `#` and
27
+ `##` operators is unspecified.
28