This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-11-11


932. UCNs in closing delimiters of raw string literals

Section: 5.13.5  [lex.string]     Status: CD2     Submitter: Alisdair Meredith     Date: 7 July, 2009

[Voted into WP at March, 2010 meeting.]

Since members of the basic source character set can be written inside a string using a universal character name, it is not clear whether a UCN that represents ']' or one of the characters in the terminating d-char-sequence should be interpreted as that character or as an attempt to “escape” that character and prevent its interpretation as part of the terminating sequence of a raw character string.

Notes from the July, 2009 meeting:

The CWG supported a resolution in which the d-char-sequence of a raw string literal is considered to be outside the literal and thus, by 5.3 [lex.charset] paragraph 2, could not contain a UCN designating a member of the basic source character set.

Proposed resolution (October, 2009):

Change 5.3 [lex.charset] paragraph 2 as follows:

Additionally, if the hexadecimal value for a universal-character-name outside the c-char-sequence, s-char-sequence, or r-char-sequence of a character or string literal corresponds to a control character (in either of the ranges 0x00-0x1F or 0x7F-0x9F, both inclusive) or to a character in the basic source character set, the program is ill-formed.