<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 248</TITLE>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<STYLE TYPE="text/css">
  INS { text-decoration:none; font-weight:bold; background-color:#A0FFA0 }
  .INS { text-decoration:none; background-color:#D0FFD0 }
  DEL { text-decoration:line-through; background-color:#FFA0A0 }
  .DEL { text-decoration:line-through; background-color: #FFD0D0 }
  @media (prefers-color-scheme: dark) {
    HTML { background-color:#202020; color:#f0f0f0; }
    A { color:#5bc0ff; }
    A:visited { color:#c6a8ff; }
    A:hover, a:focus { color:#afd7ff; }
    INS { background-color:#033a16; color:#aff5b4; }
    .INS { background-color: #033a16; }
    DEL { background-color:#67060c; color:#ffdcd7; }
    .DEL { background-color:#67060c; }
  }
  SPAN.cmnt { font-family:Times; font-style:italic }
</STYLE>
</HEAD>
<BODY>
<P><EM>This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21
  Core Issues List revision 118b.
  See http://www.open-std.org/jtc1/sc22/wg21/ for the official
  list.</EM></P>
<P>2025-09-28</P>
<HR>
<A NAME="248"></A><H4>248.
  
Identifier characters
</H4>
<B>Section: </B>_N2691_.E&#160; [<A href="https://wg21.link/extendid">extendid</A>]
 &#160;&#160;&#160;

 <B>Status: </B>C++11
 &#160;&#160;&#160;

 <B>Submitter: </B>John Spicer
 &#160;&#160;&#160;

 <B>Date: </B>6 Oct 2000<BR>


<P>[Voted into the WP at the November, 2010 meeting as paper N3146.]</P>



<P>The list of identifier characters specified in the C++ standard
annex _N2691_.E [<A href="https://wg21.link/extendid">extendid</A>] and the C99 standard annex D are
different.  The C99 standard includes more characters.</P>

<P>The C++ standard says that the characters are from "ISO/IEC PDTR
10176" while the C99 standard says "ISO/IEC TR 10176".  I'm guessing
that the PDTR is an earlier draft of the TR.</P>

<P>Should the list in the C++ standard be updated?</P>

<P>
<U>Tom Plum</U>: In my opinion, the "identifier character" issue
has not been resolved with certainty within SC22.</P>

<P>One critical difference in C99 was the decision to allow a compiler
to accept more characters than are given in the annex.  This allows
for future expansion.</P>

<P>The broader issue concerns the venue in which the "identifier
character" issue will receive ongoing resolution.</P>

<P><B>Notes from 10/00 meeting:</B></P>

<P>The core language working group expressed a strong preference
(13/0/5 in favor/opposed/abstaining) that the list of identifier
characters should be extensible, as is the case in C99.  However,
the fact that this topic is under active discussion by other bodies
was deemed sufficient reason to defer any changes to the C++
specification until the situation is more stable.</P>

<P><B>Notes from October, 2005 meeting:</B></P>

<P>The working group expressed interest in the kind of approach taken by
<A href="http://www.w3.org/TR/2004/REC-xml11-20040204/#NT-NameStartChar">
XML 1.1</A>, in which the definition of an identifier character is done
by excluding large ranges of the Unicode character set and accepting any
character outside those ranges, rather than by affirmatively designating
each identifier character in each language.  As noted above,
consideration of this issue was previously deferred pending other
related standardization efforts.  Clark Nelson will investigate whether
these have reached a point at which progress on this issue in C++ is now
possible.</P>

<P><B>Additional note (May, 2008):</B></P>

<P>
<A HREF="663.html">Issue 663</A> also deals with this
appendix, and the proposed resolution there is to update the
table to reflect the newest available technical report, ISO/IEC
TR 10176:2003.  That resolution might be seen as sufficient for
this issue, as well.  However, that approach does not address
several of the concerns mentioned in the discussion above:
coordination with WG14, the extensibility of the list of
identifiers, the alternative approach used in the XML
specification, etc.</P>

<BR><BR>
</BODY>
</HTML>
