From Jason Turner

[diff.cpp14.lex]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp9651oabe/{from.md → to.md} +24 -0
tmp/tmp9651oabe/{from.md → to.md} RENAMED
@@ -0,0 +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
+