From Jason Turner

[diff.cpp14.lex]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpyr08axfs/{from.md → to.md} +17 -17
tmp/tmpyr08axfs/{from.md → to.md} RENAMED
@@ -1,24 +1,24 @@
1
- ### Clause [[lex]]: lexical conventions <a id="diff.cpp14.lex">[[diff.cpp14.lex]]</a>
2
 
3
- [[lex.phases]] **Change:** Removal of trigraph support as a required
4
- feature. **Rationale:** Prevents accidental uses of trigraphs in non-raw
5
- string literals and comments. **Effect on original feature:** Valid
6
- C++14code that uses trigraphs may not be valid or may have different
7
- semantics in this International Standard. Implementations may choose to
8
- translate trigraphs as specified in C++14if they appear outside of a raw
9
- string literal, as part of the *implementation-defined* mapping from
10
- physical source file characters to the basic source character set.
11
 
12
- [[lex.ppnumber]] **Change:** *pp-number* can contain `p` *sign* and `P`
13
- *sign*. **Rationale:** Necessary to enable hexadecimal floating
14
- literals. **Effect on original feature:** Valid C++14code may fail to
15
- compile or produce different results in this International Standard.
16
- Specifically, character sequences like `0p+0` and `0e1_p+0` are three
17
- separate tokens each in C++14, but one single token in this
18
- International Standard.
19
 
20
  ``` cpp
21
  #define F(a) b ## a
22
- int b0p = F(0p+0); // ill-formed; equivalent to ``int b0p = b0p + 0;'' in C++14
23
  ```
24
 
 
1
+ ### [[lex]]: lexical conventions <a id="diff.cpp14.lex">[[diff.cpp14.lex]]</a>
2
 
3
+ **Change:** Removal of trigraph support as a required feature.
4
+ **Rationale:** Prevents accidental uses of trigraphs in non-raw string
5
+ literals and comments. **Effect on original feature:** Valid C++14 code
6
+ that uses trigraphs may not be valid or may have different semantics in
7
+ this International Standard. Implementations may choose to translate
8
+ trigraphs as specified in C++14 if they appear outside of a raw string
9
+ literal, as part of the *implementation-defined* mapping from physical
10
+ source file characters to the basic source character set.
11
 
12
+ **Change:** *pp-number* can contain `p` *sign* and `P` *sign*.
13
+ **Rationale:** Necessary to enable
14
+ *hexadecimal-floating-point-literal*s. **Effect on original feature:**
15
+ Valid C++14 code may fail to compile or produce different results in
16
+ this International Standard. Specifically, character sequences like
17
+ `0p+0` and `0e1_p+0` are three separate tokens each in C++14, but one
18
+ single token in this International Standard. For example:
19
 
20
  ``` cpp
21
  #define F(a) b ## a
22
+ int b0p = F(0p+0); // ill-formed; equivalent to ``int b0p = b0p + 0;'' in C++14{}
23
  ```
24