[lex.phases]
Change: Removal of trigraph support as a required feature.
Rationale: Prevents accidental uses of trigraphs in non-raw string literals and comments.
Effect on original feature:
Valid C++ 2014 code that uses trigraphs may not be valid or may have different
semantics in this International Standard. Implementations may choose to
translate trigraphs as specified in C++ 2014 if they appear outside of a raw
string literal, as part of the implementation-defined mapping from physical source file characters to
the basic source character set.
[lex.ppnumber]
Change: pp-number can contain p sign and
P sign.
Rationale: Necessary to enable hexadecimal floating literals.
Effect on original feature:
Valid C++ 2014 code may fail to compile or produce different results in
this International Standard. Specifically, character sequences like 0p+0
and 0e1_p+0 are three separate tokens each in C++ 2014, but one single token
in this International Standard.
#define F(a) b ## a
int b0p = F(0p+0); // ill-formed; equivalent to “int b0p = b0p + 0;” in C++ 2014