<div dir="ltr"><div>-   Document number: DnnnnR0</div><div>-   Date:  2019-01-08</div><div>-   Author: Steve Downey &lt;<a href="mailto:sdowney2@bloomberg.net">sdowney2@bloomberg.net</a>&gt;</div><div>-   Audience: SG16, WG21</div><div><br></div><div>&lt;div class=&quot;ABSTRACT&quot;&gt;</div><div>Abstract: Guidelines for when a WG21 proposal should be reviewed by SG16, the text and Unicode study group.</div><div><br></div><div>&lt;/div&gt;</div><div><br></div><div><br></div><div># Introduction</div><div><br></div><div>This paper provides some guidelines for when WG21 papers should be forwarded to study group 16 for review. The focus of study group 16 is text processing, with a specific focus on Unicode. Study group 16 will also review papers for issues with text encoding, text formatting, and IO.</div><div><br></div><div><br></div><div># Unicode Facilities</div><div><br></div><div>Any proposal that implements a general purpose Unicode text type, a view on Unicode text, or implements any of the Unicode standard facilities or algorithms should of course be forwarded to SG16. SG16 is currently reviewing proposals for std::text and std::text\_view, so anything with those names should also be sent to the group.</div><div><br></div><div>Any proposal that mentions Unicode may be sent for review, if just to get clarification of what is meant in context. We currently live in a multi-character set and encoding world, and in general it is difficult to require or specify that general text follows a particular encoding. If existing external standards, such as XML, require Unicode or a particular encoding, following those standards doesn&#39;t need particular review from SG16.</div><div><br></div><div>Using existing language and library facilities does not require review. For example, using std::string, std::string\_view, etc. An exception would be using char16\_t, char32\_t, or char8\_t, but only because those imply, or should imply, Unicode text.</div><div><br></div><div><br></div><div># Text Encoding</div><div><br></div><div>Any proposal that transcodes text from host, source, execution, or other text encoding, to any of the Unicode text encodings, such as UTF-8, should be sent to Study Group 16. Any proposal that states that text is encoded in a particular specified encoding, such as UTF-18, or CP-1252, should be sent to Study Group 16, where the group can make recommendations about avoiding that, and the unfortunate reality of supported systems where this can not be done.</div><div><br></div><div>Any proposals for controlling or changing source or execution encoding should be sent to Study Group 16.</div><div><br></div><div>Proposals merely asserting that text is in the execution encoding or translated from the source encoding as currently specified do not need review.</div><div><br></div><div>Study Group 16 would like to be made aware of proposals using Unicode encoded literals, but in general would not need to review them.</div><div><br></div><div><br></div><div># Formatting</div><div><br></div><div>Study Group has already been involved in reviewing std::fmt, and will continue as Unicode faciliities are added.</div><div><br></div><div><br></div><div># IO</div><div><br></div><div>New text input and output proposals should be referred to Study Group 16 to the extent that they expect to deal with text encoding, or want to require a particular encoding. Recent examples include command line arguments, environment, and debugging data.</div><div><br></div><div>Using existing input/output facilities, such as iostreams or C-style IO does not need review.</div><div><br></div></div>