The removal of trigraphs makes it impossible for processing of C source code in code pages with variant code points for characters in the basic character set in a guaranteed deterministic way for all programs.
Add to the end of 5.1.1.2#1:
Trigraph sequences are replaced by corresponding single-character internal representations.
Add in a new section, 5.2.1.1 Trigraph sequences with the following body:
Before any other processing takes place, each occurrence of one of the following sequences of three characters (called trigraph sequences)17) is replaced with the corresponding single character.
??= # ??( [ ??/ \
??) ] ??’ ^ ??< {
??! | ??> } ??- ~
No other trigraph sequences exist. Each ? that does not begin one of the trigraphs listed above is not changed.
This comment might be a clerical error. Subclause 5.1.1.2 does not exist in DIS 14882 (the C++ standard) at all, but it does exist in DIS 9899 (the C standard).
The removal of trigraphs makes it impossible for processing of C source code in code pages with variant code points for characters in the basic character set in a guaranteed deterministic way for all programs.
Add to the end of 5.1.1.2#1: Trigraph sequences are replaced by corresponding single-character internal representations. Add in a new section, 5.2.1.1 Trigraph sequences with the following body: Before any other processing takes place, each occurrence of one of the following sequences of three characters (called trigraph sequences)17) is replaced with the corresponding single character.
??= # ??( [ ??/ \ ??) ] ??’ ^ ??< { ??! | ??> } ??- ~ No other trigraph sequences exist. Each ? that does not begin one of the trigraphs listed above is not changed.