Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r51558 - sandbox/committee/LWG
From: bdawes_at_[hidden]
Date: 2009-03-03 08:12:07


Author: bemandawes
Date: 2009-03-03 08:12:03 EST (Tue, 03 Mar 2009)
New Revision: 51558
URL: http://svn.boost.org/trac/boost/changeset/51558

Log:
Initial commit. This is the OpenOffice Writer conversion to HTML of the unified comment .doc file provided by Barry Hedquist
Added:
   sandbox/committee/LWG/0xCD1_Comments.html (contents, props changed)

Added: sandbox/committee/LWG/0xCD1_Comments.html
==============================================================================
--- (empty file)
+++ sandbox/committee/LWG/0xCD1_Comments.html 2009-03-03 08:12:03 EST (Tue, 03 Mar 2009)
@@ -0,0 +1,24470 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+ <TITLE>CommentsOn</TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Win32)">
+ <META NAME="AUTHOR" CONTENT="dow">
+ <META NAME="CREATED" CONTENT="20090221;19590000">
+ <META NAME="CHANGEDBY" CONTENT=" Barry E Hedquist">
+ <META NAME="CHANGED" CONTENT="20090222;18460000">
+ <META NAME="DESCRIPTION" CONTENT="FORM (ISO)">
+ <STYLE TYPE="text/css">
+ <!--
+ @page { size: 11.69in 8.27in; margin-right: 0.59in }
+ P { margin-bottom: 0.08in; direction: ltr; color: #000000; text-align: left; widows: 2; orphans: 2 }
+ P.western { font-family: "Arial", sans-serif; font-size: 10pt; so-language: en-US }
+ P.cjk { font-family: "Times New Roman", serif; font-size: 10pt }
+ P.ctl { font-family: "Arial", sans-serif; font-size: 10pt; so-language: ar-SA }
+ TT { font-family: "DejaVu Sans Mono", "Consolas", monospace }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-US" TEXT="#000000" DIR="LTR">
+<DIV TYPE=HEADER>
+ <TABLE WIDTH=1035 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=564>
+ <COL WIDTH=139>
+ <COL WIDTH=288>
+ <TR VALIGN=TOP>
+ <TD WIDTH=564>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><FONT COLOR="#ff0000"><FONT SIZE=1 STYLE="font-size: 8pt"><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 11pt"><B>C++0X,
+ CD 1, NB Comments</B></FONT></FONT></FONT></FONT></FONT></P>
+ </TD>
+ <TD WIDTH=139>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Date:
+ 21 Feb 2009</FONT></P>
+ </TD>
+ <TD WIDTH=288>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Document:<FONT SIZE=2><B>
+ SC22 N4411, ISO/IEC CD 14882</B></FONT></FONT></P>
+ </TD>
+ </TR>
+ </TABLE>
+ <P LANG="en-GB" ALIGN=JUSTIFY STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.03in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt">7</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=1 STYLE="font-size: 8pt"><B>MB</B></FONT><SUP><FONT SIZE=1 STYLE="font-size: 6pt"><B>1</B></FONT></SUP><FONT SIZE=1 STYLE="font-size: 8pt"><B><BR></B></FONT></FONT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Clause
+ No./<BR>Subclause No./<BR>Annex<BR></B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(e.g.
+ 3.1)</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Paragraph/<BR>Figure/Table/Note<BR></B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(e.g.
+ Table 1)</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=1 STYLE="font-size: 8pt"><B>Type
+ of com-ment</B></FONT><SUP><FONT SIZE=1 STYLE="font-size: 6pt"><B>2</B></FONT></SUP></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt"><B>Comment (justification for
+ change) by the MB</B></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt"><B>Proposed change by the MB</B></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; margin-bottom: 0.04in; page-break-inside: avoid">
+ <FONT SIZE=1 STYLE="font-size: 8pt"><B>Disposition</B></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=CENTER STYLE="margin-top: 0.07in; page-break-inside: avoid">
+ <BR>
+ </P>
+ </TD>
+ </TR>
+ </TABLE>
+ <P LANG="en-GB" ALIGN=JUSTIFY STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P LANG="en-GB" ALIGN=JUSTIFY STYLE="margin-bottom: 0.16in; line-height: 0.01in">
+ <BR>
+ </P>
+</DIV>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0 STYLE="page-break-before: always">
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">General
+ Comment</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Interactions
+ between several new features appear obscure, and very few examples
+ are offered to guide understanding of the formal text on
+ interaction between these new additions.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ worry about the complexity of the programming model so created.</FONT></FONT></P>
+ <P STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1-16</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge/te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The active issues identified
+ in WG21 N2803, C++ Standard Core Language Active Issues, must be
+ addressed and appropriate action taken.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT COLOR="#000080"><U>http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Appropriate action would
+ include making changes to the CD, identifying an issue as not
+ requiring a change to the CD, or deferring the issue to a later
+ point in time.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">CA-1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ are quite a number of defects for the current CD recorded in
+ SC22/WG21-N2803 and N2806</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ these comments and update ISO/IEC CD 14882 accordingly</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1
+ through 16</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ge/te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-1
+ Consider addressing a significant part of the unresolved core
+ language issues presented in WG21 document N2791 &quot;C++
+ Standard Core Language Active Issues, Revision 59&quot;, available
+ at
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
+ .</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">CH
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">all</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ issues on the issues lists shall be addressed before the standard
+ becomes final.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">all</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Latin
+ abbreviations are presented incorrectly.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Italicize
+ all Latin abbreviations, append commas after each occurrence of
+ <I>i.e</I>. and <I>e.g.</I>, and remove extraneous space after
+ each such abbreviation.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1
+ [intro.scope]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">C++
+ is split at the end of line.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a bad line break in &quot;C++&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">List
+ of additional facilities over C has been extended with this
+ standard, so should be mentioned in the introductory material.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the following to the list in 1.1p2: atomic operations concurrency
+ alignment control user-defined literals attributes </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.2
+ [intro.refs]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Is
+ the lack of reference to ISO/CEI 9899/AC3:2007 voluntary?</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="en-US">We
+ recommend taking the latest update to each listed standard, yet
+ the C standard is quite deliberately held back to the 1990 version
+ without comment.+</SPAN></FONT></FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ not sure ...</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ definition of an argument does not seem to cover many assumed use
+ cases, and we believe that is not intentional.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Revise
+ the definition of argument to answer question such as: Are
+ lambda-captures arguments? Are type names in a throw-spec
+ arguments? 'Argument' to casts, typeid, alignof, alignas, decltype
+ and sizeof? why in x[arg] : arg is not an agrument, but the value
+ forwarded to operator[]() is ? Does not apply to operators as
+ call-points not bounded by parenthises ? Similar for copy
+ initialization and conversion? what are Deduced template
+ 'arguments'? what are 'default arguments'? can attributes have
+ arguments? what about concepts, requires clauses and concept_map
+ instantiations? What about user-defined literals where parens are
+ not used?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ definition is essentially worthless, as it says nothing about what
+ distinguished a diagnostic message from other output messages
+ provided by the implementation</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">...
+ add something about the diagnostic message being a message issues
+ by the implementation when translating a program that violates the
+ rules of the standard. ...</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.3.4
+ [defns.dynamic.type]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;The
+ dynamic type of an rvalue expression is its static type.&quot; Is
+ this true with rvalue references?</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ wording is unclear as to whether it is the input or the
+ implementation &quot;that is not a well-formed program&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Reword
+ to clarify that it is the input that is here considered not
+ well-formed.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.3.6
+ [defns.impl.defined]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a page break between the title and the paragraph.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.3.13
+ [defns.undefined]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[intro.execution]/5
+ explicitly allows non causal undefined behaviour,</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Adding
+ it to the note outlying possible undefined behaviours.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1.3.14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Unspecified behavior does not
+ clearly state whether or not undefined behavior is permitted. (The
+ standard says that &quot;usually, the range of possible behaviors
+ is delineated&quot;, but what happens if the range is not
+ delineated? Is a crash, or worse, allowed?)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clearly
+ state whether or not Unspecified behavior includes undefined
+ behavior.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 8</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.4
+ [intro.compliance]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph as its stands seems to require that violations of the
+ ODR (which make a program ill-formed) are required to be diagnosed
+ if the program also uses an extension which defines some cases of
+ ODR.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ checklist of implementation defined behaviour (see ISO/IEC TR
+ 10176, 4.1.1p6)</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a new annex with the missing checklist</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ annex describing potential incompatibility to previous edition of
+ the standard (see ISO/IEC TR 10176, 4.1.1p9)</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a new annex with the missing documentation. See n2733(08-0243) for
+ a starting point</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"> <FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is no mention of Clause 17.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Include
+ Clause 17 among the list of Clauses that specify the Standard
+ Library.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 8</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"> <FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph omits to mention concepts and concept maps among its
+ list of entities defined in the Standard Library.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Mention
+ concepts and concept maps among the list of entities.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The syntax description does
+ not account for lines that wrap.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">10</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ term thread is used before defined.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">R</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">eference
+ 1.10 [intro.multithread].</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 11</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3 last sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ phrase &ldquo;threads of execution&rdquo; should be accompanied by
+ a reference to [intro.multithread].</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ the recommended reference.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 12</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3 first sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ memory location is not an object as the sentence claims.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ that a memory location &ldquo;holds&rdquo; an object rather than
+ that it &ldquo;is&rdquo; an object.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 13</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3 last sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is unclear what is meant by memory locations that are &quot;separate&quot;:
+ are they distinct? non-overlapping? how much &quot;separation&quot;
+ is needed?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ either a better definition of &ldquo;separate&rdquo; or reword
+ (this and subsequent paragraphs) to avoid this term.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 14</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ phrase &quot;no matter what the sizes of the intervening
+ bit-fields happen to be&quot; contradicts the claim of separation
+ &quot;by a zero-length bit-field declaration&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ the &ldquo;no matter&hellip;&rdquo; phrase, or resolve the
+ contradiction in a different way.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 15</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ struct does not &ldquo;contain&rdquo; memory locations.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Reword
+ so that a struct is &ldquo;held in&rdquo; one or more memory
+ locations.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 16</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ discussion of observable behavior in 1.9 is not consistent with
+ the addition of threads to the language. Volatile reads and
+ writes and other observable actions no longer occur in a single
+ &quot;sequence&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove/replace
+ various occurrences of &quot;sequence&quot; in 1.9.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 8</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">With
+ parallel execution there is no longer the idea of a single
+ execution sequence for a program. Instead, a program may be
+ considered a set of exectution sequences.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Update
+ first sentance as: A conforming implementation executing a
+ well-formed program shall produce the same observable behavior as
+ one of the possible SETS OF execution sequences of the
+ corresponding instance of the abstract machine CONFORMING TO THE
+ MEMORY MODEL (1.10) with the same program and the same input.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Does
+ the term 'sequence' imply all reads/writes through volatile memory
+ much be serialized, and cannot occur in parallel on truly parallel
+ hardware? Allow for multiple concurrent sequences where each
+ sequence is constrained by this observable behaviour rule, and
+ multiple sequences are constrained by the memory model and
+ happens-before relationships defined in 1.10</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ 'sequence' with 'sequences'.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 9</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.9
+ [intro.execution]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">16</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ example use int *v while the other examples seems to use notation
+ like int* v.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 17</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ definition of &ldquo;thread&rdquo; is poor, and assumes the user
+ already knows what multi-threaded means (probably true!). In
+ particular, it does not deal adequately with the concept that all
+ threads share the same address space.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ first sentence of para 1 as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Under
+ a hosted implementation, a C</FONT><FONT SIZE=2 STYLE="font-size: 9pt">++
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"> program can have more
+ than one </FONT><FONT SIZE=2 STYLE="font-size: 9pt">thread of
+ execution</FONT><FONT SIZE=2 STYLE="font-size: 9pt"> (a.k.a.
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">thread</FONT><FONT SIZE=2 STYLE="font-size: 9pt">)
+ running concurrently.</FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ Each thread is a single flow of control within a program.
+ Anything whose address may be determined by a thread, including
+ but not limited to static objects, storage obtained via new or by
+ any dynamic allocator, directly addressable storage obtained
+ through implementation-defined functions, and automatic variables,
+ are accessible to all threads in the same program.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 9</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2,
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Undefined
+ behaviour is a drastic way to silently ignore minor issues. The
+ cases in this paragraph could be easily defined. In this case opt
+ for conditionally supported behaviour, which mandates a diagnostic
+ if the compiler is not prepared to handle the syntax consistently.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ undefined behaviour with conditionally supported behavior.
+ Conditional behaviour may be implementation defined, although
+ suggest there is a reasonable default in each case. For creating a
+ universal-character name, splice text to create a
+ universal-character. In the case of a file ending without a
+ newline, treat as if the newline was implictly added, with an
+ empty line to follow if the last character was a back-slash.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK
+ 10</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Implementation
+ defined seems unnecessarily burdensome for negligible gain. I am
+ yet to see code that depended on whether non-empty sequences of
+ whitespace were concatenated. Better left unspecified.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">How
+ the compiler treats non-empty sequences of whitespace should be
+ left unspecified, rather than implementation-defined.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 10</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.1
+ [lex.phases]/5 and 2.2 [lex.charset]/3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[defns.multibyte]
+ &quot;the extended character set.&quot;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[lex.charset]/3
+ cited below implies that there is an extended character set per
+ locale.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[lex.phases]/5
+ &quot;Each [...] universal-character-name [...] is converted to
+ the corresponding member of the execution character set&quot;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[lex.charset]/3
+ &quot;The values of the members of the execution character sets
+ are implementation defined, and any additional members are
+ locale-specific.&quot;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Together
+ they seem to imply that what is locale-specific is if a value is
+ valid or not for the current locale, not the representation of a
+ given universal character.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ is not the behaviour of at least some compilers I've access to
+ which are allowing different codes for the same abstract character
+ in different locale. During phase 5, they are using an
+ implementation defined char set.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Trigraphs
+ are a complicated solution to an old problem, that cause more
+ problems than they solve in the modern environment. Unexpected
+ trigraphs in string literals and occasionally in comments can be
+ very confusing for the non-expert.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Deprecate
+ the whole of 2.3 and move it to appendix D.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.4,
+ 2.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ undefined behaviour in token concatenation is worrying and we
+ believe hard to justify. An implementation should either support
+ this in a defined way, or issue a diagnosic. Documenting existing
+ practice should not break existing implementations, although
+ unconditionally requiring a diagnostic would lead to more portable
+ programs.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ undefined behaviour with conditionally supported behaviour with
+ implementation defined semantics.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 18</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph begins with an empty line.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ the empty line.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 11</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.4
+ [lex.pptokens]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ are spurious empty lines.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 12</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.5
+ [lex.digraph] and 2.11 [lex.key]/2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ alternative representations are reserved as such even in
+ attribute. Is that what is wanted?</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="fi-FI" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ eq, for spelling out == in order to distinguish it from the
+ assignment operator.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ eq-keyword.doc, eq-keyword.ppt</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">13</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ text is confusing in isolation, as it implies pp-numbers do not
+ have a value in translation phase 4 when evaluating #if
+ preprocessor expressions.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a note with a cross-refernce to 16.1 that a pp-number may briefly
+ acquire a value during translation phase 4 while evaluating #if
+ expressions.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.11</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">table
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ table is nearly sorted, but not quite. It was sorted in previous
+ versions of the standard.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Sort
+ the table.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.11</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Keywords
+ in the table are listed disorderly. Also, a part of a frame of the
+ table is not drawn.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Sort
+ it in alphabetical order. Complete the table frame.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 19</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.13.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 5, rows &ldquo;l or L&rdquo; and &ldquo;ll or LL&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ final entry in the last column (&ldquo;unsigned long int&rdquo;)
+ is incorrect.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the incorrect entries by &ldquo;unsigned long long int&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 20</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2.13.1,
+ 2.13.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Long
+ strings of digits in literals are a continuing problem in the
+ production and maintenance of programs.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Adopt
+ the 1983 technology of Ada and use underscores to separate digits.
+ </FONT><FONT COLOR="#000080"><U>http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2281.html</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">15</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.13.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Inconsistency
+ between definition of a multicharacter literal and a wide
+ character literal containing multiple c-chars.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ the term multicharacter wide literal for a wchar_t literal
+ containing multiple elements, and specify its type is integer (or
+ wider)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">16</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.13.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Not
+ immediately clear why the question mark needs escaping. A note
+ would help.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a note explaining that the ? character may need escaping to avoid
+ accidentally creating a trigraph.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Typo,</FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">R&quot;...&quot; should
+ be R&quot;[...]&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Correct
+ typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ think that the explanation of d-char-sequence is not enough.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the following.</FONT></P>
+ <OL>
+ <LI><P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in; widows: 0; orphans: 0">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the following to the
+ explanation of d-char-sequence, more easily to understand.</FONT></P>
+ </OL>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...prefix is a raw string
+ literal.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The d-char-sequence is used as
+ delimiter. </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The terminating
+ d-char-sequence of ...</FONT></P>
+ <OL START=2>
+ <LI><P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in; widows: 0; orphans: 0">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the following note that
+ there are square brackets in r-char-sequence.</FONT></P>
+ </OL>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">[Note:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.83in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">char
+ foo[] = R&rdquo;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>delimiter</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">[[a-z]
+ specifies a range which matches any lowercase letter from &quot;a&quot;
+ to &quot;z&quot;.]</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>delimiter</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&rdquo;;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">the expression statement
+ behaves exactly the same as</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.83in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">char foo[]=&quot;[a-z]
+ specifies a range which matches any lowercase letter from \&quot;a\&quot;
+ to \&quot;z\&quot;.&quot;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.69in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">- end note]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.69in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">rd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1st line of example</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo. Lack of a necessary
+ backslash in the first line of the example as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const char *p = R&quot;[a</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">b</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">c]&quot;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const char *p = R&quot;[a\</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">b</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">c]&quot;;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Correct
+ typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 21</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph, marked as a Note, contains an embedded example not
+ marked as such.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Denote
+ the code (and perhaps also its commentary) as an Example.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 22</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ code does not have the effect predicted by its accompanying
+ narrative.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Append
+ a backslash to the first line of the code.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Table 7</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not explicit how to combine raw-string and non-raw-string.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ rules containing raw-string in the table 7.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 13</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4
+ [lex.string]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Shouldn't
+ the assert be</FONT></FONT></P>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">assert(std::strcmp(p,
+ &quot;a\nb\nc&quot;) == 0);</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">17</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">10</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ would be preferred for attempts to modify string literals to be
+ diagnosable errors. This is not possible due to the deprecated
+ implicit conversion to pointer to null-terminated character
+ sequence of non-const characters. If this deprecated conversion
+ were remove (see other comments) then string literals are always
+ accessed through const types, and the compiler can enforce the no
+ modification rule. The only exception would be using const_cast to
+ cast away constness, but this is already covered under the
+ const_cast rules so needs no further detail here.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">(asssuming
+ deprecated conversion to non-const array is removed or can be
+ turned off) Strike the sentence on undefined behaviour.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">18</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ addition of static_assert (7p4) to the language raises the need to
+ concatenate string representations of integral constant
+ expressions (typically from a sizeof or alignof expression) with
+ narrow string literals to provide an informative error message.
+ There is no need to support arbitrary constant expressions and
+ especially not floating point values or formatting flags.
+ Likewise, the need is purely to support static_assert so only
+ narrow string literal support is required, although generalizing
+ to other literal types would be useful.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ a syntax to support string-ization of integral constant
+ expressions in a form eligible for string literal concatenation,
+ 2.13.4p6. Suggested syntax: I&quot; integral-constant-expression
+ &quot;. There is no raw variant, although it could combine with
+ type specifier in the same way that the R prefix does, supporting
+ u8I, uI, UI and LI.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">19</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2.13.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ grammar for string literal is becoming unwieldy and could easily
+ be refactored into the type optional specifier and the string
+ contents.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Refactor
+ string-literal grammar as: (note - current Drupal view loses
+ formatting which is vital to clearly read the grammar)
+ string-literal: string-literal-type-specifierOPT
+ string-literal-body string-literal-type-specifier: one of u8 u U L
+ string-literal-body: &quot; s-char-sequenceOPT &quot; R raw-string</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 14</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3
+ [basic]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;In
+ general it is necessary to determine whether a name denotes one of
+ these entities before parsing the program that contains it.&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Would
+ prefer</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;...
+ before continuing to parse the program that contains it.&quot;</FONT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">or
+ even </FONT>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;...
+ to complete the parsing of the program that contains it.&quot;</FONT></FONT></P>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">as
+ some names denotes entities declared after the first occurrence.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 15</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3
+ [basic]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">/operator-function-id/,
+ /conversion-function-id/, /template-id/ are followed by a space
+ and then a &quot;s&quot; while usually such production names
+ aren't followed by a space when put in plural (see /identifier/).</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"> <FONT SIZE=2 STYLE="font-size: 9pt">20</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Chapter
+ 3 (&quot;Basic concepts&quot;) provides common definitions used in
+ the rest of the document. Now that we have concepts as a primary
+ feature, the title of this chapter can be confusing as it does not
+ refer to the language feature but to definitions used in the
+ document.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the title to &quot;Basic definitions&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">21</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Concepts
+ is now the name of a specific feature of the language, the term
+ now risks confusion and ambiguity when used in the more general
+ sense.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Rename
+ the chapter Basic ???. THe note in p2 specifically needs similar
+ rewording</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">22</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">References
+ are frequently considered variables, but this definition only
+ applies to objects.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;or reference&quot; after both uses of &quot;object&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">23</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">alias-declarations
+ are not definitions and should be added to the list</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ alias-declaration after typedef declaration.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">24</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ current words suggest the declaration of a static integral
+ constant data member of a class cannot be a definition. Trying to
+ fix this wording in-place will be verbose and risk raising more
+ confusion than it solves, so suggest a footnote to call out the
+ special case</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a footnote attached to the static data membmer rule: *static data
+ member delcarations of intergral type may also be definitions if a
+ constant integral expression is provided for an initializer.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">25</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Example
+ is misleading as implicitly defined default constructor uses
+ default initialization, not value initialization, for non-static
+ data members. In the case of std::String this makes no difference,
+ but it makes a big difference for fundamental types and pointers.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the : s() from the illustrated default constructor: struct C {
+ std::string s; C() { } C(const C&amp; x): s(x.s) { } C&amp;
+ operator=(const C&amp; x) { s = x.s; return *this; } ~C() { } };</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">26</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">THe
+ one definition rule should cover references, and unless the term
+ 'variable' is extended to cover references the list in this
+ paragraph is incomplete.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ include references in the definition of 'variable' (see earlier
+ comment) or add reference to the list in this paragraph.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK </FONT>
+ </P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">27</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ class type must be complete when catching exceptions, even by
+ reference or pointer. See 15.3.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;when used in an exception-handler (15.3)&quot; to the list.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 16</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.3
+ [Declarative regions and scopes.]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ scope of function parameters is defined, but what is the scope of
+ template parameters?</FONT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">28</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Class
+ templates are not classes, so we should include this case.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ammend
+ &quot;class&quot; to &quot;class or class template&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"> <FONT SIZE=2 STYLE="font-size: 9pt">29</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.3.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">operators
+ and conversion functions do not have names, yet are susceptible to
+ 'name hiding' within a class - indeed we rely on this for the
+ implicitly declared copy-assignment operator.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the additional phrase &quot;The declaration of an operator or
+ conversion function in a derived class (Clause 10) hides the
+ declaration of an operator or conversion function of a base class
+ of the same operator or type;&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 17</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.5
+ [Program and linkage]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section does not specify whether concept names have linkage.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Do
+ they or not? If concept names do not have linkage, then a note is
+ appropriate, and that would be a bit surprising and curious. What
+ is the rationale?</FONT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 30</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph implies concepts have no linkage (do they need it?) and
+ that the entities behind names without linkage cannot be used in
+ other scopes. This maybe a bigger problem for concept maps?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a note to clarify that concepts don't need linkage.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 31</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">What
+ is the linkage of names declared inside a namespace, in turn
+ declared inside an anonymous namespace? It is not clear why such a
+ namespace has no linkage, and there is no language suggesting its
+ memmbers should lose linkage with it, which we assume is the
+ intended consequence.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ rules for namespaces inside nested namespaces, or remove the
+ restriction.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 23</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Bad paragraph break.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 18</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.5
+ [basic.link]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph number is not aligned with the text.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 19</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.6
+ [Start and termination]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section completely ignores the real world and practical case of
+ dynamically linked or loaded libraries. In current computing
+ environments, they are ubiquitous and they cannot be ignored in</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">practical
+ C++ programs. The Standard</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">should
+ address this aspect.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 32</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Do
+ we really want to allow: constexpr int main() { return 0; } as a
+ valid program?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ constexpr to the list of ill-formed things to annotate main</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 24</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">std::quick_exit
+ is not referenced.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Reference
+ std::quick_exit as well as std::exit in saying that automatic
+ objects are not destroyed. It should </FONT><STRONG><FONT SIZE=2 STYLE="font-size: 9pt">not</FONT></STRONG><FONT SIZE=2 STYLE="font-size: 9pt">
+ do so in saying that calling std::quick_exit is undefined from
+ within destructors for static or thread duration objects.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 25</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 2 last sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ parenthesized phrase, introduced via &ldquo;i.e.&rdquo; is in the
+ nature of an example.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &ldquo;i.e.&rdquo; to &ldquo;e.g.&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3.7.4.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Lack of a comma right after
+ &ldquo;(3.7.2)&rdquo; in the sentence while there are commas after
+ any other recitations like &ldquo;(3.7.1)&rdquo;. It is just a
+ unification matter.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">[ Note: in particular, a
+ global allocation function is not called to allocate storage for
+ objects with static storage duration (3.7.1), for objects or
+ references with thread storage duration (3.7.2) for objects of
+ type std::type_info (5.2.8), or for the copy of an object thrown
+ by a throw expression (15.1). -end note ]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">[ Note: in particular, a
+ global allocation function is not called to allocate storage for
+ objects with static storage duration (3.7.1), for objects or
+ references with thread storage duration (3.7.2), for objects of
+ type std::type_info (5.2.8), or for the copy of an object thrown
+ by a throw expression (15.1). -end note ]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Correct
+ typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-3</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.7.4.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-3
+ It is unclear whether the following code has well-defined
+ behavior; none of the bullets in the second paragraph seem to
+ apply.</FONT></P>
+ <P LANG="en-GB" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">int&amp;
+ i = *new int(5);</FONT></FONT></P>
+ <P LANG="en-GB" ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">delete
+ &amp;i;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ that &amp;i is considered a safely-derived pointer value.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 26</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1
+ and 5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Use
+ of object fields during destruction is excessively and erroneously
+ constrained.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">See the attached document
+ &quot;Issues with the C++ Standard&quot; under Chapter 3 &quot;Use
+ of objects, especially from other threads, during destruction&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 27</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 9 first sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a superfluous/extraneous &ldquo;and&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ &ldquo;and&rdquo; from the phrase &ldquo;and std::nullptr_t&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 20</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.9
+ [Types]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ phrase 'effective type' is defined and used in a way that is
+ incompatible with C99. Such a deliberate incompatible choice of
+ terminology is both unfortunate and confusing, given past practice
+ of the committee to maintain greater compatibility with C99. We
+ strongly suggest that the phrase 'effective type' not be used in
+ such an incompatible way.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3.9.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">rd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 13</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">over-aligned
+ type was added as new notion. So it is preferable to add the link
+ after that.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add (3.11) after over-aligned
+ type as the link.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">[
+ Note: pointers to over-aligned types</FONT><FONT COLOR="#008000"><FONT SIZE=2 STYLE="font-size: 9pt">(3.11)</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ have no special representation, but their range of valid values is
+ restricted by the extended alignment requirement. This
+ International Standard specifies only two ways of obtaining such a
+ pointer: taking the address of a valid object with an over-aligned
+ type</FONT><FONT COLOR="#008000"><FONT SIZE=2 STYLE="font-size: 9pt">(3.11)</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">,
+ and using one of the runtime pointer alignment functions. An
+ implementation may provide other means of obtaining a valid
+ pointer value for an over-aligned type</FONT><FONT COLOR="#008000"><FONT SIZE=2 STYLE="font-size: 9pt">(3.11)</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">.&mdash;end
+ note ]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; page-break-before: always">
+<BR>
+</P>
+<TABLE WIDTH=1036 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
+ <COL WIDTH=23>
+ <COL WIDTH=77>
+ <COL WIDTH=69>
+ <COL WIDTH=33>
+ <COL WIDTH=307>
+ <COL WIDTH=270>
+ <COL WIDTH=157>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 28</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3.9.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 5 first sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ closing braces of the first two sets are preceded by extraneous
+ space.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ the extra spaces.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">4.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-4
+ The deprecated conversion from string literals to pointer to
+ non-const character types should be limited to those conversions
+ and types of string literals that were already present in ISO/IEC
+ 14882:2003, or the deprecated conversions should be removed
+ entirely.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ applying the proposed resolution presented in core issue 693 in
+ WG21 document N2714 &ldquo;C++ Standard Core Language Active
+ Issues, Revision 58&ldquo;, available at
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2714.html
+ ; or remove only the conversions to &quot;pointer to char16_t&quot;,
+ &quot;pointer to char32_t&quot; in 4.2 paragraph 2 and 15.1
+ paragraph 3.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">CH
+ 1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">4.9
+ and 5.2.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">With
+ respect to the target type, pointer to members should behave like
+ normal pointers (least surprise principle).</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ standard should allow implicit conversions from ``pointer to
+ member of <TT><FONT FACE="Arial, sans-serif">T</FONT></TT> of type
+ <I>cv </I><TT><FONT FACE="Arial, sans-serif">D</FONT></TT>'' to
+ ``pointer to member of <TT><FONT FACE="Arial, sans-serif">T</FONT></TT>
+ of type <I>cv </I>B'', where D is of class type and B is a public
+ base of D, It should allow explicit conversion the other way
+ around.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-5</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">4.11,
+ 5.3.1, 5.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-5
+ Ref-qualification has not been integrated with pointer-to-members.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Review
+ implicit conversions (4.11), forming pointer-to-members (5.3.1),
+ and dereferencing pointer-to-members (5.5) for type-safety
+ concerns in the presence of ref-qualifiers on the member.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 33</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4.13</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">We
+ have: &quot;No two signed integer types shall have the same rank
+ ...&quot; &quot;the rank of char shall equal the rank of signed
+ char&quot; Can we therefore deduce that char may not be signed?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the first sentence with &quot;No two signed integer types shall
+ have the same rank, even if they have the same representation,
+ except that signed char shall have the same rank as char even if
+ char is signed (3.9.1/1).&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 34</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4.13</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">6th
+ bullet, &quot;the rank of char&quot; - first letter should be
+ capitalised for consistency with the other bullets</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ rank of char</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 36</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Primary
+ expressions are literals, names, names qualified by the scope
+ resolution operator ::, and lambda expressions. The immediately
+ following grammar flatly contradicts this - this and (e) are also
+ lambda expressions.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ this paragraph.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 37</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Member
+ function templates are not member functions, so should also be
+ listed in the 3rd bullet</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ member function templates to the 3rd bullet</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 38</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">this
+ might be useful in a few more places than it is permitted,
+ specifically in decltype expressions within a class. Two examples
+ that would be ill-formed at class scope without changes: typedef
+ decltype( *this ) this_type; decltype( [this]{ return
+ this-&gt;memfun(); } ) my_lambda;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ words to follow ...</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 8</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Syntax rules</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In the current syntax
+ definition, a scope operator(::) cannot be applied to decltype,
+ but it should be. It would be useful in the case to obtain member
+ type(nested-type) from an instance as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">vector&lt;int&gt; v;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">decltype(v)::value_type
+ i = 0; // int i = 0;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add &ldquo;decltype (
+ expression ) :: &ldquo; to nested-name-specifier syntax like
+ below.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">nested-name-specifier:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">type-name ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace-name ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">nested-name-specifier
+ identifier ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">nested-name-specifier
+ templateopt simple-template-id ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">nested-name-specifieropt
+ concept-id ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">decltype ( expression ) ::</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.13in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 9</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It would be preferable that
+ &ldquo;&amp;&amp;&rdquo; could be specified in a lambda expression
+ to declare move capture.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Here is an example from N2709.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::unique_future&lt;typename
+ std::result_of&lt;F()&gt;::type&gt; spawn_task(F f){</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ std::result_of&lt;F()&gt;::type result_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct local_task {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::promise&lt;result_type&gt;
+ promise;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">F func;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">local_task(local_task const&amp;
+ other)=delete;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">local_task(F func_):</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">func(func_)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">local_task(local_task&amp;&amp;
+ other):</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">promise(std::move(other.promise)),</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">f(std::move(other.f))</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void operator() {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">try</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">promise.set_value(f());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">catch(...)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">promise.set_exception(std::current_exception());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">local_task task(std::move(f));</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::unique_future&lt;result_type&gt;
+ res(task.promise.get_future());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::thread(std::move(task));</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">return res;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">This can be rewritten simply
+ as follows if move capture can be used in a lambda expression.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::unique_future&lt;typename
+ std::result_of&lt;F()&gt;::type&gt; spawn_task(F f){</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ std::result_of&lt;F()&gt;::type result_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::promise&lt;result_type&gt;
+ promise;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::unique_future&lt;result_type&gt;
+ res(promise.get_future());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::thread([&amp;&amp;promise,
+ &amp;&amp;f]() {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">try</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">promise.set_value(f());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">catch(...)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">promise.set_exception(std::current_exception());</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">});</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">return res;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add move capture in a lambda
+ expression.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 10</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In the current syntax
+ definition, a returned type of a function object cannot be
+ obtained by using result_of from an unnamed function object
+ generated by a lambda expression because it doesn&rsquo;t have
+ result type.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void foo(F f)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::result_of&lt;F()&gt;::type result; // error</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">foo([]{});</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">If &ldquo;Callable&rdquo; or
+ &ldquo;Predicate&rdquo; concept is specified, a returned type can
+ be obtained from a function object without result_type. But it is
+ preferable to be able to obtain it with template.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add result_type to the syntax
+ of an unnamed function object generated by a lambda expression.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 29</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The standard does not state
+ whether or not direct recursion of lambdas is possible.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 30</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ standard does not clarify the meaning of </FONT></FONT><CODE><FONT COLOR="#000000"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">this</FONT></FONT></FONT></CODE><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">
+ in lambdas. Does it mean this lambda, or this class within which
+ the lambda is nested?</FONT></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 31</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ current wording does not specify how context capturing and name
+ resolution </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">take
+ place when the inner lambda refers to the outer lambda's locals
+ variables and parameters.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 45</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">para
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Lambda
+ is a language feature with an apparent dependency on &lt;functional&gt;.
+ This increases dependency of language on library, and is
+ inconsistent with the definition of freestanding in 17.6.2.4.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the text &quot;a closure object behaves as a function object&quot;
+ to &quot;a closure object is a built-in object which behaves as a
+ function object&quot;; and after &quot;context.&quot;, insert &quot;
+ A closure object may be used without any need for &lt;functional&gt;.&quot;
+ This makes clear what may already be implied, namely that lambdas
+ can be used in freestanding implementations and don't increase
+ dependency of language on library. (Marked as technical comment
+ anyway because this clarity is technically important).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">US 32</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The final italic &quot;this&quot;
+ in the paragraph should be a teletype &quot;this&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 39</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph lists all the special member functions for the class
+ representing a lambda. But it omits the destructor, which is
+ awkward.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;F has an implicitly-declared destructor&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 40</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ one or more names in the effective capture set are preceded by &amp;,
+ the effect of invoking a closure object or a copy after the
+ innermost block scope of the context of the lambda expression has
+ been exited is undefined. That is too restrictive. The behaviour
+ should be undefined iff the lifetime of any of the variables
+ referenced has ended. This should be safe and legal; currently it
+ has undefined behaviour: int i; reference_closure&lt;void ()&gt;
+ f; if (blah) { f = [&amp;i]() { }; } if (f) f();</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">If
+ one or more names in the effective capture set are preceded by &amp;,
+ the effect of invoking a closure object or a copy after the
+ lifetime of any of the variables referenced has ended is
+ undefined.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 41</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">For
+ argument dependant lookup (3.4.2) the associated namespaces for a
+ class include its bases, and associated namespaces of its bases.
+ Requiring the result of a lambda expression *to dervide from*
+ std::reference_closure means that ADL will look in namespace std
+ when the lambda capture is entirely by reference, which might have
+ surprising results. Also, relying on the idea of implicitly
+ slicing objects is uncomfortable.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ inheritance with implicit conversion.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 42</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">A
+ lambda with an empty capture list has identical semantics to a
+ regular function type. By requiring this mapping we get an
+ efficient lambda type with a known API that is also compatible
+ with existing operating system and C library functions.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a new paragraph: &quot;A lambda expression with an empty capture
+ set shall be convertible to pointer to function type R(P), where R
+ is the return type and P is the parameter-type-list of the lambda
+ expression.&quot; Additionally it might be good to (a) allow
+ conversion to function reference (b) allow extern &quot;C&quot;
+ function pointer types</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 43</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ note spells out the intent that objects from lambda-expressions
+ with an effective capture list of references should be implemented
+ as a pair of pointers. However, nothing in the rest of 5.1.1 lifts
+ the requirement of to declare a reference member for each captured
+ name, and a non-normative note is not enough to relax that.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ provvide exceptions in the right places ...</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 44</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a strong similarity between a [&amp;]{} lambda capturing a
+ stack frame, and a [this]{} lambda binding a member function to a
+ class instance. The reference_closure requirement should be
+ extended to the second case, although we need some syntax to
+ create such an object that is distinct from the existing
+ pointer-to-member syntax. This would be a cleaner alternative to
+ the new std::mem_fn library component.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Extend
+ reference_closure requirement to cover [this] lambdas. Consider a
+ simple syntax for creating such bound expressions.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 46</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">para
+ 12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ requirement that a lambda meeting appropriate conditions be an
+ object derived from reference_closure makes lambda the language
+ feature dependent on &lt;functional&gt;, which increases
+ dependency of the language on the library and bloats the
+ definition of freestanding C++.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ text &quot;is publicly derived from&quot; with &quot;shall be
+ implemented in a manner indistinguishable from&quot;. This places
+ an ABI constraint on reference closures such that compiler and
+ library implementer have to do compatible things. But it cuts the
+ dependency of lambda syntax on &lt;functional&gt;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-6</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1,
+ 20.7.18</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-6
+ Some uses of lambda expressions refer to specializations of the
+ unconstrained class template <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">std::reference_closure</FONT></FONT>
+ (5.1.1). If the lambda expression appears in a constrained context
+ and the return type or a parameter type for the lambda depend on a
+ template parameter (see 14.10), such a use is ill-formed.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 20.7.18, for the class template <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">std::reference_closure</FONT></FONT>,
+ require <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">Returnable</FONT></FONT>
+ for <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">R</FONT></FONT>
+ and <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">VariableType</FONT></FONT>
+ for each of the <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">ArgTypes</FONT></FONT>.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p10</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-7
+ The note at the end of paragraph 10 appears to be garbled.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ &quot;or references&quot; in the note.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-8</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p10</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-8
+ The construction of the function call operator signature is
+ missing specifications for the ref-qualifier and the
+ attribute-specifier.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ bullets that say that the ref-qualifier and the
+ attribute-specifier are absent.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 33</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">There is no
+ definition of &ldquo;move constructor&rdquo; or &ldquo;move
+ operation&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Since
+ this is the first place the terms are used, a definition should
+ either be added here, or a cross reference to one.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-9</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-9
+ There is not a single example of a lambda-expression in the
+ standard. See also core issue 720 in WG21 document N2791 &quot;C++
+ Standard Core Language Active Issues, Revision 59&quot;, available
+ at
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
+ .</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a few well-chosen examples.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 52</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph seens out of place, assignment expressions are covered
+ in 5.17</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ p3 to subsection 5.17</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 53</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ definition in p1 makes no allowance for overloaded operator[] that
+ treats the expression as a simple function call, and does not
+ support the interchangability of arguments. Howver p2 relies on
+ this definition when describing the use of brace-init-lists inside
+ [].</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ a new p2 describing the changed semantics for overloaded
+ operator[]. This should be a note to avoid introducing normative
+ text that could potentially conflict with the later definiton of
+ these semantics.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 59</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">When
+ there is no parameter for a given argument, the argument is passed
+ in such a way that the receiving function can obtain the value of
+ the argument by invoking va_arg. That shouldn't apply to parameter
+ packs. template &lt;class ... Types&gt; void f(Types ... pack);
+ f(1, 2, 3);</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ that this sentence only applies where the ellipsis is used.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 60</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the remainder of 5.2.5, cq represents either const or the absence
+ of const vq represents either volatile or the absence of volatile.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;and&quot; before vq</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>61</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">p1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Together
+ with footnote 60 there may be confusion that the postfix
+ expression is always evaluated - even when part of an unevaluated
+ operand. We believe the standard does not require this, and a
+ comment in the existing note would be a useful clarification.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ in footnote 60 that this will not happen if the whole expression
+ is an unevaluated operand.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 62</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the final bullet, what does 'not an lvalue' mean? Does it imply
+ rvalue, or are there other possible meanings? Should clauses that
+ trigger on rvalues pick up on this?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ 'not an lvalue' with 'is an rvalue'.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-10</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-10
+ If E1.E2 is referring to a non-static member function, the
+ potential ref-qualification on E2 should be taken into account.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Adjust
+ the presentation of the types involved as appropriate.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>63</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Paragraph
+ 2 is missing its number.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ one.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 64</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">A
+ new name R is introduced for use in paragraphs 3 and 4. But R is
+ the same as T.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ R with T and replace &quot;the required result type (which, for
+ convenience, will be called R in this description)&quot; with &quot;T&quot;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 65</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the first two bullets we have &quot;the result is a pointer (an
+ lvalue referring) to&quot;. But para 2 makes clear that a
+ dynamic_cast of an rvalue references produces a rvalue. (Can an
+ lvalue refer to anything anyway?)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;an lvalue referring to&quot; with &quot;reference&quot;,
+ twice.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 66</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">typeid
+ may return &quot;an implementation-defined class derived from std
+ :: type_info&quot;. The derivation must be public.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">an
+ implementation-defined class publicly derived from std ::
+ type_info</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 67</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1,
+ 2, 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Paragraph
+ 1 specifies when the result of static_cast is an lvalue; repeating
+ it is unnecessary.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ para 2, delete &quot;It is an lvalue if the type cast to is an
+ lvalue reference; otherwise, it is an rvalue.&quot; and &quot;The
+ result is an rvalue.&quot;. In para 3, delete &quot;The result is
+ an lvalue if T is an lvalue reference type (8.3.2), and an rvalue
+ otherwise.&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 54</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3,
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Para
+ 3: &quot;The mapping performed by reinterpret_cast is
+ implementation-defined.&quot;. Para 6: &quot;... the result of
+ such a pointer conversion is unspecified.&quot; Which is it?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ para 6, replace unspecified with implementation-defined.
+ Alternatively, delete paragraph 3, since individual cases are
+ labelled appropriately.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 55</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">dynamic_cast
+ and reinterpret_cast crossreference 5.2.11 without creating an
+ extra note. The second half of the note is unrelated to the
+ crossrefernce, and would serve as well in normative text.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the note about definition of casting away constness, preserve the
+ cross-reference. The second sentance on reintrepret_cast to its
+ own type should move out of the note into the normative text.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 56</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ notion of safely derived pointers means this conversion may not be
+ as safe in the revised standard as the original. It would be good
+ to call attention to the changed semantics with a note.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add:
+ [Note: the result of such a conversion will not be a
+ safely-derived pointer value (3.7.4.3) -- end note]</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>57</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Conditionally
+ supported behaviour gives a wide range or permission, so clarify
+ relationship between safely-derived object pointers and function
+ pointers in a note.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add:
+ [Note: In such cases, the implementation shall also define whether
+ a safely-derived object pointer cast to a function pointer can be
+ safely cast back -- end note]</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 58</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.2.11</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Casting
+ from an lvalue of type T1 to an lvalue of type T2 using a
+ reference cast casts away constness if a cast from an rvalue of
+ type &ldquo;pointer to T1&rdquo; to the type &ldquo;pointer to T2&rdquo;
+ casts away constness. That doesn't cover rvalue references.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ lvalue with &quot;lvalue or rvalue&quot; twice.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">US 34</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ list of unary operator should be in teletype font.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 68</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2-9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">All
+ the unary operands other than * return rvalues - but this is not
+ stated.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a paragraph 1a &quot;The following unary operators all produce
+ results that are rvalues.&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 69</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ we cannot bind references/take address of functions in
+ concept_maps, does that mean we cannot use generic bind in
+ constrained templates? Launch threads with expressions found via
+ concept map lookup? Hit problems creating std::function objects?
+ Does the problem only occur if we use qualified lookup to
+ explicitly name a concept map? Does it only kick in if we rely on
+ the implicit function implementation provided by a concept_map, so
+ some types will work and others won't for the same algorithm?!</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ unknown ...</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 70</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ sizeof operator shall not be applied to ... an enumeration type
+ before all its enumerators have been declared We should allow enum
+ E : int; sizeof(E).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;an enumeration type&quot; to &quot;an enumeration type whose
+ underlying type is not fixed&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 71</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ type of an allocated object wih the type specifier auto is
+ determined by the rules of copy initialization, but the
+ initialization applied will be direct initialization. This would
+ affect classes which declare their copy constructor explicit, for
+ instance. For consistency, use the same form of initiailization
+ for the deduction as the new expression.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ T x = e; with T x(e);</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 72</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ library headers have been carefully structured to limit the
+ dependencies between core language and specific headers. The
+ exception thrown should be catchable by a handler for a type lised
+ in &lt;exception&gt; header in cluase 18. This might be
+ accomplished by moving length_error into the &lt;exception&gt;
+ header, but its dependency on logic_error with its std::string
+ constructors suggest this is not a good idea. Prefer to pick an
+ existing exception instead.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Throw
+ std::bad_alloc instead of std::length_error.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 73</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ class type with conversion operator can only be used if the
+ conversion type is constexpr and the class is a literal type.
+ Adding the single word 'literal' before class type will clarify
+ this.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ 'literal' before 'class type'</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 74</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">operators,
+ like constructors and destructors, do not have names. However, in
+ certain circumstances they can be treated as if they had a name,
+ but usually the stanadard is very clear not to actually describe
+ their name as a distinct property.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;the allocation function&rsquo;s name is operator new&quot;
+ to &quot;the allocation function is named operator new&quot; and
+ similarly for operator delete.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 35</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ period in middle of paragraph between &quot;in the scope of T&quot;
+ and &quot;If this lookup fails&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a period between &quot;in the scope of T&quot; and &quot;If this
+ lookup fails&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 75</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ paragraph strarting with [Note... is easily skipped when reading,
+ missing the normative text at the end.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Swap
+ order of the note and normative text.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 21</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">5.3.6
+ [Alignof</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Should
+ not the type of alignof-expression be of type std::max_align_t?</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 35</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">5.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2
+ and 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There is curious spacing in
+ the expressions &quot;E1 &lt;&lt;E2&quot; and &quot;E1 &gt;&gt;E2&quot;.
+ This is a formatting change since previous versions of the
+ Standard.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 47</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.14
+ / 5.15</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Why
+ are the descriptions of order of evaluation of expressions and
+ side effects different between &amp;&amp; and || operators. The
+ interaction with the memory model should be identical, so
+ identical words should be used to avoid accidential
+ inconsistencies in interpretation.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Pick
+ one form of wording as 'the best' and apply it in both places.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 48</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.18</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ defining feature of the comma operator is the guaranteed
+ sequencing of two expressions. This guarantee is lost when
+ presented with an overloaded operator, and this change is subtle
+ enough to call attention to it.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add:
+ [Note: There are no guarantees on the order of value computation
+ for an overloaded comma operator -- end note]</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 49</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.19</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Is
+ an implementation permitted to reject this? constexpr int f() {
+ return f(); } int a[f()]; AFAICT it is well-formed; f() seems to
+ satisfy all the rules to make it a constant expression. I would
+ hate compilation to become a potentially non-terminating
+ experience.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ an escape clause to allow the implementation to reject excessively
+ deep nesting of constexpr function evaluations. (This can possibly
+ be a note, since it is arguable that this point is handled by the
+ general rule on resource limits in 1.4/2. A sufficiently smart
+ compiler could use tail recursion above, meaning that it would
+ never run out of memory given this program though.)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>50</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.19</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ following should be valid: enum E { foo = 4}; const E c = foo; int
+ a[c]; But currently it is not - c is not an lvalue of effective
+ integral type (4th bullet). (See also 7.1.6.1/2)</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;effective integral type&quot; to &quot;effective integral or
+ enumeration type&quot; in the 4th bullet, 1st sub-bullet.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 51</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5.19</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">typeid
+ expressions can never be constant, whether or not the operand is a
+ polymorphic class type. The result of the expression is a
+ reference, and the typeinfo class that the reference refers to is
+ polymorphic, with a virtual destructor - it can never be a literal
+ type.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the words &quot;whose operand is of a polymorphic class type&quot;
+ on the bullet for typeid expressions.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 76</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Do
+ we really need two different terms that say the same thing?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Pick
+ either 'block' or 'compound statement' as the preferred term and
+ use it consistently throughout the standard.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 22</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">6.4.2
+ [The switch statement]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ constant-expression in</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">case
+ constant-expression</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">should
+ be allowed to be of any constant expression of literal type for
+ which a constexpr comparison operator (operator&lt; and
+ operator==) is in scope. Now that constant expressions of other
+ integral types are evaluated at compile time, the restriction for
+ case-labels is at best artificial.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 77</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ terms i/o operation, synchronize operation and atomic operation
+ have very specific meanings within the standard. The paragraph
+ would be much easier to understand with the terms crossreferenced.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Profide
+ a cross-reference for the terms: i/o operation, synchronize
+ operation and atomic operation </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 11</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">6.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 5</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is no _RangeT type in the equivalent code to &ldquo;range-base
+ for&rdquo; statement. It existed in N2049.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add a typedef for _RangeT in
+ the example as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ decltype( expression ) _RangeT;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">auto &amp;&amp;
+ __range = ( expression );</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">for ( auto
+ __begin = std::Range&lt;_RangeT&gt;:: begin(__range),</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
+ <FONT SIZE=2 STYLE="font-size: 9pt">__end = std::Range&lt;_RangeT&gt;::
+ end(__range);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">__begin
+ != __end;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">++__begin
+ )</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">for-range-declaration
+ = *__begin;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">statement</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 78</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Including
+ the header &lt;iterator_concepts&gt; is far too unwieldy to enable
+ an important and (expected to be) frequently used syntax.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Merge
+ &lt;iterator_concepts&gt; into &lt;concepts&gt; and change 6.5.4p2
+ to refer to &lt;concepts&gt;, or make the Range concept
+ fundamental along with the other support concepts in 14.9.4 and
+ strike any reference to including a header.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 79</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ definition of for (for-range-declaration : expression) statement
+ is expanded in terms which require a Range concept, and the
+ program is ill-formed if &lt;iterator_concepts&gt; isn't included.
+ For users, iterating through old-fashioned arrays, this is a
+ sledge-hammer to crack a nut and compares poorly with other
+ languages. It's also not possible to implement this without
+ adversely impacting the freestanding definition in 17.6.2.4.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">When
+ expression is an array a of length N whose length is known at
+ compile time, expand range-for as 'for (... p=a, p!=a+N, p++) ...'
+ without requiring the Range concept or &lt;iterator_concepts&gt;.
+ Also, when expression is an initializer_list, expand range-for
+ similarly without requiring &lt;iterator_concepts&gt;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-11</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">6.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-11
+ A sentence in paragraph 1 reads: &quot;Outside of a constrained
+ context, the late-checked block has no effect.&quot; This, at face
+ value, specifies that the <EM>compound-statement</EM> of such a
+ late-checked block is never executed, which appears to be
+ unintended.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">State
+ that such a late-checked block has the same meaning as if the
+ <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">late_check</FONT></FONT>
+ keyword were absent.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 80</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Many
+ of the sections and major subsections open with a sentence
+ summarising the content. I'm not sure this is necessary; this
+ isn't a tutorial. The problem with these summaries is that because
+ they omit much of the detail, they tend to be inaccurate. This may
+ not matter, but I feel the document would be improved by omitting
+ them. There's a prime example here: &quot;Declarations specify how
+ names are to be interpreted.&quot; Not true for static_assert, an
+ asm declaration nor an anonymous bit field.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the first sentence.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 81</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">String
+ literal concatenation happens in phase 6, before parsing, so it is
+ legal and useful to use it for the string literal in a
+ static_assert. It would be useful to add a note mentioning this.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a note: Multiple adjacent string literals may be used instead of a
+ single /string-literal/; see [lex.phases].</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 82</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Paragraph
+ 2 talks about declarations that can have nested declarations
+ within them. It doesn't mention scoped enumerations - but
+ according to 7.2/11, &quot;Each scoped enumerator is declared in
+ the scope of the enumeration.&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;scoped enumeration&quot; to the list in the second sentence.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 83</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ longest sequence of decl-specifiers that could possibly be a type
+ name is taken as the decl-specifier-seq of a declaration. But many
+ sequences of decl-specifiers cannot possibly be a type name - eg
+ the sequence &quot;friend int&quot;, or &quot;typedef int&quot;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Not
+ sure. I understand the rule, just not how to say it.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 84</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ grammar includes alignment-specifier as a production for
+ decl-specifier, but there is no production for
+ alignment-specifier. I suspect this is a holdover from before
+ alignment was handled as an attribute.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ the production (including the duplicate in A6)</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">[dcl.spec.auto]</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">While
+ it&rsquo;s considered too late for this standard revision,
+ consider loosening the restrictions for auto specifier and making
+ it more a mirror of a deduced template function parameter.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ restricted-auto.ppt</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 85</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">...
+ the init-declarator-list of the declaration shall not be empty
+ (except for global anonymous unions, which shall be declared
+ static). Global here means &quot;declared at namespace scope&quot;.
+ (cf 9.5/3 &quot;Anonymous unions declared in a named namespace or
+ in the global namespace shall be declared static.&quot;).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;global&quot; with &quot;namespace scope&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 86</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2,3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ register keyword serves very little function, offering no more
+ than a hint that a note says is typically ignored. It should be
+ deprecated in this version of the standard, freeing the reserved
+ name up for use in a future standard, much like auto has been
+ re-used this time around for being similarly useless.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Deprecate
+ current usage of the register keyword.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 87</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1,
+ 4, 5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Why
+ require two keywords, where one on its own becomes ill-formed?
+ thread_local should imply 'static' in this case, and the
+ combination of keywords should be banned rather than required.
+ This would also eliminate the one of two exceptions documented in
+ 7.1.1p1.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Drop
+ requirement to combine static keyword with thread_local at
+ block-scope inside a function definition.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 36</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The permission to use
+ thread_local static data members is missing.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the static members as a permitted use.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 23</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.1.5
+ [constexpr]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">'constexpr'
+ functions should be allowed to take const reference parameters, as
+ long as their uses are in a context where a constant expression
+ may be required. For example, the following should be allowed</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename
+ T, int N&gt;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">int
+ size(const T(&amp;)[N]) { return N; }</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">int
+ a[] = { 41,42,43,44 };</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">enum
+ { v = size(a) };</FONT></FONT></P>
+ <P STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 12</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ should be allowed to define constexpr recursively.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There is an explanation in
+ N2235, Generalized Constant Expressions&mdash;Revision 5, as
+ follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.39in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">We (still) prohibit recursion
+ in all its form in constant expressions. That is not strictly
+ necessary because an implementation limit on recursion depth in
+ constant expression evaluation would save us from the possibility
+ of the compiler recursing forever. However, until we see a
+ convincing use case for recursion, we don&rsquo;t propose to allow
+ it.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Then, here are the use cases
+ where allowing recursion for constexpr is very useful.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Range of problem to be handled
+ with constexpr would become extended. For example, user defined
+ type (e.g. Complex type) could be placed in ROM area. But with
+ current specification, a function defined with constexpr cannot be
+ called recursively. As a side effect is not allowed in
+ compile-time, it cannot be implemented to repeat anything without
+ recursion. Although it could be implemented without recursion like
+ func0, func1, func2 in an example below, it is not elegant
+ solution.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">constexpr double func0(double
+ x) { /* ... */}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">constexpr double func1(double
+ x) { /* call for func0 */ }</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">constexpr double func2(double
+ x) { /* call for func1 */ }</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">/* ... */</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">- Compile-time and runtime</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">As constexpr can be also
+ evaluated both in compile-time and runtime, we need to discuss
+ about both cases.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Runtime evaluation is just to
+ execute it. If you eliminate constexpr keyword, it is executable
+ as of now. Any modern compiler may optimize tail recursion easily.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Compile-time evaluation is the
+ same thing as template recursion. It is necessary to support
+ floating point operation, but it is already possible to calculate
+ it in compile-time, so it&rsquo;s ok.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">- Sample</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Here is an example to
+ calculate a square root using constexpr recursively.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">/*constexpr*/ double
+ SqrtHelper(double x, double a, int n)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">return n == 0 ? a :
+ SqrtHelper(x, (x / a + a) / 2.0, n - 1);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">/*constexpr*/ double
+ Sqrt(double x)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">return SqrtHelper(x, x, 20);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">/*constexpr*/ double root2 =
+ Sqrt(2.0); // 1.41421...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Allow constexpr recursion.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 37</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There is a &quot;Note: 3.9.3
+ describes how cv-qualifiers affect object and function types.&quot;
+ So far as I can see, 3.9.3 CV-qualifiers only describes
+ cv-qualifiers for objects, cv-qualifiers for (member) functions
+ being described in 8.3.5 Functions.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 89</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ two normative sentences in this paragraph appear to duplicate text
+ elsewhere - but they aren't exact duplicates, which introduces
+ uncertainty. 1. &quot;An object declared in namespace scope with a
+ const-qualified type has internal linkage unless it is explicitly
+ declared extern or unless it was previously declared to have
+ external linkage.&quot;. This nearly repeats 7.1.1/7: &quot;Objects
+ declared const and not explicitly declared extern have internal
+ linkage.&quot; The former seems to allow more wiggle room - can an
+ object be &quot;previously declared to have external linkage&quot;
+ without having been &quot;explicitly declared extern&quot;? 2. &quot;A
+ variable of non-volatile const-qualified integral or enumeration
+ type initialized by an integral constant expression can be used in
+ integral constant expressions (5.19).&quot; This nearly duplicates
+ 5.19/2, bullet 4, 1st sub-bullet - &quot;[... an integaral
+ constant expression can use] an lvalue of effective integral type
+ that refers to a non-volatile const variable or static data member
+ initialized with constant expressions&quot;. The latter does not
+ allow for lvalues of enumeration type (neither scoped not unscoped
+ enumerations are integral types - 3.9.1/7, and note 44). This
+ seems to be a flaw in 5.19/2.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Make
+ the normative text in this section into one or more notes, with
+ cross references, and correct the referenced text if necessary.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 90</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">para
+ 1 and table 9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ grammar in paragraph one makes &quot;nested-name-specifier
+ template simple-template-id&quot; a simple-type-specifier, but
+ unlike all the others it is omitted from table 9.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a row to table 9 mentioning simple-template-id and punting to
+ clause 14 (cf decltype(expression)).</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 91</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">5.1/5
+ says &quot;[A] parenthesized expression can be used in exactly the
+ same contexts as those where the enclosed expression can be used,
+ and with the same meaning, except as otherwise indicated.&quot;
+ When the first bullet point of this paragraph, describing the type
+ denoted by decltype(e), says &quot;if e is an id-expression ...
+ decltype(e) is the type of the entity named by e&quot;, 5.1/5 is
+ not excluded, which would imply that decltype((e)) was also the
+ type of e. But the intention appears that it should be caught by
+ the third bullet and treated as an lvalue expression, so
+ decltype((e)) should be a reference to the type of e. Conversely,
+ the second bullet point says &quot;(parentheses around e are
+ ignored)&quot;, which is redundant because of 5.1/5.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ &quot;unparenthised&quot; in the first bullet point - &quot;if e
+ is an *unparenthised* id-expression ...&quot;. In the second
+ bullet point, move &quot;(parentheses around e are ignored)&quot;
+ into a note.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 92</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ note correctly indicates that, if T is a template type parameter,
+ then &quot;friend class T;&quot; is ill-formed. It might be worth
+ pointing out at the same time that the alternative &quot;friend
+ T;&quot; is now allowed - see 11.4/3.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ strike the note or add reference to 11.4/3 and/or mention of
+ &quot;friend T;&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 93 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Grammar
+ before para 1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the third production, &quot;enum ::opt nested-name-specifieropt
+ identifier&quot;, enum should not be in italics; its referring to
+ the enum keyword.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ to keyword font</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 94</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ auto type-specifier signifies that the type of an object being
+ declared shall be deduced from its initializer or specified
+ explicitly at the end of a function declarator. A function
+ declarator does not declare an object.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ auto type-specifier signifies that the type of an object being
+ declared shall be deduced from its initializer or that the return
+ type of a function is specified explicitly at the end of a
+ function declarator. </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 95</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">(See
+ also c++std-core-13583) This paragraph allows auto &quot;in the
+ type-specifier-seq in a new-type-id (5.3.4)&quot; (and nowhere
+ else not listed). Specifically, it isn't allowed in a type-id in a
+ new-expression. That allows &quot;new auto (42)&quot;, but not
+ &quot;new (auto)(42)&quot;. However, 5.3.4/2 suggests the latter
+ should be allowed &quot;If the auto type-specifier appears in the
+ type-specifier-seq of a new-type-id or type-id of a new-expression
+ ...&quot;. The inconsistency should be resolved, ideally in favour
+ of allowing both forms.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;in a new-type-id&quot; to &quot;in a new-type-id or type-id
+ in a new-expression&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 24</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.1.6.4
+ [auto specifier]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Now
+ that 'auto' is finally used in its most obvious sense to state
+ `deduce the type of this variable from initializer', it should
+ also be allowed in template parameter declarations, as in</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;auto
+ n&gt; struct X { /* &hellip; */ };</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">X&lt;903&gt;
+ x;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">X&lt;&amp;Widget::callback&gt;
+ y;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">instead
+ of the current, often verbose and cumbersome</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Consolas, monospace"><FONT SIZE=2 STYLE="font-size: 10pt"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="fr-FR">template&lt;typename
+ T, T n&gt; struct X { /* &hellip; </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">*/
+ };</FONT></FONT></FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">X&lt;int,903&gt;
+ x;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">X&lt;void
+ (Widget::*)(),&amp;Widget::callback&gt; y;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ understand that 'auto' is used in 14.1/18 in a different way (for
+ constrained template), but that usable appears very strange
+ syntax, unnatural and does not fit well with the usage in this
+ section.</FONT></FONT></P>
+ <P STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 38</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The discussion of attribute
+ specifiers should be a separate paragraph.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 39</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The paragraph says in part &quot;An
+ opaque-enum-declaration declaring an unscoped enumeration shall
+ not omit the enum-base.&quot; This statement implies that the base
+ may be omitted for scoped enumerations, which is somewhat
+ inconsistent with paragraph 3 and somewhat consistent with
+ paragraph 5.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">As
+ this implication leaves no representation, it should be either
+ affirmed here or the statement should be expanded. Perhaps a note
+ is warranted.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 13</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">paragraph
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In the description for an
+ unscoped enumeration, enum-base in redeclaration must be the same
+ underlying type as in the 1st declaration, but it is not described
+ explicitly, while it is referred that all enum-bases in
+ redeclarations must specify the same underlying type.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the description, &quot;same underlying type&quot;, with &quot;same
+ as underlying type of (previous) declaration.&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 96</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">enum
+ E { }; What are the values of E? It has neither a smallest nor
+ largest enumerator, so paragraph 7 doesn't help. (Paragraph 6
+ indicates that the underlying type is as if E had a single
+ enumerator with value 0, but that does not define the values of
+ E.)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a second sentence to paragraph 7 (before &quot;Otherwise&quot;):
+ &quot;If the enumerator-list is empty, 0 is the only value of the
+ enumeration.&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 97</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ punctuation after &quot;blue&quot; in: &quot;The possible values
+ of an object of type color are red, yellow, green, blue these
+ values can be converted ...&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a semicolon: &quot;The possible values of an object of type color
+ are red, yellow, green, blue; these values can be converted ...&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 98</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ would be useful to be able to determine the underlying type of an
+ arbitrary enumeration type. This would allow safe casting to an
+ integral type (especially needed for scoped enums, which do not
+ promote), and would allow use of numeric_limits. In general it
+ makes generic programming with enumerations easier.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a TransformationTrait to 20.5.6 that returns the underlying type
+ of an enumeration type.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 99</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is unclear whether an enumeration type is complete after an
+ opaque-enum-declaration. This paragraph only says so in a note,
+ and the general rule in 3.9/5 (&quot;Incompletely-defined object
+ types ... are incomplete types&quot;) is unclear in this
+ situation.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ &quot;an enumeration declared by an opaque-enum-declaration ... is
+ a complete type&quot; from the note to normative text.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 14</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The description of the
+ behavior when a member that was defined with same name in other
+ namespace was referred.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.45in; text-indent: -0.25in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">- It seems that the behavior
+ of the following case is not defined. So we think that it is
+ necessary to define that.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace Q {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">inline namespace V {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">int g;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">int g;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.67in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Q::g =1;// ill-fromed, Q::V::g
+ =1;, or Q::g = 1;?</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.45in; text-indent: -0.25in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">- Add that the following case
+ is ill-formed to more easily to understand.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace Q {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">inline namespace V1{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">int g;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">inline namespace V2{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">int g;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.5in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.44in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Q::g =1;//ill-formed</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.44in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the description of the
+ behavior when a member that was defined with same name in other
+ namespace was referred.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 100</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">10
+ and 13</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Para
+ 10 says &quot;A using-declaration is a declaration and can
+ therefore be used repeatedly where (and only where) multiple
+ declarations are allowed.&quot; Para 13 says &quot;Since a
+ using-declaration is a declaration, the restrictions on
+ declarations of the same name in the same declarative region (3.3)
+ also apply to using-declarations.&quot; These appear to be saying
+ exactly the same thing.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ para 10, moving its example into para 13.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 101</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ a using-declaration uses the keyword typename and specifies a
+ dependent name (14.6.2), the name introduced by the
+ using-declaration is treated as a typedef-name (7.1.3). That
+ doesn't specify at all what the effect of using typename with a
+ non-dependent name is. Is it allowed? What about outside any
+ template? What if the name isn't a type? (14.6/4 doesn't cover
+ this, I think.)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Allow
+ typename for non-dependent names iff they refer to a type.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-12</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p15</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-12
+ Overriding and hiding of member functions named in
+ using-declarations should consider ref-qualifiers, because they
+ are part of the function type.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 25</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.3.3
+ [The using declaration]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Paragraph
+ 21</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ syntax for concept map alias is unnecessarily both confused and
+ verbose.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ strongly suggest simplifications, e.g.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">using
+ N1::C&lt;int&gt;;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">that
+ fits well with existing constructs. The syntactic complexity is
+ too high for a new feature presumably designed to support sound
+ programming.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 102</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph says &quot;If name lookup finds a declaration for a name
+ in two different namespaces, and the declarations do not declare
+ the same entity and do not declare functions, the use of the name
+ is ill-formed.&quot; But the example uses declaration of
+ functions, so is not covered by this paragraph.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the example to paragraph 7, and/or replace it with an appropriate
+ example.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 40</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ list of attributes is missing an attribute to indicate that a
+ function with a </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">throw()</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ (throws nothing) clause need not have the </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">unexpected()</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ catch clause generated. This attribute was a motivating example
+ for the attribute syntax, and its omission is surprising.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the attribute.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 41</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">A common problem is
+ unintentionally declaring a new virtual member function instead of
+ overriding a base virtual member function.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">An
+ attribute stating intent to override would enable better
+ diagnostics.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 26</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">7.6
+ [Attributes]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Are
+ they part of object types or not? The section does not appear to
+ indicate that clearly.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 1</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ override-attribute for functions in order to avoid mistakes when
+ overriding functions.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ override&shy;-attribute.doc, override-attribute.ppt</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 27</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">7.6.1</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section specifies that no name lookup is performed on any
+ identifier contained in an attribute-token. This in particular
+ implies that, for example, it is impossible to define a template
+ class parameterized by its alignment. That restriction is
+ unacceptable.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ original alignment proposal made that useful construct possible.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Furthermore
+ paragraph 7.6.1/2 appears contradictory with the rest of that
+ section -- since no name lookup is performed, how a 'type-id'is
+ determined?</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 103</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Attributes
+ should support pack expansion. For example, this would be
+ extremely useful with the align attribute, directly supporting the
+ (removed) functionality of aligned_union. NOte that aligned_union
+ was removed as varaiant-unions were considered a complete
+ replacement - however this is not true for variadic templates.
+ Adding this support to attributes would remove the remaining need,
+ and support similar attributes in the future.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add:
+ attribute... to the grammar for attribute-list Add to list in
+ 14.5.3p4: &quot;In an attribute-list(7.6.1); the pattern is an
+ attribute.&quot; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 104</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is helpful for each subclause to contain a short paragraph
+ introducing its intent an purpose. 7.6 has such a paragraph, but
+ it is nested under a more specific subsection.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.6.1p1
+ should move up one level to become 7.6p1. There grammar should
+ remain under 7.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 105</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Allowing
+ only one level of namespaces in attributes seems unnecessarily
+ limiting.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">To:
+ attribute-scoped-token: attribute-namespace :: identifier add
+ attribute-namespace :: attribute-scoped-token </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 106</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Extensive
+ use of alignment and related terms without cross reference.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ cross-reference to 3.11.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 15</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">An
+ abbreviation of 7.6.2 should be &ldquo;[decl.attr.align]&rdquo;
+ instead of &ldquo;[dcl.align]&rdquo;.<BR>Section name
+ &ldquo;[dcl.align]&rdquo; is not consistent with others, because
+ others in 7.6 are the form of &ldquo;dcl.attr.*&rdquo;. In N2761,
+ the section name of 7.1.7 had been changed from &ldquo;[dcl.align]&rdquo;
+ to &ldquo;[dcl.attr.align]&rdquo;, but in N2800 it was reverted to
+ &ldquo;[dcl.align]&rdquo; along with a change of section number,
+ 7.1.7 to 7.6.2.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;[dcl.align]&quot; of 7.6.2 to &quot;[decl.attr.align]&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 107</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">While
+ undefined behaviour might be the best we can guarantee, it would
+ be helpful to encourage implementations to diagnose function
+ definitions that might execute a return.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Adda
+ a [Note : implementations are encouraged to issue a diagnostic
+ where the definition of a function marked [[noreturn]] might
+ execute a return statement -- end note]</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 108</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is unclear why no diagnostic is required for an easily detectable
+ violation. It is even more surprising that the associated footnote
+ mandates behaviour for an ill-formed program.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ &quot;no diagnostic required&quot; and the associated footnote.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 42</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">7.6.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ meaning of the </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[[final]]</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ attribute applied to classes is inconsistent with other languages
+ and not desirable in its own right.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Modify
+ the semantics of </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[[final]]</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ applied to classes. See the attached paper &quot;Issues with the
+ C++ Standard&quot; under Chapter 7 &quot;Meaning of </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">[[final]]</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ attribute applied to classes&quot;.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 109</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ example code refers in comments to &quot;Compilation unit&quot; A
+ and B. The term should be &quot;Translation unit&quot; (2/1)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;Compilation&quot; with &quot;Translation&quot; in two places</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 110</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7.6.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ code in the example (compilation unit A) has:
+ &quot;foo_head[i].load(memory_order_consume)&quot;. foo_head[i] is
+ of type foo *, so it does not have a load member.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the type of foo_head to atomic&lt;foo *&gt;[].</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 43</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">With
+ the introduction of late-specified return types for functions and
+ lambda expressions, we now have three different syntaxes for
+ declaring functions. The </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">-&gt;</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ late declaration is used in two. The </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">auto</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ keyword is used in one, but also used differently in variable
+ definitions.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Some
+ simplification is needed.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 111</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">13</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Example
+ missing closing bracket in template&lt;typename... T&gt; void f(T
+ (* ...t)(int, int);</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ closing bracket like this: template&lt;typename... T&gt; void f(T
+ (* ...t)(int, int));</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 44</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">8.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">13</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In the Example, &quot;template
+ void f(T (* ...t)(int, int);&quot; is missing a close parenthesis.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ presumably should read: &quot;template void f(T (* ...t))(int,
+ int);&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 45</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">8.3.5</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">13</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">At
+ present, function parameter packs can only occur at the end of a
+ parameter-declaration-list. This restriction unnecessarily
+ prohibits uses of function parameter packs in cases where template
+ argument deduction isn&rsquo;t needed, e.g.,</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class...
+ T&gt; struct X { };</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class...
+ T1, class... T2&gt;</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">struct
+ X&lt;pair&lt;T1, T2&gt;...&gt; {</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ f(T1..., T2...);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">More
+ importantly, this restriction is inconsistent with the way pack
+ expansions are handled. For example, this template is well-formed
+ (but X&lt;T..., int&gt; is a non-deduced context):</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class...
+ T&gt; void f(X&lt;T..., int&gt;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Therefore,
+ the restriction that limits function parameter packs to the end of
+ the parameter-declaration-list should be removed. Instead,
+ function parameter packs not at the end of the
+ parameter-declaration-list should be considered non-deduced
+ contexts.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 8.3.5p13, remove the sentence &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">A
+ function parameter pack, if present, shall occur at the end of the
+ parameter-declaration-list.&rdquo;</SPAN></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">In
+ 14.8.2.1p1, replace the phrase &ldquo;For a function parameter
+ pack&rdquo; with &ldquo;For a function parameter pack that occurs
+ at the end of a </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG=""><I>parameter-declaration-list</I></SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">&rdquo;.</SPAN></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">Replace
+ the note text &ldquo;A function parameter pack can only occur at
+ the end of a parameter-declaration-</SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">list
+ (8.3.5).&rdquo; with &ldquo;A function parameter pack that does
+ not occur at the end of a parameter-declaration-list is a
+ non-deduced context.&rdquo;</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.8.2.5p5, add a new bullet: &ldquo;A function parameter pack
+ that does not occur at the end of its parameter-declaration-list.&rdquo;</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.8.2.5p10, replace &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">If
+ </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">the
+ parameter-declaration corresponding to Pi is a function parameter
+ pack&rdquo; with &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">If
+ </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">the
+ parameter-declaration corresponding to Pi is a function parameter
+ pack and Pi occurs at the end of the parameter-declaration-list&rdquo;.
+ </FONT></FONT></FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ </FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">the
+ note text &ldquo;A function parameter pack can only occur at the
+ end of a parameter-declaration-</SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">list
+ (8.3.5).&rdquo; with &ldquo;A function parameter pack that does
+ not occur at the end of a parameter-declaration-list is a
+ non-deduced context.&rdquo;</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-13</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">8.4
+ </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-13
+ The second paragraph, quoting the grammar for the declarator of a
+ function declaration, is not considering late-specified return
+ types and attributes.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Properly
+ quote the grammar from 8.3.5.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 16</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">8.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">15</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo, duplicated &quot;in&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">&quot;The
+ initialization that occurs in in the forms&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ one.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 46</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">8.5.3</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ ability for an rvalue reference to bind to an lvalue opens a
+ type-safety hole that becomes very dangerous with concepts. For
+ example, consider vector&rsquo;s push_back operation:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requires
+ MoveConstructible&lt;T&gt; void push_back(T&amp;&amp;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requires
+ CopyConstructible&lt;T&gt; void push_back(const T&amp;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">For
+ a copy-constructible T (which is also move-constructible),
+ push_back does the right thing. However, if T is something that is
+ move-constructible (e.g., unique_ptr&lt;int&gt;), the second
+ overload is removed from considered (it is effectively SFINAE&rsquo;d
+ away), so only the first overload remains. Therefore, one could
+ accidentally call push_back with an lvalue of type T, and
+ push_back would silently move from the lvalue. The same problem
+ occurs without concepts (albeit less frequently).</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Prohibit
+ rvalue references from binding to lvalues.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Unfortunately
+ this change will break some current use cases of rvalue reference
+ including the use of rvalue streams, and of the forward function
+ itself. To resolve this we may want to consider three types of
+ references:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <OL>
+ <LI><P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ current reference.</FONT></FONT></P>
+ <LI><P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ non-const reference that only binds to rvalues.</FONT></FONT></P>
+ <LI><P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ non-const reference that will bind to both lvalues and rvalues.</FONT></FONT></P>
+ </OL>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Still
+ another solution would be to adopt the &ldquo;deleted function&rdquo;
+ solution for all functions. This solution is described in comment
+ for 12.1, 12.4, 12.8, but restricted to special functions in that
+ comment. (See US NN).</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 49</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">8.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the Example, the comments could be improved.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">See the attached paper &quot;Issues
+ with the C++ Standard&quot; under &quot;Editorial Issues&quot; and
+ &quot;8.5.4/6&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 112</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4-9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ now have concepts that should (or should not?) map to the terms
+ described in Clause 9 - these should be at least referenced.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ appropriate forward references to 14.9.4</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 113</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9.4.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Mis-applied
+ edit from the paper n2756</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ term 'constant-initializer' should have been struck out when
+ replaced by brace-or-equal-initializer. There are two occurrences
+ in this paragraph</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 50</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">12.1,
+ 12.4, 12.8</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Implicitly-declared
+ default constructors, destructors, copy constructors, and copy
+ assignment operators are deleted when their definitions would be
+ ill-formed. However, unlike with overloading and template argument
+ deduction, access control is performed as part of the check for
+ making one of these special function deleted. This inconsistency
+ should be removed.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ change would sacrifice some backward compatibility in favor of
+ consistency. With the current wording, checking that the following
+ class &lsquo;A&rsquo; is CopyConstructible would proceed without
+ error (it is not CopyConstructible):</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">class
+ A { A(const A&amp;); };</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">With
+ the proposed change, testing whether A is CopyConstructible would
+ produce a diagnostic. To fix the problem, the user would have to
+ use a deleted function:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">class
+ A { A(const A&amp;) = delete; };</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 12.1p5, remove the phrase &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">
+ or inaccessible from the implicitly-declared default </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">constructor&rdquo;.</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 12.4p3, remove the phrase &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">or
+ a destructor that is inaccessible from the implicitly-declared
+ destructor,&rdquo; and the phrase &ldquo;or a destructor that is
+ inaccessible from the </SPAN></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">implicitly-declared
+ destructor</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">&rdquo;.</SPAN></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 12.8p5, remove the phrase &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">
+ or inaccessible from the implicitly-declared copy constructor&rdquo;
+ from the two places it occurs.</SPAN></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 12.8p10, remove the phrase &ldquo;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="">or
+ inaccessible from the implicitly-declared copy assignment
+ operator&rdquo; from the two places it occurs.</SPAN></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 28</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">12.6.1
+ [Explicit initialization]</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section, in particular the example with `g' appears contradictory
+ with the syntax for uniform initialization.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 51</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">12.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The discussion of delegating
+ constructors should be in its own paragraph.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 114</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Despite
+ all the attempts to unify initialization syntax, it is still not
+ possible to copy-initialize base classes or non-static data
+ members, which means the explicit keyword cannot have a bearing
+ during evaluation of a constructor. A minimal addition to the
+ grammar, allowing an optional = between the mem-initializer-id and
+ braced-init-list would allow the user to choose between copy and
+ direct initialization</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Ammend
+ the grammar for mem-initializer: mem-initializer-id =OPT
+ braced-init-list Extend p3 to allow for Copy Initialization if the
+ optional = is present: 3 The expression-list or braced-init-list
+ in a mem-initializer is used to initialize the base class or
+ non-static data member subobject denoted by the mem-initializer-id
+ according to the initialization rules of 8.5 for
+ direct-initialization, OR COPY-INITIALIZATION IF THE OPTIONAL = IS
+ PRESENT BETWEEN THE MEM-INITIALIZER-ID and the BRACED-INIT-LIST.
+ [Example:...</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 52</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">13.5.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ word is misspelled.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &ldquo;shal&rdquo; to &ldquo;shall&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 115</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6-11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Exported
+ templates were a great idea that is generally understood to have
+ failed. In the decade since the standard was adopted, only one
+ implementation has appeared. No current vendors appear interested
+ in creating another. We tentatively suggest this makes the feature
+ ripe for deprecation. Our main concern with deprecation is that it
+ might turn out that exported constrained templates become an
+ important compile-time optimization, as the constraints would be
+ checked once in the exported definition and not in each
+ translation unit consuming the exported declarations.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ deprecating exported templates, but no action yet. Examine
+ interaction with constrained templates, and see if other more
+ appropriate mechanism will support compile-time optimization.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 116</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6-11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Is
+ it possible to export a concept map template? The current wording
+ suggests it is possible, but it is not entirely clear what it
+ would mean.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ prohibit exporting concept map templates, or more directly address
+ what it means to export a concept map.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 117</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ would be nice to allow template alias within a function scope, and
+ possibly a scoped concept map. As these affect name lookup and
+ resolution, rather than defining new callable code, they are not
+ seen to present the same problems that prevented class and
+ function templates in the past.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Allow
+ template aliases to be declared inside a function scope, and
+ consider scoped concept maps.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 118</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6-11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Exported
+ templates are a complicated feature with surprisingly little text.
+ To make this important text more visible, split it off into its
+ own subclause [temp.export]</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Create
+ a new subclause [temp.export] containing 14p6-11. Move 14p12 ahead
+ of this subclause.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 119</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Does
+ a concept map have linkage? Reading this paragraph and 3.5
+ suggests a concept map template has external linkage, but not a
+ 'regular' concept map. Believe this is an oversight that the
+ linkage words were not updated to provide an exception, rather
+ than linkage of concept maps is intended.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ an exception that concept map templates have no linkage, or add
+ concept maps to the list of entities with linkage in 3.5</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 120</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">As
+ this is the first time the phrase &ldquo;parameter pack&rdquo;
+ appears in Ch 14 I would like to see the section 8.3.5 referenced
+ here (as well as in 14.1p17).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ &ldquo;(8.3.5)&rdquo; after &ldquo;parameter pack&rdquo; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 121</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ example (that follows the normative text) has no begin example
+ marker</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Prefix
+ the example code with &quot;[ Example:&quot; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 29</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.3
+ [Template arguments]</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Constant
+ expressions of any literal type should be allowed as template
+ arguments.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 53</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.5.1</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ the requirements of a constrained member that is a copy
+ constructor, copy assignment operator, or destructor are not
+ satisfied, then that user-declared special function will not
+ exist. It appears that, in this case, the special function will
+ then be </FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><I>implicitly</I></FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">
+ defined, which is likely to either (a) fail to compile or (b)
+ produce a function with the wrong semantics. For example:</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;ObjectType
+ T&gt; class vector {</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">T*
+ first, last, end;</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requires
+ CopyConstructible&lt;T&gt; vector(const vector&amp;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ instantiated with a type that is not CopyConstructible, vector
+ will get an implicitly-defined copy constructor that performs a
+ copy of the pointers.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ to 14.5.1p5:</FONT></FONT></P>
+ <P ALIGN=LEFT> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ the constrained member is a copy constructor (12.8), destructor
+ (12.4), or copy assignment operator and its template requirements
+ are not satisfied, then a copy constructor, destructor, or copy
+ assignment operator, respectively, with the same signature as the
+ constrained member (after substituting the class template&rsquo;s
+ template arguments for its template parameters) will be declared
+ as a deleted function (8.4).</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 122</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Variadic
+ templates should be supported in axioms. There are axioms in the
+ library that rely on this feature, such as the FrontEmplacement
+ axiom in FrontEmplacementContainer (23.1.6.1p10)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ clarification in p2 that function parameter packs can be used to
+ declare axioms, much like p1 clarifies they can be used to declare
+ concepts as well as templates.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 30</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.5.7
+ [Template aliases]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">When
+ are two template alias names equivalent?</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">E.g.
+ given</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;template&lt;class&gt;
+ class&gt; struct X { };</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename,typename&gt;
+ struct Y { };</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename
+ T&gt;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">using
+ Z1 = Y&lt;int,T&gt;;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;typename
+ T&gt;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">using
+ Z2 = Y&lt;int,T&gt;;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Are
+ the types X&lt;Z1&gt; and X&lt;Z2&gt; equivalent?</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ would suggest yes (since Z1&lt;T&gt; and Z2&lt;T&gt; are the same
+ for all T), but we do not see any wording to that effect.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 17</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">14.7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 15</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">if that namespace is inline,
+ any namespace from its enclosing namespace set.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">if
+ that namespace is inline, any namespace </FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">forming</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ its enclosing namespace set.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;from&quot; with &quot;forming&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-14</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.7.3
+ </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-14
+ The bulleted list neither addresses &quot;member function template
+ of a class&quot; nor &quot;member class template of a class&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the respective bullets.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 18</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">14.7.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">any namespace from its
+ enclosing namespace set</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">any
+ namespace </FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">forming</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ its enclosing namespace set</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;from&quot; with &quot;forming&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 19</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">14.8.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo, duplicated &quot;is&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;At
+ certain points in the template argument deduction process it </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>is
+ is</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> necessary&quot;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Remove one</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 54</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9
+ [concept],</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.10
+ [temp.constrained]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">Concepts is
+ of course the largest new feature in C++0x (in terms of new text
+ inserted into the wording), and already we have found some
+ significant defects with it. So far nothing devastating has been
+ found, but more time is needed to shake more bugs out.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">I
+ propose no specific change here. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 55</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ paragraph number is in the wrong place, causing a grammar rule to
+ be indented more than its fellows.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the paragraph number so as to follow the grammar rules, thus
+ numbering the single sentence, &ldquo;The body of a concept &hellip;
+ .&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 56</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ sentence contains two references to 14.9.1.3 [concept.req].</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the second such reference (at the end of the sentence) to 14.9.1.4
+ [concept.axiom].</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 57</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ word is misplaced, changing the intended meaning.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &ldquo;only find &hellip; if&rdquo; to &ldquo;find &hellip; only
+ if&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 58</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ listed phrases are not grammatically parallel.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ &ldquo;in&rdquo; before &ldquo;one&rdquo; so as to obtain &ldquo;...
+ in the concept, in one of its less refined concepts, or in an
+ associated requirement.&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 59</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Axioms
+ are under-specified and provide little benefit to programmers, so
+ they should be removed from the working paper. The optimizations
+ permitted by axioms (see 14.9.1.4p4-5) are not compulsory (and,
+ therefore, programmers cannot rely on them) and the semantics
+ expressed by axioms cannot be verified by any implementation. The
+ resulting specification has lead to great confusion (see the
+ reflector thread &ldquo;Are floating point types Regular?&rdquo;
+ starting with c++std-lib-22717). Given the level of confusion and
+ the inability to verify the correctness of axioms, it is likely
+ that many axioms written by programmers (including those specified
+ in the candidate draft) will be incorrect.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ clause 14.9.1.4 [concept.axiom]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 2.11p1, remove &ldquo;axiom&rdquo; from the list of keywords.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.5.8p7, remove &ldquo;, or if the resulting concept map fails to
+ satisfy the axioms of the corresponding concept&rdquo;</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.9.1p6, remove axiom-definition from the list of grammar
+ productions for concept-member-specifier. Remove &ldquo;, and
+ axioms&rdquo; from the final sentence, and instead &ldquo;and&rdquo;
+ prior to &ldquo;associated requirements&rdquo; in the final
+ sentence.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ paragraph 14 of clause 14.9.2.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.10.1p6, remove the sentence, &ldquo;When the
+ concept-instance-alias-def appears in the optional requires-clause
+ of an axiom-definition (14.9.1.4), the potential scope of the
+ identifier begins at its point of declaration and terminates at
+ the end of the axiom-de&#64257;nition.&rdquo;</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Helvetica, sans-serif"><FONT SIZE=3><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ clauses 20.2.5, 20.2.8, 23.1.6.1, 23.1.6.2, and 24.1.4, remove the
+ axiom-definitions and replace them with paragraphs (denoted
+ Requires, Postconditions, or Effects, as appropriate) that
+ express the intended semantics of the concepts from which the
+ axiom-definitions were removed.</FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 24.1.4p2, replace the word &ldquo;axiom&rdquo; with &ldquo;condition.&rdquo;</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 31</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4
+ [Axioms]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section states that an axiom-definition defines a new semantics
+ axiom but is unusually vague as to what those semantics might be.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ use of the '==' and '!=' with completely new semantics, unrelated
+ to anything we have seen before in C++ is both unwise and
+ confusing, especially if the types involved in the expressions
+ happen to have operator== and operator!= defined.</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Consolas, monospace"><FONT SIZE=2 STYLE="font-size: 10pt"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ strongly suggest use of different tokens, e.g. </FONT></FONT><FONT FACE="Wingdings"><FONT SIZE=2 STYLE="font-size: 9pt">&#61683;</FONT></FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">,
+ and opposed to this obscure usage/overload.</FONT></FONT></FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ description is very vague. How many times is an implementation
+ permitted to replace one expression by another one when they have
+ side effects?</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-15</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-15
+ There is no implementation experience for axioms. Use of axioms is
+ an area of active scientific research. It is likely that syntax
+ changes will become necessary to make good use of axioms; having
+ the syntax space already crowded is unhelpful. Axioms ought to be
+ useful in concepts applicable to floating-point types (such as
+ EqualityComparable), but IEEE floating-point types have special
+ values such as NaN violating the axioms.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ section 14.9.1.4 and any reference to axioms in the rest of the
+ proposed standard other than the keyword reservation in section
+ 2.11.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 123</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">auto
+ concepts and axioms are incompatible. An axiom defines the
+ semantics of an operaton or set of operations that describes the
+ run time behaviour. A concept describes purely syntactic
+ requirements at compile time. Where an auto concept will match
+ anything that meets the syntax requirements, there is no way to
+ know if the axioms will be met or not, and no way to opt out via
+ some kind of negative concept map.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a paragraph making axioms ill-formed inside an auto concept.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK<BR> 124</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Spelling
+ mistake, double-e in were.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">weere
+ -&gt; were</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 125</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ implicit equality comparison operator available to axioms has no
+ semantic. It is not clear what expressing the condition if( a == b
+ ) { conditional-axiom } would mean if a and b are not truly
+ EqualityComparable. We suspect the intent of the 'implicit
+ defefinition' is to support declaring the equivalence of
+ statements, a context where the operator will not actually be
+ evaluated.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ the semantics of the implicitly declared comparison operators, or
+ restrict their usage to declaring equivalence between statements.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 126</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">41</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph contains the only definition of the underlying_type
+ member - but it's a note, so not normative.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the second sentence to the Requires clause in paragraph 42.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 127</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a diagram clearly showing refinement relationship between the
+ different support concepts. Several were created during
+ development of this clause and they were very helpful.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ the diagram. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 128</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.9.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is surprising for many people that non-copyable move-only types
+ can be used with a return statement, and so Returnable does not
+ always imply CopyConstructible.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ non-normative note: [Note: 'move only' types that are
+ constructible from rvalue references may be Returnable, but not
+ CopyConstructible(20.1.8) - end note]</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 20</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">14.9.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Trivially copyable type was
+ added in &ldquo;3.9 Types&rdquo;, so we think that it is necessary
+ to add concept to trivially copyable type like
+ &ldquo;TriviallyCopyableType&rdquo;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add TriviallyCopyableType that
+ is trivially copyable type as concept.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 129</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">14.10.1,
+ 20.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ should be possible to support boolean constant expressions as
+ requirements without resorting to defining the True concept in the
+ library. Boolean expressions are very likely to be constraints
+ when deadline with non-type template parameters and variadic
+ templates, and constraints in these cases should feel just as
+ natural as constraints on the type system.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the True concept and library subclause 20.1.2. Provide support in
+ 14.10.1 for boolean constant expressions as constraints. This may
+ involve overloading the true keyword to disambiguate but ideally
+ would not.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 60</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">14.10.1</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ use of &amp;&amp; as the separator for a list of requirements has
+ shown itself to be a serious teachability problem. The mental
+ model behind &lsquo;&amp;&amp;&rsquo; treats concepts as simple
+ predicates, which ignores the role of concepts in type-checking
+ templates. The more programmers read into the &lsquo;&amp;&amp;&rsquo;
+ (and especially try to fake || with &amp;&amp; and !), the harder
+ it is for them to understand the role of concept maps. Simply
+ changing the separator to &lsquo;,&rsquo; would eliminate a
+ significant source of confusion.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement-list:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement-list
+ ... [opt] &amp;&amp; requirement</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement
+ ... [opt]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">with</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement-list</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement-list
+ ...[opt] , requirement</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">requirement
+ ... [opt]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ 14.5.4p6, replace the first sentence with: </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ instantiation of an expansion produces a comma-separated list E1,
+ E2, ..., EN, where N is the number of elements in the pack
+ expansion parameters.</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 130</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">With
+ the new crrent_exception API it is possible to capture a reference
+ to an exception that will outlive its last active handler. That is
+ in conflict with the sentance &quot;When the last remaining active
+ handler for the exception exits by any means other than throw; the
+ temporary object is destroyed and the implementation may
+ deallocate the memory for the temporary object;&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Update
+ sentence to allow for exceptions held in excpetion_ptr objects. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 131</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ handler catching its parameter by rvalue-reference is
+ syntactically valid, but will never be activated.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Disallow
+ handlers catching by rvalue-reference.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 132</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">16</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ are obscure cases whrere a copy constructor is not usually the
+ best match to copy-initialize an object, e.g. A converting
+ constructor template taking arguments by non-const reference. A
+ footnote explaining such cases would be helpful, or the sentance
+ could be rewritten using copy-initialization instead of directly
+ calling a copy constructor.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Rewite
+ using copy-initialization rather than directly invoking the copy
+ constructor </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 133</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Template
+ aliases have the same semantics as a typedef so should also be
+ disallowed</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">add
+ &quot;or alias-declaration&quot; after &quot;shall not appear in a
+ typedef declaration&quot;. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 134</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ sentance &quot;An exception-specification can also include the
+ class std::bad_exception (18.7.2.1).&quot; is redundant.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ strike the quoted sentance, or add a note explaining why it is
+ worth calling special attention to this class. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 135</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Unclear
+ if std::unexpected is called before or after the function
+ arguments have been destroyed</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ the sequence of calling unexpected with respect to interesting
+ objects, such as function arguments or partially constructed bases
+ and members when called from a constructor or destructor </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 136</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Exception
+ specifications have proven close to worthless in practice, while
+ adding a measurable overhead to programs. The feature should be
+ deprecated. The one exception to the rule is the empty throw
+ specification which could serve a legitimate optimizing role if
+ the requirement to call the runtime unexpected mechanism was
+ relaxed in this case.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ 15.4 and the parts of 15.5 that refer to it to Appendix D. Replace
+ 15.4 with a simpler specification for empty throw specifications,
+ where the std::unexpected call is conditionally supported allowing
+ vendors to choose between optimizing and providing runtime checks.
+ Ideally require vendors to provide a mode where the runtime checks
+ are always disabled. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 137</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is no mention of the current_exception API which can extend the
+ lifetime of an exception object. There should at least be a
+ forward reference to the library clause 18.7.5</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ another paragraph outlining 18.7.5 and the ability of an
+ exception_ptr to extend the lifetime of an exception object </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 138</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ third bullet is redundant with the first, as it is a subset of the
+ same conditions.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Merge
+ the third bullet into the first bullet as a note or example. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 139</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">According
+ to the first bullet it is perfectly alright for a library function
+ to exit by throwing an exception during stack unwinding, This is
+ clearly not true.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the word 'user' from the first bullet point. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 140</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.5.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ detailed specification can fool people into thinking an exception
+ will automatically be translated into bad_exception, where the
+ default behaviour of std::unexcepted is to immediately call
+ std::terminate();</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a note highlighting the default behaviour of std::unexpected if
+ the user does not supply a hander-function </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 141</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">15.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ whole subclause is redundant due to 15.1p5 and 15.3p17</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 15.6 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 142</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">16.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph opens with &quot;[ Note&quot; but has no corresponding
+ &quot;end note ]&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;end note ]&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 143</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">16.3.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Example
+ uses #define t(x,y.z) x ## y ## z</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;x,y.z&quot; to &quot;x,y,z&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">17-30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge/te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The active issues identified
+ in WG21 N2806, C++ Standard Library Active Issues, must be
+ addressed and appropriate action taken.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT COLOR="#000080"><U>http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Appropriate
+ action would include making changes to the CD, identifying an
+ issue as not requiring a change to the CD, or deferring the issue
+ to a later point in time.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">General
+ Comment</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Library</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ adoption of the library `constexpr' proposal was not reflected in
+ the draft, despite formal WG21 committee vote.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 2</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">General
+ Comment</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 61</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">17
+ onward</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ concepts core language feature is applied to only some of the
+ Standard Library clauses, and even then not always consistently.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Review
+ all clauses of the Standard Library, and consistently apply
+ concept technology wherever possible and appropriate. The
+ proposed wording in WG21 N2781 exemplifies the necessary level of
+ detail.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">CA-2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">17
+ Library</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ &ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">Concepts&rdquo; are a
+ significant new addition to the language, but are not exploited
+ uniformly in the library as documented in CD 14882.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Fix the standard library so
+ that &ldquo;Concepts&rdquo; are used appropriately in the library.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 62</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">17-30</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ concepts and requirements clauses for all standard library
+ templates</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 63</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">17-30</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ behavior of the library in the presence of threads is incompletely
+ specified.</FONT></P>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">For
+ example, if thread 1 assigns to X, then writes data to file f,
+ which is read by thread 2, and then accesses variable X, is thread
+ 2 guaranteed to be able to see the value assigned to X by thread
+ 1? In other words, does the write of the data &quot;happen before&quot;
+ the read?</FONT></P>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">Another
+ example: does simultaneous access using operator at() to different
+ characters in the same non-const string really introduce a data
+ race?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-2</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">17
+ through 30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-2
+ Marking a constructor with &quot;explicit&quot; has semantics even
+ for a constructor with zero or several parameters: Such a
+ constructor cannot be used with list-initialization in a
+ copy-initialization context, see 13.3.1.7. The standard library
+ apparently has not been reviewed for marking non-single-parameter
+ constructors as &quot;explicit&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ marking zero-parameter and multi-parameter constructors &quot;explicit&quot;
+ in classes that have at least one constructor marked &quot;explicit&quot;
+ and that do not have an initializer-list constructor.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 21</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">17 Library</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">21.2, 21.4,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.2,
+ 27.6, 27.7, 27.8.1, 28.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Support of char16_t/char32_t
+ is insufficient. The basic_xxx classes of &lt;iostream&gt;,
+ &lt;fstream&gt;, &lt;regex&gt;, etc. does not have typedefs for
+ char16_t/char32_t.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Functions such as stoi,
+ to_string in &lsquo;21.4 Numeric Conversion&rsquo; does not
+ support char16_t/char32_t types.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add commented lines
+ corresponding to char16_t, char32_t.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">21.2 paragraph1 </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">// 21.4: numeric
+ conversions </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">int stoi(const
+ u16string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long stol(const
+ u16string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">unsigned long
+ stoul(const u16string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long long stoll(const
+ u16string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">unsigned long long
+ stoull(const u16string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">float stof(const
+ u16string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">double stod(const
+ u16string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long double stold(const
+ u16string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u16string
+ to_u16string(long long val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u16string
+ to_u16string(unsigned long long val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u16string
+ to_u16string(long double val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">int stoi(const
+ u32string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long stol(const
+ u32string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">unsigned long
+ stoul(const u32string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long long stoll(const
+ u32string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">unsigned long long
+ stoull(const u32string&amp; str, size_t *idx = 0, int base = 10); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">float stof(const
+ u32string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">double stod(const
+ u32string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">long double stold(const
+ u32string&amp; str, size_t *idx = 0); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u32string
+ to_u32string(long long val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u32string
+ to_u32string(unsigned long long val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">u32string
+ to_u32string(long double val); </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">27.2 </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef basic_ios&lt;char&gt;
+ ios; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ios&lt;wchar_t&gt; wios; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ios&lt;char16_t&gt; u16ios; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ios&lt;char32_t&gt; u32ios; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;wchar_t&gt; wifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;wchar_t&gt; wofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;wchar_t&gt; wfstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_streambuf&lt;char16_t&gt; u16streambuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istream&lt;char16_t&gt; u16istream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostream&lt;char16_t&gt; u16ostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_iostream&lt;char16_t&gt; u16iostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringbuf&lt;char16_t&gt; u16stringbuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istringstream&lt;char16_t&gt; u16istringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostringstream&lt;char16_t&gt; u16ostringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;char16_t&gt; u16stringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_filebuf&lt;char16_t&gt; u16filebuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;char16_t&gt; u16ifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;char16_t&gt; u16ofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;char16_t&gt; u16fstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_streambuf&lt;char32_t&gt; u32streambuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istream&lt;char32_t&gt; u32istream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostream&lt;char32_t&gt; u32ostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_iostream&lt;char32_t&gt; u32iostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringbuf&lt;char32_t&gt; u32stringbuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istringstream&lt;char32_t&gt; u32istringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostringstream&lt;char32_t&gt; u32ostringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;char32_t&gt; u32stringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_filebuf&lt;char32_t&gt; u32filebuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;char32_t&gt; u32ifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;char32_t&gt; u32ofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <U>&nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;char32_t&gt; u32fstream;</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT></FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ state&gt; class fpos; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ fpos&lt;char_traits&lt;char&gt;::state_type&gt; streampos; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ fpos&lt;char_traits&lt;wchar_t&gt;::state_type&gt; wstreampos; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ fpos&lt;char_traits&lt;char16_t&gt;::state_type&gt; u16streampos;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ fpos&lt;char_traits&lt;char32_t&gt;::state_type&gt; u32streampos;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">27.6</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_istream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istream&lt;char&gt; istream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istream&lt;wchar_t&gt; wistream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_istream&lt;char16_t&gt; u16istream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istream&lt;char32_t&gt; u32istream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_iostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_iostream&lt;char&gt; iostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_iostream&lt;wchar_t&gt; wiostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_iostream&lt;char16_t&gt; u16iostream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_iostream&lt;char32_t&gt; u32iostream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_ostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostream&lt;char&gt; ostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostream&lt;wchar_t&gt; wostream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_ostream&lt;char16_t&gt; u16ostream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostream&lt;char32_t&gt; u32ostream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">27.7 paragraph 1 </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt;, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">class
+ Allocator = allocator&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_stringbuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringbuf&lt;char&gt; stringbuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringbuf&lt;wchar_t&gt; wstringbuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_stringbuf&lt;char16_t&gt; u16stringbuf;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringbuf&lt;char32_t&gt; u32stringbuf;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt;, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">class
+ Allocator = allocator&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class
+ basic_istringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istringstream&lt;char&gt; istringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istringstream&lt;wchar_t&gt; wistringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_istringstream&lt;char16_t&gt; u16istringstream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_istringstream&lt;char32_t&gt; u32istringstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt;, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">class
+ Allocator = allocator&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class
+ basic_ostringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostringstream&lt;char&gt; ostringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostringstream&lt;wchar_t&gt; wostringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_ostringstream&lt;char16_t&gt; u16ostringstream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ostringstream&lt;char32_t&gt; u32ostringstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt;, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">class
+ Allocator = allocator&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class
+ basic_stringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;char&gt; stringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;wchar_t&gt; wstringstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;char16_t&gt; u16stringstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_stringstream&lt;char32_t&gt; u32stringstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">27.8.1 paragraph 1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_filebuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_filebuf&lt;char&gt; filebuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_filebuf&lt;wchar_t&gt; wfilebuf; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_filebuf&lt;char16_t&gt; u16filebuf;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_filebuf&lt;char32_t&gt; u32filebuf;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_ifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;char&gt; ifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;wchar_t&gt; wifstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_ifstream&lt;char16_t&gt; u16ifstream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ifstream&lt;char32_t&gt; u32ifstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_ofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;char&gt; ofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;wchar_t&gt; wofstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_ofstream&lt;char16_t&gt; u16ofstream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_ofstream&lt;char32_t&gt; u32ofstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class
+ charT, class traits = char_traits&lt;charT&gt; &gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">class basic_fstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;char&gt; fstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;wchar_t&gt; wfstream; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef
+ basic_fstream&lt;char16_t&gt; u16fstream;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_fstream&lt;char32_t&gt; u32fstream;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">28.4 </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_regex&lt;char&gt; regex; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_regex&lt;wchar_t&gt; wregex; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_regex&lt;char16_t&gt; u16regex;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ basic_regex&lt;char32_t&gt; u32regex;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef sub_match&lt;const
+ char*&gt; csub_match; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef sub_match&lt;const
+ wchar_t*&gt; wcsub_match; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef sub_match&lt;const
+ char16_t*&gt; u16csub_match;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef sub_match&lt;const
+ char32_t*&gt; u16csub_match;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ sub_match&lt;string::const_iterator&gt; ssub_match; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ sub_match&lt;wstring::const_iterator&gt; wssub_match; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ sub_match&lt;u16string::const_iterator&gt; u16ssub_match;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ sub_match&lt;u32string::const_iterator&gt; u32ssub_match;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;const char*&gt; cmatch; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;const wchar_t*&gt; wcmatch; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;const char16_t*&gt; u16cmatch;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;const char32_t*&gt; u32cmatch;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;string::const_iterator&gt; smatch; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;wstring::const_iterator&gt; wsmatch; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;u16string::const_iterator&gt; u16smatch;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ match_results&lt;u32string::const_iterator&gt; u32smatch;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;const char*&gt; cregex_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;const wchar_t*&gt; wcregex_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;const cha16r_t*&gt;
+ u16cregex_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;const char32_t*&gt;
+ u32cregex_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;string::const_iterator&gt; sregex_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;wstring::const_iterator&gt; wsregex_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;u16string::const_iterator&gt;
+ u16sregex_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_iterator&lt;u32string::const_iterator&gt;
+ u32sregex_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">... </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;const char*&gt;
+ cregex_token_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;const wchar_t*&gt;
+ wcregex_token_iterator; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;const char16_t*&gt;
+ u16cregex_token_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;const char32_t*&gt;
+ u32cregex_token_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;string::const_iterator&gt;
+ sregex_token_iterator; </FONT></FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;wstring::const_iterator&gt;</FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="zxx">&#12288;&#12288;&#12288;</SPAN></FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">wsregex_token_iterator;
+ </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;u16string::const_iterator&gt;
+ u16sregex_token_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;<FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ regex_token_iterator&lt;u32string::const_iterator&gt;</FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="zxx">&#12288;</SPAN></FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">u32sregex_token_iterator;
+ </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 144</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">List
+ of contents of library should be extened to cover new clauses</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;regular expressions, atomic operations and threads&quot; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 145</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="en-US">Summary
+ of numeric facilities should mention random numbers</SPAN></FONT></FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ random number framework to the list of library facilities</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 146</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a summary paragraph for regular expressions</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a summary paragraph for regular expressions </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 147</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a summary paragraph for threads</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a summary paragraph for threads </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 148</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 12 is mentioned in and relates to section 17.2, but has been
+ pushed down to appear directly after the title of section 17.3
+ which is rather unfortunate/confusing for the reader.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Make
+ sure tables are rendered in the section to which they relate.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 149</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">For
+ consistency with narrow-oriented and wide-oriented streams, we
+ should add terms for streams of Unicode character sequences</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ Utf16-oriented stream classes and Uft32-oriented stream classes
+ for streams of char16_t/char32_t values.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 150</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ addition of move semantics to the language means that many library
+ APIs leave an object in a safely-destructible state, where no
+ other operations can safely be performed unless it is assigned a
+ new value. Library presentation would be simplified and made more
+ precise if we introduce a term for this state. By analogy with
+ singular iterators suggest the term 'singular object' or 'the
+ object is in a singular state'.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ 'singular state' such that an object with a singular state can
+ only be assigned to or safely destroyed. Assiging a new value
+ typically removes the singular state. Note that objects with a
+ singular state may not be safely copied, so you cannot put an
+ object into a singular state by copying another object in a
+ singular state. Use this new term in the postcondition of all
+ library APIs that move from an rvalue reference. It might also be
+ used to simplify the definition of singular iterator to an
+ iterator value with a singular state.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 151</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ crossreference to 17.3.17 [defns.repositional.stream]</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ cross-reference in the existing empty brackets </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 152</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.12</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Object
+ state is using a definition of object (instance of a class) from
+ outside the standard, rather than the 'region of storage'
+ definiton in 1.8p1</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ terms and usage</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 153</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.17</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">If
+ a repositional stream can only seek to a position previously
+ encountered, then an arbitrary-positional-stream cannot satisfy
+ this definition, as cross-referenced in 17.3.17</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the word 'only'. A note might be added to reinforce the intent </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK<BR> 154</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.20</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Missing
+ definition of a stable partition algorithm</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ definition from 25.2.12p7 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 155</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ clause 28 to list that use this definition of character</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ clause 28 to list that use this definition of character </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 156</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ regular expressions to set of templates using character container
+ type</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ regular expressions to set of templates using character container
+ type </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 157</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ concepts to the ordered list of presentation</FONT></P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ concepts into the sequence</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 158</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">templates
+ are neither classes nor functions</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ 'classes' and 'functions' with 'classes and class templates' and
+ 'functions and function templates' </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 159</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 152</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ informative footnote was relevant in 1998, not 2008. The term
+ 'existing vendors' may imply something different now</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the footnote, or replace 'existing' with 'original' or similar </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 160</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">requires
+ is now a keyword with a specific meaning related to concepts, and
+ its use in library specifcation may be confusing. Generally the
+ Requires clause is used to make requirements on the caller, not
+ the library, so typically providing runtime pre-conditions.
+ Suggest a new name to refflect that. Note that Clause 30 already
+ seems to be written to this convention.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ 'Requires' with 'Preconditions' </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 161</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph is redundant as the definition of the term 'handler
+ function' is already provided in 17.3. Are we in danger of proving
+ two definitions of the same terms? Which is the 'controlling'
+ definition?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 17.5.2.4p4 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 162</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Clause
+ 30 makes use of a 'Synchronization' semantic element, that
+ frequently appears either between Effects: and Postconditions:, or
+ between Returns: and Throws:</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ 'Synchronization' to the list either between Effects: and
+ Postconditions:, or between Returns: and Throws:.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 163</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Many
+ functions are defined as &quot;Effects: Equivalent to a...&quot;,
+ which seems to also define the preconditions, effects, etc. But
+ this is not made clear.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Introduce
+ an explicit &quot;Equivalent to&quot;, which defines all of the
+ properties of the function.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 164</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.3.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ phrasing predates concepts. While this kind of description is
+ still used, the examples provided are now all concepts, and should
+ be replaced with appropriate examples</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Use
+ better names for the examples. Ideally totally replace the need by
+ constraining all templates in library, so that real concepts are
+ all that is needed. Note if retained that CopyConstructible is
+ mis-spelled.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 165</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.3.2.2,
+ 17.5.3.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">constraints
+ on bitmask and enumation types were supposed to be tightened up as
+ part of the motivation for the constexpr feature - see paper n2235
+ for deails</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Adopt
+ wording in line with the motivation described in N2235 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 166</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">17.5.3.2.4.1,
+ 17.5.3.3</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">List
+ of library clauses should go up to 30, not 27</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ initial refernce to ch27 with ch30 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 167</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.5.3.4
+ Private members</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Comment
+ marker in wrong place.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Change:
+ // streambuf* sb; exposition only to streambuf* sb; // exposition
+ only To reflect actual usage.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 168</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ should make it clear (either by note or normatively) that
+ namespace std may contain inline namespaces, and that entities
+ specified to be defined in std may in fact be defined in one of
+ these inline namespaces. (If we're going to use them for
+ versioning, eg when TR2 comes along, we're going to need that.)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;namespace std or namespaces nested within namespace std&quot;
+ with &quot;namespace std or namespaces nested within namespace std
+ or inline namespaces nested directly or indirectly within
+ namespace std&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 169</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ phrasing contradicts later freedom to implement the C standard
+ library portions in the global namespace as well as std.
+ (17.6.2.3p4)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Resolve
+ conflict in either place</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 170</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">One
+ of goals of C++0x is to make language easier to teach and for
+ 'incidental' programmers. The fine-grained headers of the C++
+ library are valuable in large scale systems for managing
+ dependencies and optimising build times, but overcomplicated for
+ simple development and tutorials. Add additional headers to
+ support the whole library through a single include statement.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a new header &lt;std&gt; that has the effect of including
+ everything in tables 13 and 14, except &lt;iosfwd&gt; and
+ &lt;cassert&gt;. Add an additional header &lt;fwd&gt; that adds
+ all declarations from &lt;std&gt; but no definitions. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 171</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Does
+ freestanding implementation require a full implementation of all
+ listed headers? The reference to abort, at_exit and exit is
+ confusing. Is a conforming implementation allow to deliver partial
+ forms of these headers? If so which ones? Are empty versions of
+ everything but &lt;cstdlib&gt; conforming?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ strike the references to abort, at_exit and exit, or clarify which
+ headers only require partial support.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 172</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">No
+ reference to new functions quick_exit and at_quick_exit</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ reference to quick_exit and at_quick_exit </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 173</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">table
+ 15</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">&lt;initializer_list&gt;
+ is missing from headers required in freestanding implementations.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ 18.8, initializer lists, &lt;initializer_list&gt;, to the end of
+ the table.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 23</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">17.6.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Table 15</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There is a freestanding
+ implementation including &lt;type_traits&gt;, &lt;array&gt;,
+ &lt;ratio&gt;, lately added to Table 13, C++ library
+ headers.<BR>Programmers think them useful and hope that these
+ headers are also added to Table 15, C++ headers for freestanding
+ implementations, that shows the set of headers which a
+ freestanding implementation shall include at least.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add &lt;type_traits&gt;,
+ &lt;array&gt;, &lt;ration&gt; to Table 15.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 174</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ phrasing is mildly ambiguous when using the word 'it' to refer
+ back to the header - an unfotunate reading might confuse it with
+ the translate unit, which is the subject of the surrounding
+ clause.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ 'the first reference to any of the entities declared in that
+ header by the translation unit' with 'the first reference to any
+ of the entities that header declares in the translation unit' </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 175</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.4.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Local
+ types can now be used to instantiate templates, but don't have
+ external linkage</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the reference to external linkage </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 176</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.4.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 175</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Reference
+ to namespace ::std should be 17.6.4.2</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ referfence from 17.6.4.3 to 17.6.4.2 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 177</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.4.3.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Sentence
+ is redundant as double underscores are reserved in all contexts by
+ 17.6.4.3.3</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the sentence </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 178</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.4.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ last sentence of the third bullet &quot;Operations on such types
+ can report a failure by throwing an exception unless otherwise
+ specified&quot; is redundant as behaviour is already undefined.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the sentence </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 179</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.4.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">According
+ to the 4th bullet there is a problem if &quot;if any replacement
+ function or handler function or destructor operation throws an
+ exception&quot;. There should be no problem throwing exceptions so
+ long as they are caught within the function.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the word 'throws' with 'propogates' </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 22</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">17.6.5.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The statement below describes
+ relation among two or more threads using words &ldquo;between
+ threads&rdquo;:<BR>[Note: This means, for example, that
+ implementations can&rsquo;t use a static object for internal
+ purposes without synchronization because it could cause a data
+ race even in programs that do not explicitly share objects between
+ threads. &mdash;end note ]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In such case, &ldquo;among&rdquo;
+ is preferred instead of &ldquo;between&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change &quot;between threads&quot;
+ to &quot;among threads&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There are same cases in 17.6.1
+ paragraph 2, 17.6.5.7 paragraph 6, 30.1 paragraph 1, 30.3.1
+ paragraph 1 also.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 180</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.5.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1,
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ should not be possible to strengthen the exception specification
+ for virtual functions as this could break user code. Note this is
+ not a problem in practice as there are no virtual functions with
+ exception specifications in the current library, other than empty
+ throw specifications which it is not possible to strengthen.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ restriction that exception specification of virtual functions
+ cannot be tightened.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 181</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.5.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 186</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ footnote is wrong. C library functions do not have any exception
+ specification, but might be treated as if they had an empty throw
+ specification</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ that this note does not mean the functions are genuinely declared
+ with the specification, but are treated as-if. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 182</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">17.6.5.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 188</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is very helpful to assume all exceptions thrown by the standard
+ library derive from std::exception. The 'encouragement' of this
+ note should be made normative.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Make
+ this footnote normative</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 184</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18
+ -&gt; 30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ new alias-declaration syntax is generally easier to read than a
+ typedef declaration. This is especially true for complex types
+ like function pointers.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ all typedef declarations in the standard library with
+ alias-declarations, except in the standard C library.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 24</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Table 16</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Subclauses are listed in Table
+ 16 as:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;18.6 Type identification
+ &hellip;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;18.8 Initializer lists
+ &hellip;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;18.7 Exception handling
+ &hellip;&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.06in; text-indent: -0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Sort them in the increasing
+ order <BR>&quot;18.6 Type identification &hellip;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;18.7 Exception handling
+ &hellip;&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;18.8 Initializer lists
+ &hellip;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 25</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph , last line, SEE ALSO</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">max_align_t is described in
+ 18.1, so add 3.11 Alignment as the reference.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>3.11,
+ Alignment</U></FONT><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;
+ to </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">SEE ALSO.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 32</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">18.2.1
+ [Numeric limits]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ definition of numeric_limits&lt;&gt; as requiring a regular type
+ is both conceptually wrong and operationally illogical. As we
+ pointed before, this mistake needs to be corrected. For example,
+ the template can be left unconstrained. In fact this reflects a
+ much more general problem with concept_maps/axioms and their
+ interpretations. It appears that the current text heavily leans
+ toward experimental academic type theory.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">We
+ suggest that a more pragmatic approach, in the spirit of C and
+ C++, be taken so that calls to constrained function templates are
+ interpreted as assertions on *values*, not necessarily semantics
+ assertions on the carrier type.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-16</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">18.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-16
+ The class template <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">numeric_limits</FONT></FONT>
+ should not specify the <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">Regular</FONT></FONT>
+ concept requirement for its template parameter, because it
+ contains functions returning NaN values for floating-point types;
+ these values violate the semantics of <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">EqualityComparable</FONT></FONT>.
+ See also library issue 902 in WG21 document N2794 &quot;C++
+ Standard Library Active Issues List (Revision R60)&quot;,
+ available at
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2794.html
+ .</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Specify
+ a concept requirement with fewer constraints as appropriate, for
+ example <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">SemiRegular</FONT></FONT>.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 26</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.2.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">numeric_limits does not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class T&gt; class
+ numeric_limits&lt;const T&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class T&gt; class
+ numeric_limits&lt;volatile T&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class T&gt; class
+ numeric_limits&lt;const volatile T&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Regular</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ T&gt; class numeric_limits&lt;const T&gt;;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Regular</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ T&gt; class numeric_limits&lt;volatile T&gt;;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Regular</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ T&gt; class numeric_limits&lt;const volatile T&gt;;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-17</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">18.2.6
+ </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-17
+ The class <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">type_index</FONT></FONT>
+ should be removed; it provides no additional functionality beyond
+ providing appropriate concept maps.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Specify
+ concept maps for &quot;const type_info *&quot; as required by the
+ ordered and unordered containers and remove the class <FONT FACE="Bitstream Vera Sans Mono, Lucida Console, monospace"><FONT FACE="Arial, sans-serif">type_index</FONT></FONT>.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 185</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is no header &lt;stdint&gt;, it should either be &lt;stdint.h&gt;
+ or &lt;cstdint&gt;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &lt;stdint&gt; with &lt;cstdint&gt;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-18</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">18.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-18
+ The proposed C++ standard makes a considerable number of existing
+ programs that have well-defined behavior according to ISO/IEC
+ 14882:2003 have undefined behavior without a diagnostic hint to
+ the programmer at all. This applies to the presence of threads and
+ to pointer safety (the latter was introduced to support garbage
+ collection). In order to avoid requiring a full code review for
+ user code, facilities should be present that allow the
+ compile-time detection of the advanced features of the proposed
+ C++ standard. It is expected that C++ implementations will provide
+ a means (for example, a command-line switch) to turn off either or
+ both of threads and garbage collection support, turning
+ potentially undefined programs into well-defined ones.<BR><I>Note:</I>
+ This issue is contributing significantly to Germany's overall
+ &ldquo;no&rdquo; vote.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ applying the changes proposed in WG21 document N2693 &quot;Requirements
+ on programs and backwards compatibility&quot;, available at
+ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2693.html
+ .</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 186</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 221</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">What
+ is the purpose of this comment? The standard stream objects (cin,
+ cerr etc.) have a peculiar lifetime that extends beyond the
+ program. They may never be destroyed so will not be responsible
+ for flushing buffers at the stated time.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the footnote</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 187</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ term &quot;thread safe&quot; is not defined nor used in this
+ context anywhere else in the standard.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ the intended meaing of &quot;thread safe&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 188</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ function _Exit does not appear to be defined in this standard.
+ Should it be added to the table of functions included-by-reference
+ to the C standard?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Depends
+ on where _Exit comes from</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 189</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.4,
+ 18.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ addition of the [[noreturn]] attribute to the language will be an
+ important aid for static analysis tools.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ following functions should be declared in C++ with the
+ [[noreturn]] attribute: abort exit quick_exit terminate unexpected
+ rethrow_exception throw_with_nested</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 27</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.4,
+ 18.9, 18.7.2.2, 18.7.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There are Standard library
+ functions that never return to the caller. They are explained so
+ in the Standard but not declared explicitly.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Consider to add the attribute
+ [[noreturn]] to such functions, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">15.5.2 unexpected<BR> 18.4:
+ abort(), exit(), quick_exit, <BR> 18.7.2.2: unexpected_handler, <BR>
+ 18.7.3.1: terminate_handler, </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">18.7.6 rethrow_nested</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">18.7.6 throw_with_nested<BR>
+ 18.9: longjmp.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 190</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">various</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not entirely clear how the current specification acts in the
+ presence of a garbage collected implementation.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">All
+ deallocation functions taking a pointer parameter should have a
+ Precondition : ptr is a safely-derived pointer value.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 191</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">According
+ to the second bullet, behaviour becomes undefined (for lack of a
+ specification) if the user has not yet called set_new_handler.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Rephrase
+ the second bullet in terms of a new handler being installed, and
+ update any definition of handler function necessary to be sure the
+ term 'installed' is defined.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 192</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.5.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ declared signature is not compatible with the current requirement
+ to throw std::length_error. It is too late to weaken the exception
+ specification, so the only other change is to preserve new
+ (improved) behaviour is to throw std::bad_alloc, or something
+ derived from std::bad_alloc.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Fix
+ 5.3.4p7 by required std::bad_alloc rather than std::length_error</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 193</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.5.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">quick_exit
+ has been added as a new valid way to terminate a program in a well
+ defined way</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ 3rd bullet: call either abort(), exit() or quick_exit();</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 194</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ inclusion of type_index and hash&lt;type_index&gt; in &lt;typeinfo&gt;
+ brings dependencies into &lt;typeinfo&gt; which are inconsistent
+ with the definition of freestanding C++ in 17.6.2.4.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ type_index and hash&lt;type_index&gt; out of &lt;typeinfo&gt; and
+ into a new header, &lt;typeindex&gt;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 28</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.6,
+ 18.7, 19.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Errors
+ reported by Exception classes are of types char or std::string
+ only.</FONT><FONT SIZE=2 STYLE="font-size: 9pt"> </FONT><FONT SIZE=2 STYLE="font-size: 9pt">For
+ example, std::exception is declared with char, std::string types,
+ therefore types wchar_t/wstring, char16_t/u16string, or
+ char32_t/u32string can not be used.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Consider other types.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 29</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">throw_with_nested does not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class T&gt; void
+ throw_with_nested(T&amp;&amp; t); // [[noreturn]]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;CopyConstructible
+ T&gt; void throw_with_nested(T&amp;&amp; t); // [[noreturn]]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 30</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">To handle nested exceptions
+ strictly, error information of tree structure will be required
+ though, the nested_exception does not support tree structure. It
+ is insufficient as error handling.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Consider nested_exception to
+ support tree structure.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 31</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">18.7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It is difficult to understand
+ in which case nested_exception is applied.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Consider to add a sample
+ program which rethrows exception.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 195</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ class definition of std::initializer_list contains concept-maps to
+ Range which should be out of the class, and in &lt;iterator_concepts&gt;
+ instead. Otherwise, it's not possible to use initializer_lists in
+ a freestanding C++ implementation.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ the two concept maps from std::initializer_list.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 196</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">18.8.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Concept
+ maps for initializer_list to Range should not be in language
+ support headers, but instead in iterator concepts.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ section 18.8.3 and put it in 24.1.8.1 instead, so that the
+ concept_maps from initializer_list to Range are specified under
+ Range instead of under initializer lists; also, so that they're
+ implemented in &lt;iterator_concepts&gt; instead of
+ &lt;initializer_list&gt;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 197</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">19</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">All
+ the exception classes in this clause take a std::string argument
+ by const reference. They should all be overloaded to accept
+ std::string by rvalue rerefence for an efficient move as well.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a constructor for every exception class in clause 19 accepting a
+ std::string by rvalue reference, with the semantics that the
+ passed string may be moved.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 32</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">19.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Messages returned by the
+ member function what() of standard exception classes seem
+ difficult to judge.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">For example, following
+ messages are returned by what() of std::bad_alloc of existing
+ implementations:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Compiler: Message
+ returned by what()</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">---------------------------------------------</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Borland C++ 5.6.4: no named
+ exception thrown</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Visual C++ 8.0: bad
+ allocation</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Code Warrior 8.0: exception</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">g++ 3.4.4:
+ St9exception</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It is difficult to recognize
+ what exception was thrown when using those compilers except Visual
+ C++.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Consider to add footnote that
+ recommends what() returns message easy to recognize what exception
+ was thrown.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 64</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">19.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT COLOR="#000000">&ldquo;</FONT> <FONT SIZE=2 STYLE="font-size: 9pt">See
+ also: </FONT><FONT SIZE=2 STYLE="font-size: 9pt">ISO C 7.1.4, 7.2,
+ Amendment 1 4.3.</FONT><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">&rdquo;
+ It is unclear why this cross reference is here. Amendment 1 was to
+ C89, not C99.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Delete
+ this cross reference. If necessary, expand the main text to
+ include the relevant referenced text</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 65</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Scoped
+ allocators and allocator propagation traits add a small amount of
+ utility at the cost of a great deal of machinery. The machinery is
+ user visible, and it extends to library components that don't have
+ any obvious connection to allocators, including basic concepts and
+ simple components like pair and tuple.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Sketch of proposed resolution:
+ Eliminate scoped allocators, replace allocator propagation traits
+ with a simple uniform rule (e.g. always propagate on copy and
+ move), remove all mention of allocators from components that don't
+ explicitly allocate memory (e.g. pair), and adjust container
+ interfaces to reflect this simplification. </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Components
+ that I propose eliminating include </FONT><FONT COLOR="#0000ff"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN STYLE="background: #ffffce">HasAllocatorType</SPAN></FONT></FONT><FONT COLOR="#000080"><U>?</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">,
+ is_scoped_allocator, allocator_propagation_map,
+ scoped_allocator_adaptor, and </FONT><FONT COLOR="#0000ff"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN STYLE="background: #ffffce">ConstructibleAsElement</SPAN></FONT></FONT><FONT COLOR="#000080"><U>?</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">.
+ </FONT></FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 198</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ organization of clause 20 could be improved to better group
+ related items, making the standard easier to navigate.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">20.6.7,
+ 20.6.8, 20.6.9 and 20.6.10 should be grouped under a section
+ called &quot;operator wrappers&quot; or similar. The goal of all 4
+ subsections combined is to provide a functor for every operator in
+ the language. 20.6.17 class template hash should numerically
+ appear immediately after the operator wrappers, as they are
+ functors that are used in similar ways 20.6.11, 20.6.12, 20.6.13,
+ 20.6.14, 20.6.15 are strongly related to 20.6.3, and to an extent
+ 20.6.2. These should all come under a subheading of &quot;function
+ adapters&quot; 20.7.1, 20.7.3, 20.7.4, 20.7.5, 20.7.6, 20.7.7 and
+ 20.7.10 should all be grouped as subclauses under [20.7.2
+ Allocators] [20.7.12 unique_ptr] should be a sub-section of
+ [20.7.13 smart pointers] [20.7.13 smart pointers] is important
+ enough to have a high level bullet after [20.7 memory], suggest
+ renumbering as [20.8 smart pointers] [20.7.13.7 Pointer safety] is
+ nothing to do with smart pointers and should become its own
+ subclause [20.7.14 Pointer safety] [20.9 date and time functions]
+ should be moved under [20.8 time utilities] and retitled [20.8.6 C
+ Library] (as per memory management/C Library) [20.6.18
+ reference_closure] is fundamentally a language support feature and
+ should move to clause 18, see separate comment [20.6.5
+ reference_wrapper] should be simplified and moved into [2.2
+ utility components], see separate comment [20.6.4 result_of]
+ should be reorganised as a type trait - see separate comment
+ Tuples and pairs are closely related so merge tuple and pair into
+ the same subclause - see more general comment on this </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 199</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.1.1,
+ 20.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ requirement that programs do not supply concept_maps should
+ probably be users do not supply their own concept_map
+ specializations. THe program will almost certainly supply
+ concept_maps - the standard itself supplies a specialization for
+ RvalueOf? references. Note that the term _program_ is defined in
+ 3.5p1 and makes no account of the standard library being treated
+ differently to user written code.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the term 'program' with 'user'.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 200</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">All
+ standard library use expects Predicates to be CopyConstructible,
+ and this should be recognised easily without reatedly stating on
+ every use-case.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ require CopyConstructible&lt;F&gt; as part of Predicate, or create
+ a refined concept, StdPredicate, used throughout the library that
+ requires CopyConstructible as well as Callable. Consider making
+ (Std)Predicate SemiRegular.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 201</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ Consistency axiom for LessThanComparable will not compile.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a requires clause to the Consistency axiomL requires
+ HasLessEquals&lt;T&gt; &amp;&amp; HasGreaterEquals&lt;T&gt;, or
+ split the Consistency axiom into two so that 'basic' consistency
+ can be asserted regardless of the &lt;=/&gt;= requirement.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 33</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">LessThanComparable and
+ EqualityComparable don't correspond to NaN.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Apply concept_map to these
+ concepts at FloatingPointType</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 66</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.1.10</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">Application
+ of the &quot;Regular&quot; concept to floating-point types appears
+ to be controversial (see long discussion on std-lib reflector).</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">State
+ that the &ldquo;Regular&rdquo; concept does not apply to
+ floating-point types.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 34</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Though N2672 pointed at adding
+ &quot;#include&lt;initializer_list&gt;&quot;, it isn't reflected.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">add followings</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">#include &lt;initializer_list&gt;
+ // for concept_map</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 67</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">&para;
+ 5 first sent.</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Some
+ connective words are missing.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ &ldquo;corresponding to&rdquo; before &ldquo;an lvalue reference
+ type.&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 35</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">&quot;stdforward&quot;
+ should be &quot;std::forward&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Correct
+ typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 202</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ references to pair in the tuple-like access to pair functions
+ qualify pair with std::pair even though they are in a namespace
+ std block.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the std:: qualification from these references to pair.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 68</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.2.12</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">IntegralLike</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te/ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ code defining the context is syntactically incorrect.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ a comma in two places: at the end of the third line of
+ refinements, and at the end of the fourth line of refinements.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 203</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1-4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ ratio_xyz types have a misplaced '}'. For example: template &lt;class
+ R1, class R2&gt; struct ratio_add { typedef see below} type; ;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the '}' to after the typedef: template &lt;class R1, class R2&gt;
+ struct ratio_add { typedef see below type; };</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 36</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.4.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">19</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;it it&quot; should be
+ &quot;it is&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 204</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 41</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not possible to create a variant union based on a parameter
+ pack expansion, e.g. to implement a classic discriminated union
+ template.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Restore
+ aligned_union template that was removed by LWG issue 856.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 69</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ section, dealing with tuple&lt;&gt;, should be in the same section
+ as the similar utility pair&lt;&gt;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Restructure
+ Clause 20 so as to bring these similar components together.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 205</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">integral_constant
+ objects should be usable in integral-constant-expressions. The
+ addition to the language of literal types and the enhanced rules
+ for constant expressions make this possible.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a constexpr conversion operator to class tempalate
+ integral_constant: constexpr operator value_type() { return value;
+ }</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 206</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.5.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">para
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Currently
+ the std says: &quot;In order to instantiate the template
+ is_convertible&lt;From, To&gt;, the following code shall be well
+ formed:&quot; But the code shown is the requirement for the result
+ of is_convertible to be a true_type, not a precondition on whether
+ the template can be instantiated.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change:
+ &quot;In order to instantiate the template is_convertible&lt;From,
+ To&gt;, the following code shall be well formed:&quot; To: &quot;The
+ template is_convertible&lt;From, To&gt; inherits either directly
+ or indirectly from true_type if the following code is well
+ formed:&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 207</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.5.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 36</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">suffix
+ &quot;::type&quot; is missing from the some of the examples.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Change:
+ Example:remove_const&lt;const volatile int&gt;::type evaluates to
+ volatile int, whereas remove_const&lt;const int*&gt; is const
+ int*. &mdash;end example To: Example:remove_const&lt;const
+ volatile int&gt;::type evaluates to volatile int, whereas
+ remove_const&lt;const int*&gt;::type is const int*. &mdash;end
+ example And change: Example:remove_volatile&lt;const volatile
+ int&gt;::type evaluates to const int, whereas
+ remove_volatile&lt;volatile int*&gt; is volatile int*. &mdash;end
+ example To: Example:remove_volatile&lt;const volatile int&gt;::type
+ evaluates to const int, whereas remove_volatile&lt;volatile
+ int*&gt;::type is volatile int*. &mdash;end example And change:
+ Example:remove_cv&lt;const volatile int&gt;::type evaluates to
+ int, whereas remove_cv&lt;const volatile int*&gt; is const
+ volatile int*. &mdash;end example To: Example:remove_cv&lt;const
+ volatile int&gt;::type evaluates to int, whereas remove_cv&lt;const
+ volatile int*&gt;::type is const volatile int*. &mdash;end example</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 37</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.5.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 41</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.19in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There isn't a period at the
+ end of enable_if's comments.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">If B is true, the member
+ typedef type shall equal T; otherwise, there shall be no member
+ typedef type</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">If B is true, the member
+ typedef type shall equal T; otherwise, there shall be no member
+ typedef type.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add &rdquo;.&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 70</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Specifications
+ now expressed via narrative text are more accurately and clearly
+ expressed via executable code.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Wherever
+ concepts are available that directly match this section&rsquo;s
+ type traits, express the traits in terms of the concepts instead
+ of via narrative text. Where the type traits do not quite match
+ the corresponding concepts, bring the two into alignment so as to
+ avoid two nearly-identical notions.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 71</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.6.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 51, last row, column 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ grammar is incorrect.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &ldquo;conversion are&rdquo; to &ldquo;conversion is&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 38</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.6.12.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.19in; text-indent: -0.19in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">add the move requirement for
+ bind's return type.<BR></FONT><BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.19in; text-indent: -0.19in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">For example, assume following
+ th1 and th2,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt"><BR>void f(vector&lt;int&gt;
+ v) { }<BR><BR>vector&lt;int&gt; v{ ... };<BR>thread th1([v]{ f(v);
+ });<BR>thread th2(bind(f, v));<BR><BR>When function object are set
+ to thread, v is moved to th1's lambda expression in a Move
+ Constructor of lambda expression becuase th1's lambda expression
+ has a Move Constructor. But bind of th2's return type doesn't have
+ the requirement of Move, so it may not moved but copied.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the requirement of move to
+ get rid of this useless copy.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">And also, add the
+ MoveConstructible as well as CopyConstructible.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the following requirements.<BR>&quot;</FONT><FONT COLOR="#000000"><FONT SIZE=2 STYLE="font-size: 9pt">it
+ has a public move constructor that performs a member-wise move.&quot;</FONT></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the MoveConstructible.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 39</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.6.16.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There are no requires
+ corresponding to F of std::function.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt; function(allocator_arg_t, const A&amp;, F);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt; function(allocator_arg_t, const A&amp;, F&amp;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">function(allocator_arg_t,
+ const A&amp;, F);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">function(allocator_arg_t,
+ const A&amp;, F&amp;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 40</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.6.16.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Thougn it's &quot;Allocator
+ Aloc&quot; at other places, it's &quot;Allocator A&quot; only
+ std::function constructor template parameter.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt; function(allocator_arg_t, const A&amp;, F);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class F, Allocator
+ A&gt; function(allocator_arg_t, const A&amp;, F&amp;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ F, Allocator </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ function(allocator_arg_t, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ &amp;, F);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ F, Allocator </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ function(allocator_arg_t, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ &amp;, F&amp;&amp;);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 41</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.6.16.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There are no requires
+ corresponding to R and Args of UsesAllocator.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class R, class...
+ Args&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">concept_map
+ UsesAllocator&lt;function&lt;R(Args...)&gt;, Alloc&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef Alloc
+ allocator_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ Args&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">concept_map
+ UsesAllocator&lt;function&lt;R(Args...)&gt;, Alloc&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef Alloc
+ allocator_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 42</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.6.16.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The requires are wrong.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">R require Returnable, and
+ ArgTypes requires CopyConstructible by a definition of function,
+ then it's a mistake to designate followings by MoveConstructible.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;MoveConstructible
+ R, MoveConstructible... ArgTypes&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator==(const
+ function&lt;R(ArgTypes...)&gt;&amp;, nullptr_t);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;MoveConstructible
+ R, MoveConstructible... ArgTypes&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator==(nullptr_t,
+ const function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;MoveConstructible
+ R, MoveConstructible... ArgTypes&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator!=(const
+ function&lt;R(ArgTypes...)&gt;&amp;, nullptr_t);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;MoveConstructible
+ R, MoveConstructible... ArgTypes&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator!=(nullptr_t,
+ const function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;MoveConstructible
+ R, MoveConstructible... ArgTypes&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(function&lt;R(ArgTypes...)&gt;&amp;,
+ function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ ArgTypes&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator==(const
+ function&lt;R(ArgTypes...)&gt;&amp;, nullptr_t);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ ArgTypes&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator==(nullptr_t,
+ const function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ ArgTypes&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator!=(const
+ function&lt;R(ArgTypes...)&gt;&amp;, nullptr_t);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ ArgTypes&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator!=(nullptr_t,
+ const function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Returnable</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ R, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CopyConstructible</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">...
+ ArgTypes&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(function&lt;R(ArgTypes...)&gt;&amp;,
+ function&lt;R(ArgTypes...)&gt;&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 208</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.6.17</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">std::hash
+ should be implemented for much more of the standard library. In
+ particular for pair, tuple and all the standard containers.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 209</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Smart
+ pointers cannot be used in constrained templates</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for smart pointers </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 213</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">std::allocator
+ should be constrained to simplify its use on constrained contexts.
+ This library component models allocation from free store via the
+ new operator so choose constraints to match. The Allocator concept
+ allows for a wider variety of allocators that users may choose to
+ supply if their allocation model does not require operator new,
+ without impacting the requirements of this template.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ primary allocator template should be constrained to require
+ ObjectType&lt;T&gt; and FreeStoreAllocatable&lt;T&gt;. Further
+ operations to be constrained as required.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 214</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">raw_storage_iterator
+ needs constraining as an iterator adaptor to be safely used in
+ constrained templates</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Constrain
+ the raw_storage_iterator template</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 210</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7.11</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Specialized
+ algorithms for memory managenment need requirements to be easily
+ usable in constrained templates</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for all algorithms in 20.7.11</FONT></P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-20</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.7.12</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-20
+ The section heading and the first sentence use the term &quot;template
+ function&quot;, which is undefined.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;template function&quot; by &quot;function template&quot;. </FONT>
+ </P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 72</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.7.12</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bind should support move-only
+ functors and bound arguments.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-21</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.7.12.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-21
+ The specification for bind claims twice that &quot;the values and
+ types for the bound arguments v1, v2, ..., vN are determined as
+ specified below&quot;. No such specification appears to exist.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the missing specification in the same section, or add a
+ cross-reference indicating the section where the specification
+ appears.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 211</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7.12.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ nullptr_t type was introduced to resolve the null pointer literal
+ problem. It should be used for the assignemnt operator, as with
+ the constructor and elsewhere through the library.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ signature here and in the synopsis to: unique_ptr&amp;
+ operator=(nullptr_t); Strike the sentance an note before the
+ Effects clause.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 212</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.7.13.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ pointer-safety API is nothing to do with smart pointers, so does
+ not belong in 20.7.13. In fact it is a set of language support
+ features are really belongs in clause 18, with the contents
+ declared in a header that deals with language-support of memory
+ management.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ this specification to 18.5. Move the declarations into the header
+ &lt;new&gt;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-22</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.7.16.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-22
+ The conditions for deriving from std::unary_function and
+ std::binary_function are unclear: The condition would also be
+ satisfied if ArgTypes were std::vector&lt;T1&gt;, because it
+ (arguably) &quot;contains&quot; T1.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Consider
+ stating the conditions in normative prose instead of in comments
+ in the class definition. Use &quot;consists of&quot; instead of
+ &quot;contains&quot;. Consider using &quot;if and only if&quot;
+ instead of &quot;iff&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 73</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">20.7.18</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ std::reference_closure template is redundant with std::function
+ and should be removed.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">std::reference_closure
+ is a premature optimization that provides a limited subset of the
+ functionality of std::function intended to improve performance in
+ a narrow use case. However, the &ldquo;parallel application
+ performance&rdquo; benchmark used to motivate the inclusion of
+ std::reference_closure was flawed in several ways:</FONT></FONT></P>
+ <OL START=3>
+ <LI><P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">it
+ failed to enable a common optimization in std::function
+ (implemented by all vendors), exacting a large and unrealistic
+ penalty for copying std::function instances, and</FONT></FONT></P>
+ <LI><P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">it
+ failed to account for parallel scheduler overhead or
+ realistically-sized work units, both of which would dominate the
+ costs measured by the benchmark in any realistic application.</FONT></FONT></P>
+ </OL>
+ <P ALIGN=LEFT STYLE="margin-left: 0.25in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.7.18 [func.referenceclosure].</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 5.1.1 paragraph 12.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 74</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">20.8</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Scoped
+ allocators represent a poor trade-off for standardization, since
+ (1) scoped-allocator--aware containers can be implemented outside
+ the C++ standard library but used with its algorithms, (2) scoped
+ allocators only benefit a tiny proportion of the C++ community
+ (since few C++ programmers even use today&rsquo;s allocators), and
+ (3) all C++ users, especially the vast majority of the C++
+ community that won&rsquo;t ever use scoped allocators are forced
+ to cope with the interface complexity introduced by scoped
+ allocators. In essence, the larger community will suffer to
+ support a very small subset of the community who can already
+ implement their own data structures outside of the standard
+ library. Therefore, scoped allocators should be removed from the
+ working paper.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Some
+ evidence of the complexity introduced by scoped allocators:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">20.3.3,
+ 20.5: large increase in the number of pair and tuple constructors</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">23:
+ confusing &ldquo;AllocatableElement&rdquo; requirements
+ throughout.</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ support for scoped allocators from the working paper. This
+ includes at least the following changes:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.8.3 [allocator.element.concepts]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.8.7 [allocator.adaptor]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.8.10 [construct.element]</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ Clause 23: replace requirements naming the AllocatableElement
+ concept with requirements naming CopyConstructible,
+ MoveConstructible, DefaultConstructible, or Constructible, as
+ appropriate.</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 74</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.8.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">(a)
+ synopsis (b) after &para; 14</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te/ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ concept name is twice misspelled.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &ldquo;Hasconstructor&rdquo; to &ldquo;HasConstructor&rdquo;
+ (twice).</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 75</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.8.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">Allocator
+ concepts are incomplete</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ paper:
+ http://www.halpernwightsoftware.com/WG21/n2810_allocator_defects.pdf></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 43</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.8.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;alloc&quot; should be
+ &quot;Alloc&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">auto concept
+ UsesAllocator&lt;typename T, typename Alloc&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">requires Allocator&lt;alloc&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typename allocator_type =
+ T::allocator_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">auto concept
+ UsesAllocator&lt;typename T, typename Alloc&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">requires
+ Allocator&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typename allocator_type =
+ T::allocator_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 215</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20.8.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6,8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Extra
+ pair of {}, presumably some formatting code gone awry : duration&amp;
+ operator-{-}();</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the {} or fix formatting</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 77</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">20.8.4</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Allocator-specific
+ move and copy behavior for containers (N2525) complicates a
+ little-used and already-complicated portion of the standard
+ library (allocators), and breaks the conceptual model of
+ move-constructor and move-assignment operations on standard
+ containers being efficient operations. The extensions for
+ allocator-specific move and copy behavior should be removed from
+ the working paper.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">With
+ the introduction of rvalue references, we are teaching programmers
+ that moving from a standard container (e.g., a vector&lt;string&gt;)
+ is an efficient, constant-time operation. The introduction of
+ N2525 removed that guarantee; depending on the behavior of four
+ different traits (20.8.4), the complexity of copy and move
+ operations can be constant or linear time. This level of
+ customization greatly increases the complexity of standard
+ containers, and benefits only a tiny fraction of the C++
+ community.</FONT></FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.8.4.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 20.8.5.</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ all references to the facilities in 20.8.4 and 20.8.5 from clause
+ 23.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 78</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.8.12,
+ 20.8.13.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is presently no way to convert directly from a </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">shared_ptr</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ to a </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">unique_ptr</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ an interface that performs the conversion. See the attached,
+ Issues with the C++ Standard&quot; paper under Chapter 20,
+ &quot;Conversion from </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">shared_ptr</FONT></FONT></CODE><FONT SIZE=2 STYLE="font-size: 9pt">
+ to </FONT><CODE><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">unique_ptr&quot;.</FONT></FONT></CODE></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 79</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.8.12.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">[unique.ptr.single.ctor]/5 no
+ longer requires for D not to be a pointer type. &nbsp;This
+ restriction needs to be put back in. &nbsp;Otherwise we have a run
+ time failure that could have been caught at compile time:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">unique_ptr&lt;int,
+ void(*)(void*)&gt; p(malloc(sizeof(int))); &nbsp;// should not
+ compile</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">unique_ptr&lt;int,
+ void(*)(void*)&gt; p(malloc(sizeof(int)), free); &nbsp;// ok</FONT></P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 44</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.8.13.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The 1st parameter p and 2nd
+ parameter v is now shared_ptr&lt;T&gt; *.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It should be shared_ptr&lt;T&gt;&amp;,
+ or if these are shared_ptr&lt;T&gt;* then add the &quot;p shall
+ not be a null pointer&quot; at the requires.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change shared_ptr&lt;T&gt;&amp;
+ or add the &quot;p shall not be a null pionter&quot; at the
+ requires.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 45</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Rep, Period, Clock and
+ Duration don't correspond to concept.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class Rep, class
+ Period = ratio&lt;1&gt;&gt; class duration;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class Clock,
+ class Duration = typename Clock::duration&gt; class time_point;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Make concept for Rep, Period,
+ Clock and Duration, and fix 20.9 and wait_until and wait_for's
+ template parameter at 30.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 80</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.9.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Heading</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ section heading does not describe the contents.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the heading &ldquo;<SPAN LANG="en-US">is_floating_point</SPAN>&rdquo;
+ to &ldquo;<SPAN LANG="en-US">treat_as_floating_point</SPAN>&rdquo;.
+ Optionally adjust the section&rsquo;s label similarly.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 81</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">20.9.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">chrono::duration is missing
+ the modulous operator for both member and non-member arithmetic.
+ This operator is useful for finding the position of a duration
+ within a bounded time frame. Having it be built in to duration is
+ safer than requiring the client to extract and operate directly on
+ the duration&rsquo;s representation as the latter will not enforce
+ the correct units of the operation.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Ex:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">milliseconds ms(...);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">microseconds us(...);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ms % us; // microseconds</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">us % ms; // microseconds</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ms % 5; // milliseconds</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">5 % ms; // does not compile</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Add:</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class Rep, class
+ Period = ratio&lt;1&gt;&gt; </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class duration { </FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public: </FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">duration&amp;
+ operator%(const rep&amp;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">duration&amp;
+ operator%(const duration&amp;);</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">..</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class Rep1, class Period,</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">class
+ Rep2&gt; </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">duration&lt;typename
+ common_type&lt;</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Rep1,
+ Rep2&gt;::type, Period&gt; </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">operator%(const
+ duration&lt;Rep1, Period&gt;&amp; d, const Rep2&amp; s); </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class Rep1, class Period1,</FONT></FONT></P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">class
+ Rep2, class Period2&gt; </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">typename
+ common_type&lt;duration&lt;Rep1, Period1&gt;, duration&lt;Rep2,
+ Period2&gt;&gt;::type </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT STYLE="margin-bottom: 0in"> <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">operator%(const
+ duration&lt;Rep1, Period1&gt;&amp; lhs, const duration&lt;Rep2,
+ Period2&gt;&amp; rhs); </FONT></FONT>
+ </P>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 82</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">20.9.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">after
+ &para; 1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ code synopsis has a minor alignment error.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Align
+ &ldquo;rep&rdquo; with the other symbols defined in this synopsis.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 216</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">21</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">All
+ the containers use concepts for their iterator usage, exect for
+ basic_string. This needs fixing.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Use
+ concepts for iterator template parameters throughout the chapter.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 46</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">21.2,
+ 21.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The basic_string does not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The &quot;class Alloc&quot; is
+ changed to &quot;Allocator Alloc&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The &quot;class
+ InputIterator&quot; is changed to &quot;InputIterator Iter&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3, basic_string:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class charT, class
+ traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ Alloc = allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_string;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">operator+(const charT*
+ lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">operator+(const charT*
+ lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(charT
+ lhs, const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(charT
+ lhs, basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs, charT rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">operator+(basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ lhs, charT rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator==(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator==(const charT*
+ lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator==(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator!=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator!=(const charT*
+ lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator!=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&lt; (const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&lt; (const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator&lt; (const
+ charT* lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&gt; (const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&gt; (const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator&gt; (const
+ charT* lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&lt;=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&lt;=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator&lt;=(const
+ charT* lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&gt;=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">bool
+ operator&gt;=(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ lhs,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const charT*
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">bool operator&gt;=(const
+ charT* lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ rhs);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.8.8: swap</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_string&lt;charT,traits,Alloc&gt;&amp; lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,Alloc&gt;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_string&lt;charT,traits,Alloc&gt;&amp;&amp; lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,Alloc&gt;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_string&lt;charT,traits,Alloc&gt;&amp; lhs,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,Alloc&gt;&amp;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.8.9: inserters and
+ extractors</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istream&lt;charT,traits&gt;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">operator&gt;&gt;(basic_istream&lt;charT,traits&gt;&amp;&amp;
+ is,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_ostream&lt;charT,
+ traits&gt;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">operator&lt;&lt;(basic_ostream&lt;charT,
+ traits&gt;&amp;&amp; os,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istream&lt;charT,traits&gt;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">getline(basic_istream&lt;charT,traits&gt;&amp;&amp;
+ is,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">charT delim);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istream&lt;charT,traits&gt;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">getline(basic_istream&lt;charT,traits&gt;&amp;&amp;
+ is,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3 Class template
+ basic_string</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class charT,
+ class traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_string {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// types:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef traits traits_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::char_type value_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ allocator_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::size_type
+ size_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::difference_type
+ difference_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::reference
+ reference;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::const_reference
+ const_reference;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::pointer
+ pointer;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ typename </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">::const_pointer
+ const_pointer;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ implementation-defined iterator; // See 23.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ implementation-defined const_iterator; // See 23.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::reverse_iterator&lt;iterator&gt; reverse_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::reverse_iterator&lt;const_iterator&gt;
+ const_reverse_iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">static const size_type npos
+ = -1;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.2
+ construct/copy/destroy:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_string(const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string(const
+ basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string(basic_string&amp;&amp;
+ str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string(const
+ basic_string&amp; str, size_type pos, size_type n = npos,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string(const charT* s,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(const
+ charT* s, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(size_type
+ n, charT c, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ begin, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ end,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(initializer_list&lt;charT&gt;,
+ const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ = </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">());</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(const
+ basic_string&amp;, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string(basic_string&amp;&amp;,
+ const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">~basic_string();</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ operator=(const basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ operator=(basic_string&amp;&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ operator=(const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ operator=(charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ operator=(initializer_list&lt;charT&gt;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.3 iterators:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.4 capacity:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.5 element access:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.6 modifiers:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(const basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(const basic_string&amp; str, size_type pos,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(const charT* s, size_type n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(size_type n, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ first, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ last);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ append(initializer_list&lt;charT&gt;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void push_back(charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(const basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(basic_string&amp;&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(const basic_string&amp; str, size_type pos,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(const charT* s, size_type n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(size_type n, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ first, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ last);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ assign(initializer_list&lt;charT&gt;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ insert(size_type pos1, const basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ insert(size_type pos1, const basic_string&amp; str,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ pos2, size_type n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ insert(size_type pos, const charT* s, size_type n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ insert(size_type pos, const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ insert(size_type pos, size_type n, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">iterator
+ insert(const_iterator p, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void insert(const_iterator
+ p, size_type n, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ insert(const_iterator p, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ first, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ last);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void insert(const_iterator
+ p, initializer_list&lt;charT&gt;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(size_type pos1, size_type n1,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(size_type pos1, size_type n1,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&amp; str,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ pos2, size_type n2);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(size_type pos, size_type n1, const charT* s,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n2);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(size_type pos, size_type n1, const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(size_type pos, size_type n1, size_type n2,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">charT
+ c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator i1, iterator i2,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&amp; str);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator i1, iterator i2, const charT* s,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator i1, iterator i2, const charT* s);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator i1, iterator i2,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">size_type
+ n, charT c);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator i1, iterator i2,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ j1, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Iter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ j2);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_string&amp;
+ replace(iterator, iterator, initializer_list&lt;charT&gt;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 21.3.7 string operations:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc&gt;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct
+ constructible_with_allocator_suffix&lt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ &gt; : true_type { };</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 47</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">21.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo. Missing &rdquo;&gt;&rdquo;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits, Allocator Alloc</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits, Allocator Alloc&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct typo.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 48</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">21.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">char_traits does not use
+ concept.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">For example, create CharTraits
+ concept and change as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ charT, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CharTraits</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ traits = char_traits&lt;charT&gt;,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class Allocator =
+ allocator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_string {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add a concept for char_traits.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 217</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">21.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">basic_string
+ refers to constructible_with_allocator_suffix, which I thought was
+ removed?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the lines: template &lt;class charT, class traits, class Alloc
+ struct constructible_with_allocator_suffix&lt; basic_string&lt;charT,
+ traits, Alloc&gt; &gt; : true_type { };</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 218</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">21.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ identity &quot;&amp;*(s.begin() + n) == &amp;*s.begin() + n&quot;
+ relies on operator&amp; doing the &quot;right thing&quot;, which
+ (AFAICS) there is no requirement for. See my comment under clauses
+ &quot;23.2.1, 23.2.6&quot; (p1 in both cases) - this is the same
+ issue, but I've created a separate comment for basic_string
+ because it is in a different chapter.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">See
+ my recommendations for &quot;23.2.1, 23.2.6&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 219</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">21.3.6.6
+ [string.replace]</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Effects
+ refers to &quot;whose first begin() - i1 elements&quot; However i1
+ is greater than begin()...</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Effects
+ refers to &quot;whose first i1 - begin() elements&quot; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 220</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">21.3.8.9</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ operator&lt;&lt; for basic_string takes the output stream by
+ r-value reference. This is different from the same operator for
+ error_code (19.4.2.6), bitset (20.2.6.3), shared_ptr
+ (20.7.13.2.8), complex (26.3.6) and sub_match (28.4)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Use
+ the same reference type for the all the library types. This should
+ be the r-value reference. There are other places in the standard
+ where TR1, and new classes, did not receive an 'R-value' update. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 33</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">22.1.1
+ [locale]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ios_base::iostate
+ err = 0;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">iostate
+ is a bitmask type and so could be an enumeration. Probably using</FONT></FONT></P>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">goodbit
+ is the solution.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 49</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">22.1.3.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">codecvt
+ does not use concept.</FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">For example, create
+ CodeConvert concept and change as follows.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>CodeConvert</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ Codecvt, class Elem = wchar_t&gt; class wstring_convert {</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add a concept for codecvt.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 50</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">22.1.3.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add custom allocator parameter
+ to wstring_convert, since we cannot allocate memory for strings
+ from a custom allocator.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class Codecvt,
+ class Elem = wchar_t&gt; class wstring_convert {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::basic_string&lt;char&gt; byte_string;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::basic_string&lt;Elem&gt; wide_string;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.06in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class
+ Codecvt, class Elem = wchar_t</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>,</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ WideAllocator = allocator&lt;Elem&gt;,</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ ByteAllocator = allocator&lt;char&gt;</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class wstring_convert {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::basic_string&lt;char, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>char_traits&lt;char&gt;,
+ ByteAllocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ byte_string;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ std::basic_string&lt;Elem, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>char_traits&lt;Elem&gt;,
+ WideAllocator</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ wide_string;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">22.2.1.4.1</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">22.2.1.4.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">to_end
+ and to_limit are both used. Only one is needed.</FONT></TT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ to_limit to to_end.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 5</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">22.2.1.4.2
+ </FONT></TT></FONT>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">#3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">[
+ Note: As a result of operations on state, it can return ok or
+ partial and set next == from and to_next != to. &mdash;end note ]</FONT></TT><BR></FONT><BR><BR>
+ </P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">&quot;next&quot;
+ should be &quot;from_next.&quot;</FONT></TT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">Also,
+ the sentence applies to all the examples, including do_in and
+ do_out.</FONT></TT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">Reasoning:
+ When reading one element of multibyte source data such as UTF-8,
+ it is possible that from_next is incremented, to_next is
+ unaltered, state is altered and return value is partial.<BR>When
+ reading one element of wide character data, the output can be
+ several multibyte characters, so it is possible that from_next is
+ unaltered, to_next is advanced, state is altered and return value
+ is partial.</FONT></TT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">[
+ Note: As a result of operations on state, do_in and do_out can
+ return</FONT></TT><BR><TT><FONT FACE="Arial, sans-serif">ok or
+ partial and set from_next == from and/or to_next != to. &mdash;end</FONT></TT><BR><TT><FONT FACE="Arial, sans-serif">note
+ ]</FONT></TT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 6</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">22.2.1.5</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ also 22.2.1.4 (1,2,3)</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">codecvt_byname
+ is only specified to work with locale names. There is no built-in
+ means to find a codecvt with a character set's name. A locale and
+ a character set are not the same. If the user has data which is
+ encoded in a certain character set and she wants to create a
+ codecvt which can convert from that character set to another one,
+ she must iterate through locales to find one, or use external
+ means (iconv, ICU's uconv). Specifying a locale with the character
+ set is not a suitable solution, since there is no built-in mapping
+ from character sets to locales. It is only possible to inquire the
+ character set once the locale is known.</FONT></TT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt"><TT><FONT FACE="Arial, sans-serif">There
+ should be a built-in means to find a codecvt with a pair of
+ character set names. </FONT></TT></FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FI
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">22.2.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1,2,3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ word &quot;codeset&quot; is used, whereas the word &quot;character
+ set&quot; is used elsewhere in the text. The words are intended to
+ convey the same concept, so only one should be used (or always
+ both together).</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ &quot;codeset&quot; to &quot;character set.&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 51</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">A parameter `end&rsquo; should
+ be `fmtend&rsquo;.<BR>get() function had two `end&rsquo;
+ parameters at N2321.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">iter_type get (iter_type s,
+ iter_type end, ios_base&amp; f, ios_base::iostate&amp; err, tm* t,
+ const char_type* fmt, const char_type *end) const;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The function prototype of
+ get() has been corrected at N2800, but a Requires statement still
+ refers `end&rsquo; parameter.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Requires: [fmt,end) shall be
+ a valid range.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <BR><BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Requires: [fmt,fmtend) shall
+ be a valid range.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 52</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.1,
+ 22.2.5.2, 22.2.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">InputIterator does not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class InputIterator = istreambuf_iterator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_get : public
+ locale::facet, public time_base {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef InputIterator
+ iter_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator
+ InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ istreambuf_iterator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_get : public
+ locale::facet, public time_base {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ iter_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.2</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class InputIterator = istreambuf_iterator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_get_byname : public
+ time_get&lt;charT, InputIterator&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef time_base::dateorder
+ dateorder;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef InputIterator
+ iter_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator
+ InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ istreambuf_iterator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_get_byname : public
+ time_get&lt;charT, InputIter&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef time_base::dateorder
+ dateorder;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ iter_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">22.2.6.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class InputIterator
+ = istreambuf_iterator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class money_get : public
+ locale::facet {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef InputIterator
+ iter_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIterator
+ InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ istreambuf_iterator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class money_get : public
+ locale::facet {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>InputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ iter_type; </FONT></FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 53</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.3
+ , 22.2.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">OutputIterator does not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.3</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class OutputIterator = ostreambuf_iterator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">class
+ time_put : public locale::facet {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef OutputIterator
+ iter_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="zxx">&#12288;</SPAN></FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">should
+ be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>OutputIterator
+ OutputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ ostreambuf_iterator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_put : public
+ locale::facet {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ charT char_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>OutputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ iter_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">22.2.5.4</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class OutputIterator = ostreambuf_iterator&lt;charT&gt; &gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_put_byname : public
+ time_put&lt;charT, OutputIterator&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef OutputIterator
+ iter_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>OutputIterator
+ OutputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ ostreambuf_iterator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class time_put_byname : public
+ time_put&lt;charT, OutputIter&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>OutputIter</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ iter_type;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 54</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Table 79</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There is not &lt;forward_list&gt;
+ in Table 79.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add &lt;forward_list&gt;
+ between &lt;deque&gt; and &lt;list&gt;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 221</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 79</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ table is missing the new &lt;forward_list&gt; header.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &lt;forward_list&gt; to the table for sequence containers.
+ Alternative (technical) solution might be to merge &lt;forward_list&gt;
+ into &lt;list&gt;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 222</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not clear what purpose the Requirement tables serve in the
+ Containers clause. Are they the definition of a library Container?
+ Or simply a conventient shorthand to factor common semantics into
+ a single place, simplifying the description of each subsequent
+ container? This becomes an issue for 'containers' like array,
+ which does not meet the default-construct-to-empty requirement, or
+ forward_list which does not support the size operation. Are these
+ components no longer containers? Does that mean the remaining
+ requirements don't apply? Or are these contradictions that need
+ fixing, despite being a clear design decision?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ all the tables in 23.1 are there as a convenience for
+ documentation, rather than a strict set of requirements.
+ Containers should be allowed to relax specific requirements if
+ they call attention to them in their documentation. The
+ introductory text for array should be expanded to mention a
+ default constructed array is not empty, and forward_list
+ introduction should mention it does not provide the required size
+ operation as it cannot be implemented efficiently.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 55</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">rd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It seems that &ldquo;the
+ MinimalAllocator concep&rdquo; is the typo of &ldquo;the
+ MinimalAllocator concept&rdquo;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ to &hellip; models the MinimalAllocator concep</FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">t</FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 223</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ library does not define the MinimalAllocator or ScopedAllocator
+ concepts, these were part of an earlier Allocators proposal that
+ was rejected.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the references to MinimalAllocator and ScopedAllocator, or add
+ definitions for these concepts to clause 20.7.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 224</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph implicitly requires all containers in clause 23 to
+ support allocators, which std::array does not.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ an 'unless otherwise specified' rider somewhere in p8, or move the
+ whole array container from clause 23 [containers] to clause 20
+ [utilies] to accompany bitset, pair and tuple.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 225</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 81</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Inconsistent
+ words used to say the same thing. Table 80 describes
+ iterator/const_iterator typedef as returning an &quot;iterator
+ type whose value type is T&quot;. Table 81 expresses the same idea
+ as an &quot;iterator type pointing to T&quot;. Express identical
+ ideas with the same words to avoid accidentally introducing
+ subtlety and confusion</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ return types for X::(const)_reverse_iterator to say &quot;iterator
+ type whose value type is (const) T&quot;. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 226</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">10</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">&lt;array&gt;
+ must be added to this list. In particular it doesn't satisfy: - no
+ swap() function invalidates any references, pointers, or iterators
+ referring to the elements of the containers being swapped. and
+ probably doesn't satisfy: &mdash; no swap() function throws an
+ exception.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">If
+ &lt;array&gt; remains a container, this will have to also
+ reference array, which will then have to say which of these points
+ it satisfies.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 227</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 80</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ post-condition for a = rv uses the word &ldquo;construction&rdquo;
+ when it means &ldquo;assignment&rdquo;</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the word &ldquo;construction&rdquo; with the word &ldquo;assignment&rdquo;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 228</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Line
+ 4 contains a spelling mistake in the fragment &quot;MinimalAllocator
+ concep.&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;concep&quot; with &quot;concept&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 229</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ fragment &quot;A container may directly call constructors&quot; is
+ not technically correct as constructors are not callable.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;A container may directly call constructors and destructors
+ for its stored objects&quot; with something similar to &quot;A
+ container may directly construct its stored objects and call
+ destructors for its stored objects&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 230</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">&ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">implementations
+ shall consider the following functions to be const&rdquo; - what
+ does this mean? I don't understand what it means by
+ implementations considering the functions to be const &ndash;
+ surely they are either declared const or not?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clarify
+ what is meant and what requirements an implementation must
+ satisfy.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 56</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, Table 84</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">`array&rsquo; is unstated in
+ Table 84 - Optional sequence container operations.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add `array&rsquo; to Container
+ field for the following Expression.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.15in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">a.front()</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.15in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">a.back()</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.15in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">a[n]</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.15in; margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">a.at(n)</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 231</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9-11</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">These
+ paragraphs are redundant now that Concepts define what it means to
+ be an Iterator and guide overload resolution accordingly.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 23.1.3p9-11. Make sure std::basic_string has constraints similar
+ to std::vector to meet this old guarantee.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 232</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 84</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">match_results
+ may follow the requirements but is not listed a general purpose
+ library container.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ reference to match_results against a[n] operation</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 233</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 84</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ references to the new containers.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ reference to array to the rows for: a.front(), a. back(), a[n]
+ a.at(n). Add reference to forward_list to the rows for: a.front(),
+ a.emplace_front(args), a.push_front(t), a.push_front(rv),
+ a.pop_front(). Add reference to basic_string to the row for:
+ a.at(n). </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 234</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 84</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Ther
+ reference to iterator in semantics for back should also allow for
+ const_iterator when called on a const-qualified container. This
+ would be ugly to specify in the 03 standard, but is quite easy
+ with the addition of auto in this new standard.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ iterator with auto in semantics for back: { auto tmp = a.end();
+ --tmp; return *tmp; }</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 235</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT>&ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">The
+ library provides three basic kinds of sequence containers: vector,
+ list, and deque&rdquo; - text appears to be out of date re
+ addition of array and forward_list</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the text to read: &ldquo;The library provides five basic kinds of
+ sequence containers: array, deque, forward_list, list and vector&rdquo;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 236</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">[
+ I've moved (1) into a separate comment because I believe it is
+ editorial in the simple sense, whereas (2) and (3) are not so
+ straight forward ] (2) &ldquo;vector is the type of sequence
+ container that should be used by default&rdquo; -- As I understand
+ it vector was considered first port of call because the things it
+ has in common with the native array make programmers (especially
+ those new to the container library) feel like they are on familiar
+ territory. However, we now have the array container, so I think
+ this should be recommended as the first port of call. (3) This
+ paragraph is actually giving guidance on the use of the containers
+ and should not be normative text</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ this paragraph</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 237</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">vector,
+ list, and deque offer the programmer different complexity
+ trade-offs and should be used accordingly - this ignores array and
+ forward_list</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Modify
+ the text to read: &quot;array, deque, forward_list, list and
+ vector offer the programmer different complexity trade-offs and
+ should be used accordingly&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 238</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Leaving
+ it unspecified whether or not iterator and const_iterator are the
+ same type is dangerous, as user code may or may not violate the
+ One Definition Rule by providing overloads for both types. It is
+ probably too late to specify a single behaviour, but implementors
+ should document what to expect. Observing that problems can be
+ avoided by users restricting themselves to using const_iterator,
+ add a note to that effect.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ 'unspecified' to 'implementation defined'. Add &quot;[Note: As
+ itererator and const_iterator have identical semantics in this
+ case, and iterator is convertible to const_iterator, users can
+ avoid violating the One Definition Rule by always using
+ const_iterator in their function parameter lists -- end note]</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 239</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">85</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not possible to take a move-only key out of an unordered
+ container, such as (multi)set or (multi)map, or the new hashed
+ containers.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ below a.erase(q), a.extract(q), with the following notation:
+ a.extract(q), Return type pair&lt;key, iterator&gt; Extracts the
+ element pointed to by q and erases it from the set. Returns a pair
+ containing the value pointed to by q and an iterator pointing to
+ the element immediately following q prior to the element being
+ erased. If no such element exists,returns a.end().</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 240</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.1.6.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ axiom EmplacePushEquivalence should be asserting the stronger
+ contract that emplace and insert return the same iterator value,
+ not just iterators that dereference to the same value. This is a
+ similar statement that is easier to express and should be
+ equivalent - the idea that insert and emplace might return
+ iterator values that do not compare equal but point to the same
+ element should fail somewhere in the iterator concepts. Also, this
+ axiom should be renamed to reflect its connection with insert,
+ rather than push_front/push_back,</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the * to deference the returned iterator either side of the == in
+ the EmplacePushEquivalence axiom, rename the axiom
+ EmplacementInsertionEquivalence : requires InsertionContainer&lt;C&gt;
+ &amp;&amp; Constructible&lt;value_type, Args...&gt; axiom
+ EmplacementInsertionEquivalence(C c, const_iterator position,
+ Args... args) { emplace(c, position, args...) == insert(c,
+ position, value_type(args...)); }</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 57</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.1.6.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo, duplicated &quot;to&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>to
+ to</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> model insertion
+ container concepts.&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Remove one.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 241</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">std::array
+ does not have an allocator, so need to document an exception to
+ the requirements of 23.1.1p3</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">add
+ exception to 23.1.1p3</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 242</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">std::
+ qualification no longer needed for reverse_iterator.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">remove
+ std:: qualification from std::reverse_iterator&lt;iterator&gt; and
+ std::reverse_iterator&lt;const_iterator&gt;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 243</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Most
+ containers, and types in general have 3 swaps: swap(T&amp;, T&amp;)
+ swap(T&amp;&amp;, T&amp;) swap(T&amp;, T&amp;&amp;) But array only
+ has swap(T&amp;, T&amp;).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">add
+ the other two swaps.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 244</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.2.1,
+ 23.2.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ validity of the expression &amp;a[n] == &amp;a[0] + n is
+ contingent on operator&amp; doing the &ldquo;right thing&rdquo;
+ (as captured by the CopyConstructible requirements in table 30 in
+ C++2003). However this constraint has been lost in the Concepts of
+ C++0x. This applies to vector and array (it actually applies to
+ string also, but that's a different chapter, so I'll file a
+ separate comment there and cross-reference).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Define
+ a ContiguousStrorage and apply it to vector,array and string. The
+ Concept (supplied by Alisdair M) looks like this: Concept&lt;
+ typename C &gt; ContiguousStrorage { requires Container&lt;C&gt;;
+ typename value_type = C::value_type; value_type * data( C ); axiom
+ Contiguous { C c; true = equal_ranges( data( c), data(c) +
+ size(c), begin(c)); } };</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 245</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ predicate types used in special member function of forward_list
+ should be CopyConstructible, as per the algorithms of the same
+ name. Note: an alternate solution would be to require these
+ callable concepts to be CopyConstructible in clause 20, which
+ would simplify the library specification in general. See earlier
+ comment for details, that would render this one redundant.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ CopyConstructible requirement to the following signatures:
+ template &lt;Predicate&lt;auto, T&gt; Pred&gt; requires
+ CopyConstructible&lt;Pred&gt; void remove_if(Pred pred); template
+ &lt;EquivalenceRelation&lt;auto, T&gt; BinaryPredicate&gt;
+ requires CopyConstructible&lt;BinaryPredicate&gt; void
+ unique(BinaryPredicate binary_pred); template
+ &lt;StrictWeakOrder&lt;auto, T&gt; Compare&gt; requires
+ CopyConstructible&lt;Compare&gt; void
+ merge(forward_list&lt;T,Alloc&gt;&amp;&amp; x, Compare comp);
+ template &lt;StrictWeakOrder&lt;auto, T&gt; Compare&gt; requires
+ CopyConstructible&lt;Compare&gt; void sort(Compare comp); </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 58</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.2.3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line before 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph </FONT></FONT>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Unnecessary &quot;{&quot;
+ exists before a word iterator like &quot;{iterator
+ before_begin()&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Remove &quot;{&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 59</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.2.4.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Types of the third and forth
+ parameter of splice() are iterator at 23.2.4.4, though types of
+ them are const_iterator at 23.2.4. (They are both const_iterator
+ on N2350)</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void splice(const_iterator
+ position, list&lt;T,Allocator&gt;&amp;&amp; x, iterator i);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void splice(const_iterator
+ position, list&lt;T,Allocator&gt;&amp;&amp; x,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">iterator first,
+ iterator last);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void splice(const_iterator
+ position, list&lt;T,Allocator&gt;&amp;&amp; x, const_iterator i);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void splice(const_iterator
+ position, list&lt;T,Allocator&gt;&amp;&amp; x,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">const_iterator
+ first, const_iterator last);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 83</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">23.2.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT> <FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;shrink_to_fint&quot;
+ should be &quot;shrink_to_fit&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 246</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">23.3.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ content of this sub-clause is purely trying to describe in words
+ the effect of the requires clauses on these operations, now that
+ we have Concepts. As such, the desctiption is more confusing than
+ the signature itself. The semantic for these functions is
+ adequately covered in the requirements tables in 23.1.4.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 23.3.2.2 entirely. (but do NOT strike these signatures from the
+ class template definition!)</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 247</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Iterator
+ concepts are not extensive enough to merit a whole new header, and
+ should be merged into &lt;concpts&gt;. This is particularly
+ important for supporting the new for loop syntax which requires
+ access to the Range concept. The required header to enable this
+ syntax shoud have a simple name, like &lt;concepts&gt;, rather
+ than something awkward to type like &lt;iterator_concepts&gt;.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the concepts of &lt;iterator_concepts&gt; into the &lt;concepts&gt;
+ header. We take no position on moving the text from Clause 24 to
+ Clause 20 though. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 248</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ text &quot;so for any iterator type there is an iterator value
+ that points past the last element of a corresponding container&quot;
+ is slightly misleading. Iterators can refer into generalised
+ ranges and sequences, not just containers. A broader term than
+ 'container' should be used.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the reference to container with a more appropriate concept </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 250</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">A
+ default implementation should be supplied for the post-increment
+ operator to simplify implementation of iterators by users.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Copy
+ the Effects clause into the concept description as the default
+ implementation. Assumes a default value for postincrement_result </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 251</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ post-increment operator is dangerous for a general InputIterator.
+ The multi-pass guarantees that make it meaningful are defined as
+ part of the ForwardIterator refinement. Any change will affect
+ only constrained templates that have not yet been written, so
+ should not break existing user iterators which remain free to add
+ these operations. This change will also affect the generalised
+ OutputIterator, although there is no percieved need for the
+ post-increment operator in this case either.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ declaration of postincrement operator and postincrement_result
+ type from Interator concept to the ForwardIterator concept</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK<BR> 252</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">istream_iterator
+ is not a class, but a class template</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ 'class' to 'class template' in the note. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 253</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">First
+ sentance does not make gramatical sense, Seems to be missing the
+ words 'if it' by comparison with similar sentance in other
+ subsections</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the words 'if it' : &quot;X satisfies the requirements of an
+ output iterator IF IT meets the syntactic and semantic
+ requirements&quot; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 254</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ postcondition for pre-increment operator should be written as an
+ axiom</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the postcondition into the concept definition as an axiom </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 255</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ postcondition for pre-increment operator should be written as an
+ axiom</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the postcondition into the concept definition as an axiom </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 256</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3,
+ 4, 5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ relationship between pre- and post- decrement should be expressed
+ as an axiom.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the text specification of pre/post-conditions and behaviour into
+ an axiom within the BidirectionalIterator concept </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 257</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a reasonable default for postdecrement_result type, which is X.
+ X is required to be regular, therefore CopyConstructible and a
+ valid ResultType. Together with the next comment this simplifies
+ user defined iterator implentations</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the default : typename postincrement_result = X; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 258</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ default implementation should be supplied for the post-decrement
+ operator to simplify implementation of iterators by users.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Copy
+ the Effects clause into the concept description as the default
+ implementation. Assumes a default value for postincrement_result </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 259</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">postdecrement_result
+ is effectively returning a copy of the original iterator value, so
+ should have similar constraints, rather than just HasDereference.
+ If Concepts do not support this circularity of definition suggest
+ that concepts feature may want a little more work</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the requirement: requires Iterator&lt; postdecrement_result &gt;; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 260</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ effects clause for post-decrement iterator should be available as
+ an axiom and a default implementation, where the compiler can make
+ better use of it.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the Effects clause into the BidirectionalIterator concept
+ definition as an axiom, and as the default implementation for the
+ operation.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 249</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="en-US">24.1.6</SPAN></FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ semantic for operator+= should also be provided as a default
+ implementation to simplify implementation of user-defined
+ iterators</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Copy
+ the text from the effects clause into the RandomAccessIterator
+ concept as the default implementaiton.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 261</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">To
+ simplify user defined random access iterator types, the
+ subscript_reference type should default to reference</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">typename
+ subscript_reference = reference; </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 262</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3,
+ 4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Effects
+ and post-conditions for operator+ are more useful if expressed as
+ axioms, and supplied as default implementations.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the effects and Postcondition definitions into the
+ RandomAccessIterator concept and copy the code in the
+ specification as the default implementation of these operations.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 263</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ requirement on operator-= would be better expressed as a default
+ implementation in the concept, with a matching axiom</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the specification for operator-= from the returns clause into an
+ axiom and default implementation within the RandomAccessIterator
+ concept</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 264</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Effects
+ clauses are better expressed as axioms where possible.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ code in operator- effects clause into RandomAccessIterator concept
+ as both a default implementation and an axiom</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 265</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">8</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ effects clause is nonesense. It looks more like an axiom stating
+ equivalence, and certainly an effects clause cannot change the
+ state of two arguments passed by const reference</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the Effects clause</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 266</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">9</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ sentance should be provided as a default definition, along with a
+ matching axiom</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ the Returns clause into the spefication for RandomAccessIterator
+ operator- as a default implementation. Move the Effects clause as
+ the matching axiom.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 267</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ code in the Requires clause for RandomAccessIterator operator[]
+ would be better expressed as an axiom.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Rewrite
+ the Requires clause as an axiom in the RandomAccessIterator
+ concept</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 268</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.1.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">12</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">This
+ note is potentialy confusing as __far enters the syntax as a clear
+ language extension, but the note treats it as a regular part of
+ the grammar. It might be better expressed using attributes in the
+ current wording.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Clean
+ up the note to either avoid using language extension, or spell out
+ this is a constraint to support extensions.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 60</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">24.1.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Capability of an iterator is
+ too much restricted by concept.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Concept of std::Range is
+ defined as:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">concept Range&lt;typename T&gt;
+ {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">InputIterator iterator;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">iterator begin(T&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">iterator end(T&amp;);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">So the following code
+ generates an error.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;std::Range Rng&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void sort(Rng&amp; r)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.08in; text-indent: -0.08in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// error! Rng::iterator does
+ not satisfy requirements of a random</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.07in; text-indent: 0.08in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// access iterator.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::sort(begin(r), end(r));</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::vector&lt;int&gt; v; //
+ vector::iterator is a random access iterator.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">sort(v);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">This is because the concept of
+ an iterator of std::Range is InputIterator. For this reason, a
+ random access iterator loses its capability when passed to a
+ std::Range parameter.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">To be able to work the above
+ code, we need to write as follows:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;std::Range T&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">requires
+ std::RandomAccessIterator&lt;T::iterator&gt; &amp;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::ShuffleIterator&lt;T::iterator&gt;
+ &amp;&amp;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::LessThanComparable&lt;T::iterator::value_type&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void sort(T&amp; r)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">sort(begin(r), end(r));</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::vector&lt;int&gt; v;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">sort(v);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It needs quiet a few amount of
+ codes like this only to recover random access capability from
+ InputIterator concept.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">We can write the following
+ valid code with Boost.Range, which is implemented with using C++03
+ SFINAE.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class Range&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void sort(Range&amp; r)</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">{</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::sort(boost::begin(r),
+ boost::end(r));</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">std::vector&lt;int&gt; v;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">sort(v); // OK</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">One of the motivation to
+ introduce concepts are supporting template programming techniques
+ by language directly to eliminate hacky techniques such as
+ tag-dispatch, SFINAE and Type Traints. But SFINAE will be kept
+ using because it needs quite a few amount of codes without using
+ SFAINAE.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add InputRange, OutputRange,
+ ForwardRange, BidirectionalRange and RandomAccessRange.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 269</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">'decrements
+ for negative n' seems to imply a negative number of decrement
+ operations, which is odd.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Need
+ simple, clearer wording</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 270</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ reachability constraint in p5 means that a negavite result,
+ implying decrements operations in p4, is not possible</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Split
+ the two overloads into separate descriptions, where reachability
+ is permitted to be in either direction for RandomAccessIterator</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 271</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6,7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">next/prev
+ return an incremented iterator without changing the value of the
+ original iterator. However, even this may invalidate an
+ InputIterator. A ForwardIterator is required to guarantee the
+ 'multipass' property.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ InputIterator constraint with FOrwardIterator in next and prev
+ function templates.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 272</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">reverse_iterator
+ and move_iterator use different formulations for their comparison
+ operations. move_iterator merely requires the minimal set of
+ operations, &lt; and ==, from its underlying iterator and
+ synthesizes all oprations from these two. reverse_iterator relies
+ on the undelying iterator to support all comparision operations
+ directly. In practice, move_iterator can only be implemented this
+ way as it must support iterator types that are merely
+ InputIterators, and so SemiRegular and not Regular. However,
+ reserse_iterator has an existing specification and any change of
+ semantic could change behaviour of conforming programs today -
+ although an iterator that yields different results for (a &gt; b)
+ than (b &lt; a) may fall foul of some semantic consistency
+ requirements, even if the syntax is met.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Rephrase
+ the reverse_iterator comparison operations using only operators &lt;
+ and ==, as per the move_iterator specification.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 274</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4,
+ 24.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ subclauses for standard iterator adaptors could be better
+ organised. There are essentially 3 kinds of iterator wrappers
+ provided, stream iterators adapt streams and get their own
+ subsection. insert iterators adapt containers, and get their own
+ subsection but it is inserted into the middle of 24.4 Predifined
+ iterators. reverse_iterator and move_iterator adpat other
+ iterators, but their presentation is split by insert iterators</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Promote
+ 24.4.2 [insert.iterators] up one level to 24.6. Emphasize that
+ insert iterators adapt containers Retarget 24.4 [predef.iterators]
+ as iterator adapters for iterator templates that wrap other
+ iterators.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 275</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ constructor template taking a single Iterator argument will be
+ selected for Copy Initialization instead of the non-template
+ constructor taking a single Iterator argument selected by Direct
+ Initialization.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ reverse_iterator template constructor taking a single Iterator
+ argument should be explicit.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 276</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is odd to have a mix of declaration stlyes for operator+
+ overloads. Prefer if either all are member functions, or all are
+ 'free' functions.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Make
+ the member operators taking a difference_type argument non-member
+ operators</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 277</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ default constructor default-initializes current, rather than
+ value-initializes. This means that when Iterator corresponds to a
+ trivial type, the current member is left un-initialized, even when
+ the user explictly requests value intialization! At this point, it
+ is not safe to perform any operations on the reverse_iterator
+ other than assign it a new value or destroy it. Note that this
+ does correspond to the basic definition of a singular iterator.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">i/
+ Specify value initialization rather than default intialization or
+ ii/ specify = default; rather than spell out the semantic. This
+ will at least allow users to select value initialization and copy
+ the iterator value. or iii/ Add a note to the description
+ emphasizing the singular nature of a value-initialized reserve
+ iterator.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 278</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is an inconsistency between the constructor taking an iterator and
+ the constructor template taking a reverse_iterator where one
+ passes by value, and the other by const reference. The by-value
+ form is preferred as it allows for efficient moving when copy
+ elision fails to kick in.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the const reverse_iterator&lt;U&gt; &amp; parameter to
+ pass-by-value</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 279</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.2.12,
+ 24.4.3.2.12</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ reason the return type became unspecified is LWG issue 386. This
+ reasoning no longer applies as there are at least two ways to get
+ the right return type with the new language facilities added since
+ the previous standard.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Specify
+ the return type using either decltype or the Iter concept map</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 280</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.2.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ presence of the second iterator value is surprising for many
+ readers who underestimate the size of a reverse_iterator object.
+ Adding the exposition only member that is required by the semantic
+ will reduce confusion.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ reverse_iterator expsoition only member tmp as a comment to class
+ declaration, as a private member</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 281</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.1.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ current specification for return value will always be a true
+ pointer type, but reverse_iterator supports proxy iterators where
+ the pointer type may be some kind of 'smart pointer'</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the existing returns specification with a copy of the operator*
+ specification that returns this-&gt;tmp.operator-&gt;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 282</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.2.1,
+ 24.4.2.2.2, 24.4.2.3, 24.4.2.4.2, 24.4.2.5, 24.4.2.6.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">n/a</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Insert
+ iterators of move-only types will move from lvalues</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ an additional constrained overload for operator= that requires
+ !CopyConstructible&lt;Cont::value_type&gt; and mark it =delete.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 283</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.4.2.5,
+ 24.4.2.6.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">postincrement
+ operator overloads traditionally return by value - insert_iterator
+ is declared as return by reference. The change is harmless in this
+ case, but either front/back_insert_iterator should take the
+ matching change for consistency, or this function should
+ return-by-value</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">change
+ operator++(int) overload to return by value, not reference.
+ Affects both class summary and operator definition in p</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 61</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">24.4.3.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">nd</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;intializing&quot;
+ should be &quot;in</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>i</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">tializing&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add &quot;i&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 284</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ stream iterators need constraining with concepts/requrires
+ clauses.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 285</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1,2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Much
+ of the content of p1 and the whole of p2 is a redundant
+ redefinition of InputIterator. It should be simplified</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ p2. Simplify p1 and add a cross-reference to the definition of
+ InputIterator concept.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 286</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">To
+ the casual reader it is not clear if it is intended to be able to
+ assign to istream_iterator objects. Specifying the copy
+ constructor but relying on the implicit copy-assign operator is
+ confusing.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ provide a similar definition to the copy-assign operator as for
+ the copy constructor, or strike the copy constructor</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 287</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not clear what the intial state of an istream_iterator should
+ be. Is _value_ initialized by reading the stream, or default/value
+ initialized? If it is initialized by reading the stream, what
+ happens if the initialization is deferred until first dereference,
+ when ideally the iterator value should have been that of an
+ end-of-stream iterator which is not safely dereferencable?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Specify
+ _value_ is initialized by reading the stream, or the iterator
+ takes on the end-of-stream value if the stream is empty</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 288</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ provided specification is vacuous, offering no useful information.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Either
+ strike the specification of the copy constructor, or simply
+ replace it with an = default definition.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 289</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is very hard to pick up the correct specification for
+ istream_iterator::operator== as the complete specification
+ requires reading two quite disconnected paragraphs, 24.5.1p3, and
+ 24.5.1.2p6. Reading just the specifaction of the operation itself
+ suggests that end-of-stream iterators are indistinguishable from
+ 'valid' stream iterators, which is a very dangerous misreading.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Merge
+ 24.5.1p3, equality comparison of end-of-stream-iterators, into
+ 24.5.1.2p6, the specification of the equality operator for
+ istream_iterator.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 290</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ character type of a string delimiter for an ostream_iterator
+ should be const charT *, the type of the elements, not char *, a
+ narrow character string.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ char * with const charT *</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 291</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">ostream_iterator
+ postincrement operator returns by reference rather than by value.
+ This may be a small efficiency gain, but it is otherwise
+ unconventional. Prefer return-by-value.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ostream_iterator
+ operator++(int);</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 34</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">24.5.3
+ [istreambuf.iterator]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ are two public sections, and the content of the second one is
+ indented with respect to the first. I don't it should be.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 292</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Prefer
+ the use of the new nullptr constant to the zero literal when using
+ a null pointer in text.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ istreambuf_iterator(0) to istreambuf_iterator(nullptr)</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 293</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2,3,4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ listed paragraphs redundantly redefine an input iterator, and
+ redundancy can be a dangerous thing in a specification. Suggest a
+ simpler phrasing below.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">2.
+ The result of operator*() on an end of stream is undefined. For
+ any other iterator value a char_type value is returned. 3. Two end
+ of stream iterators are always equal. An end of stream iterator is
+ not equal to a non-end of stream iterator. 4. As
+ istreambuf_iterator() is an InputIterator but not a
+ ForwardIterator, istreambuf_iterators object can be used only for
+ one-pass algorithms. It is not possible to assign a character via
+ an input iterator. </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 294</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">24.5.3.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Implicit
+ converting constructors can be invoked at surprising times, so
+ there should always be a good reason for declaring one.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Mark
+ the two single-argument constructors take a stream or stream
+ buffer as explicit. The proxy constructor should remain implicit.
+ explicit istreambuf_iterator(basic_istream&lt;charT,traits&gt;&amp;
+ s) throw(); explicit
+ istreambuf_iterator(basic_streambuf&lt;charT,traits&gt;* s)
+ throw(); </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 295</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">THere
+ is a level of redundancy in the library specification for many
+ algorithms that can be eliminated with the combination of concepts
+ and default parameters for function templates. Eliminating
+ redundancy simplified specification and reduces the risk of
+ inttroducing accidental inconsistencies.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Adopt
+ n2743, or an update of that paper.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 62</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">25,
+ 25.3.1.5, 26.3.6.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The return types of
+ is_sorted_until function and is_heap_until function are iterator.
+ But basically, the return type of is_xxx function is bool. And the
+ return type of lower_bound function and upper_bound is iterator.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.2in; margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">So we think that it is
+ reasonable to change those two functions.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="text-indent: 0.2in; margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change &quot;is_sorted_until&quot;
+ to &quot;sorted_bound&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change &quot;is_heap&quot;
+ to &quot;heap_bound&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 296</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.1.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ 'Returns' of adjacent_find requires only HasEqualTo, or a
+ Predicate. Requiring EqualityComparable or EquivalenceRelation
+ seems too strong and not useful.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ EqualityComparable to HasEqualTo and EquivalnceRelation to
+ Predicate</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 297</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.2.11</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ definition of rotate_copy is very complicated. It is equivalent
+ to: return copy(first, middle, copy(middle, last, result));</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ 'effects' to, returns, requires, complexity to: effects:
+ equivalent to: return copy(first, middle, copy(middle, last,
+ result));</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 298</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.2.13</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">13</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">partition_point
+ requires a partitioned array</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">requires:
+ is_partitioned(first, last, pred) != false;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 299</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Should
+ be consistent in style use of concepts in template parameter
+ lists. The auto-OutputIterator sytle used in std::copy is probably
+ preferred.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ way signature is declared: template&lt;InputIterator InIter,
+ OutputIterator&lt;auto, RvalueOf&lt;InIter::reference&gt;::type&gt;
+ OutIter&gt; OutIter move(InIter first, InIter last, OutIter
+ result); </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 300</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.2.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Since
+ publishing the original standard, we have learned that swap is a
+ fundamental operation, and several common idioms rely on it -
+ especially those related to exception safety. As such it belongs
+ in the common &lt;utility&gt; header rather than the broader
+ &lt;algorithm&gt; header, and likewise should move to clause 20.
+ For backwards compatiblility the algorithm header should be
+ required to #include &lt;utility&gt;, which would be covered in
+ the resolution of LWG issue 343. There are already dependencies in
+ &lt;algorithm&gt; on types declared in this header, so this
+ comment does not create a new dependency.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ primary swap template from &lt;algorithm&gt; into &lt;utility&gt;.
+ Move 25.2.3 to somewhere under 20.2. Require &lt;algorithm&gt; to
+ #include &lt;utility&gt; to access pair and provide legacy support
+ for finding swap.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 301</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.2.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">replace
+ and replace_if have the requirement: OutputIterator&lt;Iter,
+ Iter::reference&gt; Which implies they need to copy some values in
+ the range the algorithm is iterating over. This is not however the
+ case, the only thing that happens is const T&amp;s might be copied
+ over existing elements (hence the OutputIterator&lt;Iter, const
+ T&amp;&gt;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ OutputIterator&lt;Iter, Iter::reference&gt; from replace and
+ replace_if</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 302</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">the
+ concept StrictWeakOrder covers the definition of a strict weak
+ ordering, described in paragraph 4.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ 4, and mention StrictWeakOrder in paragraph 1.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 303</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">This
+ paragraph just describes is_partitioned</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">6
+ A sequence [start,finish) is partitioned with respect to an
+ expression f(e) if is_partitioned(start, finish, e) != false</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 304</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.3.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ requires clauses of push_heap, pop_heap and make_heap are
+ inconsistently formatted, dispite being identical</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Format
+ them identically.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 305</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">25.3.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1,
+ 9, 17</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ negative requirement on IsSameType is a hold-over from an earlier
+ draught with a variadic template form of min/max algorith. It is
+ no longer necessary.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ the !IsSameType&lt;T, Compare&gt; constraint on min/max/minmax
+ algorithms</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 84</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">26</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Parts of the numerics chapter
+ are not concept enabled.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 35</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">26.3
+ [Complex numbers]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Instantiations
+ of the class template complex&lt;&gt; have to be allowed for
+ integral types, to reflect existing practice and ISO standards
+ (LIA-III).</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 306</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">26.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Random
+ number library component cannot be used in constrained templates</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for the random number library </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 63</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">26.4.8.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">No constructor of
+ discrete_distribution that accepts initializer_list.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">discrete_distribution
+ initialize distribution by a given range (iterators), but
+ temporary variable of a container or an array is needed in the
+ following case.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">int ar[] = {1, 2, 3};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">discrete_distribution&lt;&gt;
+ dist(ar, ar+3);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Other libraries also accept
+ initializer_list, so change discrete_distribution library to
+ accept initializer_list too.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add the following constructer.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>discrete_distribution(initializer_list&lt;result_type&gt;);</U></FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 64</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">26.5.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ &ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">valarray&lt;T&gt;&amp;
+ operator+= (initializer_list&lt;T&gt;);&rdquo; is not defined.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add valarray&lt;T&gt;&amp;
+ operator+= (initializer_list&lt;T&gt;);</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 307</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">26.7</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Footnote
+ 288</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ footnote refers to TR1, which is not a defined term in this
+ standard. Drop the reference to TR1, those templates are a regular
+ part of the standard now and how they were introduced is no longer
+ relevant.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Drop
+ the reference to TR1.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 85</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The input/output chapter is
+ not concept enabled.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 308</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">27</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="en-US">iostreams
+ library cannot be used from constrained templates</SPAN></FONT></FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for the iostreams library, clause 27 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 65</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.4.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Switch from
+ &ldquo;unspecified-bool-type&rdquo; to</FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="zxx">&#12288;&ldquo;</SPAN></FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ operator bool() const&rdquo;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;operator </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>unspecified-bool-type</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">()
+ const;&quot; with &quot;explicit operator bool() const;&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 66</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.4.4.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Switch from
+ &ldquo;unspecified-bool-type&rdquo; to</FONT><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt"><SPAN LANG="zxx">&#12288;&ldquo;</SPAN></FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ operator bool() const&rdquo;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ &quot;operator </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>unspecified-bool-type</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">()
+ const;&quot; with &quot;explicit operator bool() const;&quot;</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 36</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Consolas, monospace"><FONT SIZE=2 STYLE="font-size: 10pt"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">27.6.1.2.2
+ [istream.formatted.arithmetic]</FONT></FONT></FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1,
+ 2, and 3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">iostate
+ err = 0;</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">iostate
+ is a bitmask type and so could be an enumeration. Probably using</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">goodbit
+ is the solution.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 37</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">27.6.1.2.2
+ [istream.formatted.arithmetic]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">else
+ if (lval &lt; numeric_limits&lt;int&gt;::min()</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">||
+ numeric_limits&lt;int&gt;::max() &lt; lval))</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ parentheses aren't balanced.</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 67</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.7.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf dose not use
+ concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Replace &ldquo;class
+ Allocator&rdquo; to &ldquo;Allocator Alloc&rdquo;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_stringbuf :
+ public basic_streambuf&lt;charT,traits&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.1.1 Constructors:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_stringbuf(ios_base::openmode which</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">=
+ ios_base::in | ios_base::out);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit basic_stringbuf</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">(const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ios_base::openmode which
+ = ios_base::in | ios_base::out);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf(basic_stringbuf&amp;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.1.3 Get and set:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ str() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ str(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ s);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringbuf&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringbuf&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringbuf&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 68</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.7.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream dose not
+ use concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Replace &ldquo;class
+ Allocator&rdquo; to &ldquo;Allocator Alloc&rdquo;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_istringstream :
+ public basic_istream&lt;charT,traits&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::int_type int_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::pos_type pos_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::off_type off_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef traits
+ traits_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ allocator_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.2.1 Constructors:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_istringstream(ios_base::openmode which = ios_base::in);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_istringstream(</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ios_base::openmode
+ which = ios_base::in);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream(basic_istringstream&amp;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.2.2 Assign and
+ swap:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream&amp;
+ operator=(basic_istringstream&amp;&amp; rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_istringstream&amp;&amp; rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.2.3 Members:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;*
+ rdbuf() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ str() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ str(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ s);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">private:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">//
+ basic_stringbuf&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ sb; exposition only</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_istringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_istringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_istringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_istringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 69</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.7.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream dose not
+ use concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Replace &ldquo;class
+ Allocator&rdquo; to &ldquo;Allocator Alloc&rdquo;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_ostringstream :
+ public basic_ostream&lt;charT,traits&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// types:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::int_type int_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::pos_type pos_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::off_type off_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef traits
+ traits_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ allocator_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.3.1
+ Constructors/destructor:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_ostringstream(ios_base::openmode which = ios_base::out);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_ostringstream(</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ios_base::openmode
+ which = ios_base::out);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream(basic_ostringstream&amp;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.3.2 Assign/swap:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream&amp;
+ operator=(basic_ostringstream&amp;&amp; rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_ostringstream&amp;&amp; rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.3.3 Members:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;*
+ rdbuf() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ str() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ str(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ s);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">private:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">//
+ basic_stringbuf&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ sb; exposition only</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_ostringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_ostringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_ostringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_ostringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 71</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.7.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">&quot;template&quot;
+ is missing in &quot;class basic_ostringstream&quot; of the title
+ of the chapter.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">27.7.3 Class
+ basic_ostringstream</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">27.7.3
+ Class </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>template</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ basic_ostringstream</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 72</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.7.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_stringstream dose not
+ use concept.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Replace &quot;class Allocator&quot;
+ to &quot;Allocator Alloc&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp; <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class charT,
+ class traits = char_traits&lt;charT&gt;,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> =
+ allocator&lt;charT&gt; &gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">class basic_stringstream</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">: public
+ basic_iostream&lt;charT,traits&gt; {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">public:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// types:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef charT
+ char_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::int_type int_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::pos_type pos_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef typename
+ traits::off_type off_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">typedef traits
+ traits_type;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">typedef
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ allocator_type;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// constructors/destructor</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_stringstream(</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ios_base::openmode which =
+ ios_base::out|ios_base::in);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ basic_stringstream(</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">const
+ basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">ios_base::openmode which =
+ ios_base::out|ios_base::in);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">basic_stringstream(basic_stringstream&amp;&amp;
+ rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// 27.7.5.1 Assign/swap:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringstream&amp;&amp; rhs);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// Members:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringbuf&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;*
+ rdbuf() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;
+ str() const;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ str(const basic_string&lt;charT,traits,</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ str);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">private:</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">// basic_stringbuf&lt;charT,
+ traits&gt; sb; exposition only</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class charT, class traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator</U></FONT><FONT COLOR="#339966"><FONT SIZE=2 STYLE="font-size: 9pt">
+ </FONT></FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">void
+ swap(basic_stringstream&lt;charT, traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;
+ x,</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">basic_stringstream&lt;charT,
+ traits, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;&amp;&amp;
+ y);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 73</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">27.8.1.14</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">It is a problem from C++98,
+ fstream cannot appoint a filename of wide character string(const
+ wchar_t and const wstring&amp;).</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add interface corresponding to
+ wchar_t, char16_t and char32_t.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 86</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">28</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The regular expressions
+ chapter is not concept enabled.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 309</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Regular
+ expressions cannot be used in constrained templates</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for the regular expression library, clause 28 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 310</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ regex chapter uses iterators in the old pre-concept style, it
+ should be changed to use concepts instead.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Use
+ concepts for iterator template arguments throughout.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 314</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ swap overloads for regex classes are only supplied for l-value
+ references. Other sections of the library (eg 21 strings or 23
+ containers) provide two extra overloads taking an r-value
+ reference as the first and second argument respectively.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the missing overloads to 28.4 and the corresponding later sections
+ in 28 for each swap function. We want to accept AMs paper which
+ proposes a single overload with two r-value references</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 315</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">p6</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">6
+ Effects: string_type str(first, last); return
+ use_facet&lt;collate&lt;charT&gt; &gt;(
+ getloc()).transform(&amp;*str.begin(), &amp;*str.end()); Is it
+ legal to dereference str.end() ?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Reword
+ to effect clause to use legal iterator dereferences </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 316</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.4
+ ff</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ constructors for regex classes do not have an r-value overload.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ the missing r-value constructors to regex classes.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 317</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">basic_string
+ has both a constructor and an assignment operator that accepts an
+ initializer list, basic_regex should have the same.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ the basic_regex synopsis, after: basic_regex&amp; operator=(const
+ charT* ptr); add: basic_regex&amp;
+ operator=(initializer_list&lt;charT&gt; il); And after paragraph
+ 20 add: basic_regex&amp; operator=(initializer_list&lt;charT&gt;
+ il); Effects: returns assign(il.begin(), il.end()); </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 74</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">28.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ &ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">basic_regx &amp;
+ operator= (initializer_list&lt;T&gt;);&rdquo; is not defined.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add basic_regx &amp; operator=
+ (initializer_list&lt;T&gt;);</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 318</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.8.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">para
+ 22</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Constructor
+ definition should appear with the other constructors not after
+ assignment ops.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ para 22 to just after para 17.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 319</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">28.12.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ was always expected that regex_token_iterator would be
+ constructible from an array literal: indeed ideally this is the
+ prefered method of initializing such an object. However, the best
+ we could do in C++0x was: template &lt;std::size_t N&gt;
+ regex_token_iterator(BidirectionalIterator a,
+ BidirectionalIterator b, const regex_type&amp; re, const int
+ (&amp;submatches)[N], regex_constants::match_flag_type m =
+ regex_constants::match_default); Now that we have
+ initializer_lists we should use them to remove this particular
+ wart.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">To
+ the synopsis for regex_token_iterator, after template &lt;std::size_t
+ N&gt; regex_token_iterator(BidirectionalIterator a,
+ BidirectionalIterator b, const regex_type&amp; re, const int
+ (&amp;submatches)[N], regex_constants::match_flag_type m =
+ regex_constants::match_default); add
+ regex_token_iterator(BidirectionalIterator a,
+ BidirectionalIterator b, const regex_type&amp; re,
+ initializer_list&lt;int&gt; submatches,
+ regex_constants::match_flag_type m =
+ regex_constants::match_default); In 28.12.2.1 add the declaration:
+ regex_token_iterator(BidirectionalIterator a,
+ BidirectionalIterator b, const regex_type&amp; re,
+ initializer_list&lt;int&gt; submatches,
+ regex_constants::match_flag_type m =
+ regex_constants::match_default); And to the end of para 3 add: The
+ forth constructor initializes the member subs to hold a copy of
+ the sequence of integer values in the range [submatches.begin(),
+ submatches.end()).</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 87</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The atomics chapter is not
+ concept enabled. The adopted paper, N2427, did have those
+ concepts.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 311</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">29</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Atomic
+ types cannot be used generically in a constrained template</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for the atomics library, clause 29 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 312</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">29</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ contents of the &lt;stdatomic.h&gt; header are not listed
+ anywhere, and &lt;cstdatomic&gt; is listed as a C99 header in
+ chapter 17. If we intend to use these for compatibility with a
+ future C standard, we should not use them now.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ &lt;cstdatomic&gt; from the C99 headers in table 14. Add a new
+ header &lt;atomic&gt; to the headers in table 13. Update chapter
+ 29 to remove reference to &lt;stdatomic.h&gt; and replace the use
+ of &lt;cstdatomic&gt; with &lt;atomic&gt;. If and when WG14 adds
+ atomic operations to C we can add corresponding headers to table
+ 14 with a TR.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 75</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">A definition of enum or struct
+ is the style of C using typedef.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change to a style of C++.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">29.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ enum memory_order {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">memory_order_relaxed,
+ memory_order_consume, memory_order_acquire,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">memory_order_release,
+ memory_order_acq_rel, memory_order_seq_cst</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} memory_order;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">enum memory_order {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">memory_order_relaxed,
+ memory_order_consume, memory_order_acquire,</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">memory_order_release,
+ memory_order_acq_rel, memory_order_seq_cst</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">29.3.1</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ struct atomic_bool {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} atomic_bool;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct atomic_bool {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ struct atomic_</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>itype</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">}
+ atomic_</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>itype</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">struct
+ atomic_</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>itype</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">29.3.2</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT COLOR="#ff3366"> </FONT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ struct atomic_address {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} atomic_address;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct atomic_address {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">29.5</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>typedef</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ struct atomic_flag {</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">} atomic_flag;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">namespace std {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct atomic_flag {</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">...</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">};</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">}</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 313</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">29.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">seq_cst
+ fences don't necessarily guarantee ordering
+
http://home.twcny.rr.com/hinnant/cpp_extensions/issues_preview/lwg-active.html#926></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a new paragraph after 29.1 [atomics.order]p5 that says For atomic
+ operations A and B on an atomic object M, where A and B modify M,
+ if there are memory_order_seq_cst fences X and Y such that A is
+ sequenced before X, Y is sequenced before B, and X precedes Y in
+ S, then B occurs later than A in the modifiction order of M. </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 88</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ &quot;lockfree&quot; facilities do not tell the programmer enough.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Expand the &quot;lockfree&quot;
+ facilities. See the attached paper &quot;Issues with the C++
+ Standard&quot; under Chapter 29, &quot;atomics.lockfree doesn't
+ tell the programmer enough&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 89</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29.3.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Table
+ 122</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The types in the table
+ &quot;Atomics for standard typedef types&quot; should be typedefs,
+ not classes. These semantics are necessary for compatibility with
+ C.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ the classes to typedefs.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Google</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 90</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Are
+ atomic functions allowed to have non-volatile overloads?</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Allow non-volatile overloads.
+ See the attached paper &quot;Issues with the C++ Standard, under
+ Chapter 29, &quot;Are atomic functions allowed to have
+ non-volatile overloads?&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 91</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Whether
+ or not a failed compare_exchange is a RMW operation (as used in
+ 1.10 [intro.multithread]) is unclear.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Make
+ failing compare_exchange operations </FONT><STRONG><FONT SIZE=2 STYLE="font-size: 9pt">not</FONT></STRONG><FONT SIZE=2 STYLE="font-size: 9pt">
+ be RMW. See the attached paper under &quot;atomic RMW status of
+ failed compare_exchange&quot;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 92</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">29.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ effect of memory_order_consume with atomic RMW operations is
+ unclear.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Follow the lead of fences
+ [atomics.fences], and promote memory_order_consume to
+ memory_order_acquire with RMW operations.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 76</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">A
+ description for &quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>Throws:
+ </I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">Nothing.&quot; are
+ not unified.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">At
+ the part without throw, &quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>Throws:
+ </I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">Nothing.&quot;
+ should be described.</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ &quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>Throws:</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ Nothing.&quot; to the following.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.6
+ , 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3.1
+ , 4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3.2.1
+ , 6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">30.4.1
+ , 7</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ and 8</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">30.4.2
+ , 6</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">,
+ 7</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">,19</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">,21th
+ and 25</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 93</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The thread chapter is not
+ concept enabled.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in; margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">UK<BR> 320</FONT></P>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Threads
+ library cannot be used in constrained templates</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ constraints for the threads library, clause 30 </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 321</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Throughout
+ this clause, the term Requires: is used to introduce compile time
+ requirements, which we expect to be replaced with concepts and
+ requires in code. Run-time preconditions are introduced with the
+ term &quot;Preconditions:&quot; which is not a defined part of the
+ library documentation structure (17.5.2.4). However, this is
+ exactly the direction that BSI would like to see the organisation
+ move, replacing Requires: clauses with Preconditions: clasues
+ throught the library. See comment against clause 17 for more
+ details.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Decument
+ Preconditions: paragraphs in 17.5.2.4, and use consistently
+ through rest of the library.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 94</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">30.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">The first
+ sentence of para 1 suggests that no other library function is
+ permitted to call operating system or low level APIs.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Rewrite
+ para 1 as: &ldquo;<FONT COLOR="#000000"> Some functions described
+ in this Clause are specified to throw exceptions of type
+ system_error (</FONT><FONT COLOR="#0000ff">19.4.5</FONT><FONT COLOR="#000000">
+ ). Such exceptions shall be thrown if a call to an operating
+ system or underlying API results in an error that prevents the
+ library function from satisfying its postconditions or from
+ returning a meaningful value.&rdquo;</FONT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 95</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">30.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western">&ldquo;<FONT SIZE=2 STYLE="font-size: 9pt">native_handle_type&rdquo;
+ is a typedef, not a class member.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Several
+ classes described in this Clause have a member </FONT><FONT SIZE=2 STYLE="font-size: 9pt">native_handle
+ (of type native_handle_type)</FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ . The</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">presence
+ of this member and its semantics is implementation defined. [
+ </FONT><FONT SIZE=2 STYLE="font-size: 9pt">Note: </FONT><FONT SIZE=2 STYLE="font-size: 9pt">
+ This member allows implementations to provide access to
+ implementation details. The name of the member and the type are
+ specified to facilitate portable compile-time detection. Actual
+ use of this member or the corresponding type is inherently
+ non-portable. </FONT><FONT SIZE=2 STYLE="font-size: 9pt">&mdash;end
+ note </FONT><FONT SIZE=2 STYLE="font-size: 9pt"> ]</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 96</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">30.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">There is no
+ definition here for monotonic clock.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">Implementations
+ should use a </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>monotonic
+ clock</I></FONT><FONT SIZE=2 STYLE="font-size: 9pt"> to measure
+ time for these functions. A monotonic clock measures real time,
+ but cannot be set, and is guaranteed to have no negative clock
+ jumps.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 322</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Not
+ all systms can provide a monotonic clock. How are they expected to
+ treat a _for function?</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ at least a note explaining the intent for systems that do not
+ support a monotonic clock.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 323</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ presence of a non-explicit variadic template constructor alongside
+ an explicit single-argument constructor can lead to behaviour that
+ is not intended: the variadic constructor will be selected for
+ implicit conversions, defeating the purpose of the explicit
+ single-argument constructor. Additionally the single-argument
+ constructor is redundant; the variadic constructor can provide
+ identical functionality with one *fewer* copies if the supplied
+ func is an lvalue.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Mark
+ constructor template &lt;class F, class ...Args&gt; thread(F&amp;&amp;
+ f, Args&amp;&amp;... args); as explicit and remove the
+ single-argument constructor.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 324</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">thread::id
+ objects should be as useable in hashing containers as they are in
+ ordered associative containers.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ thread::id support for std::hash</FONT></P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><BR>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 77</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">&quot;CopyConstructible&quot;
+ and &quot;MoveConstructible&quot; in &quot;</FONT><FONT SIZE=2 STYLE="font-size: 9pt"><I>Requires:
+ </I></FONT><FONT SIZE=2 STYLE="font-size: 9pt">F and each Ti in
+ Args shall be CopyConstructible if an lvalue and otherwise
+ MoveConstructible.&quot; are reflected by interface.</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Add a concept for constructor
+ of thread.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 78</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">4</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">th</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ paragraph, 1</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">st</FONT></SUP><FONT SIZE=2 STYLE="font-size: 9pt">
+ line</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">In &quot;F and each Ti in
+ Args&quot;, 'Ti' is not clear.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Replace &quot;Ti&quot; with
+ &quot;args&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 97</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"> <FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">detach-on-destruction
+ may result in &ldquo;escaped&rdquo; threads accessing objects with
+ bounded lifetime after the end of their lifetime.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">See
+ document WG21 N2802=08-0312 written by Hans Boehm.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">US
+ 98</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.2.1.3,
+ 30.2.1.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ current defined behavior for the std::thread destructor is to
+ detach the thread. Unfortunately, this behavior exposes
+ programmers to tricky, hard-to-diagnose, undefined behavior.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Change destruction behavior to
+ undefined behavior, with a note strongly encouraging termination.
+ See the attached paper &quot;Issues with the C++ Standard&quot;
+ under Chapter 30, &quot;Implicit thread detach is harmful&quot;.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 325</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">We
+ believe constexpr literal values should be a more natural
+ expression of empty tag types than extern objects as it should
+ improve the compilers ability to optimize the empty object away
+ completely.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Replace
+ the extern declarations: extern const defer_lock_t defer_lock;
+ extern const try_to_lock_t try_to_lock; extern const adopt_lock_t
+ adopt_lock; with constexpr values constexpr defer_lock_t
+ defer_lock{}; constexpr try_to_lock_t try_to_lock{}; constexpr
+ adopt_lock_t adopt_lock{}; </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 326</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3.2.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">The
+ precondition that the mutex is not owned by this thread offers
+ introduces the risk of un-necessary undefined behaviour into the
+ program. The only time it matters whether the current thread owns
+ the mutex is in the lock operation, and that will happen
+ subsequent to construction in this case. The lock operation has
+ the identical pre-condition, so there is nothing gained by
+ asserting that precondition earlier and denying the program the
+ right to get into a valid state before calling lock.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 30.3.3.2.1p7</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 327</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">4,
+ 9, 14, 19</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Not
+ clear what the specification for error condition
+ resource_deadlock_would_occur means. It is perfectly possible for
+ this thread to own the mutex without setting owns to true on this
+ specific lock object. It is also possible for lock operations to
+ succeed even if the thread does own the mutex, if the mutex is
+ recursive. Likewise, if the mutex is not recursive and the mutex
+ has been locked externally, it is not always possible to know that
+ this error condition should be raised, depending on the host
+ operating system facilities. It is possible that 'i.e.' was
+ supposed to be 'e.g.' and that suggests that recursive locks are
+ not allowed. That makes sense, as the exposition-only member owns
+ is boolean and not a integer to count recursive locks.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a precondition !owns. Change the 'i.e.' in the error condition to
+ be 'e.g.' to allow for this condition to propogate deadlock
+ detection by the host OS.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 328</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.3.3.2.2</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">20</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is a missing precondition that owns is true, or an if(owns) test
+ is missing from the effect clause</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a precondition that owns == true. Add an error condition to detect
+ a violation, rather than yield undefined behaviour.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 329</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">future,
+ promise and packaged_task provide a framework for creating future
+ values, but a simple function to tie all three components together
+ is missing. Note that we only need a *simple* facility for C++0x.
+ Advanced thread pools are to be left for TR2.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a simple function along the lines of: template&lt; typename F,
+ typename ... Args &gt; requires Callable&lt; F, Args... &gt;
+ future&lt; Callable::result_type &gt; async( F&amp;&amp; f, Args
+ &amp;&amp; ... ); Semantics are similar to creating a thread
+ object with a packaged_task invoking f with forward&lt;Args&gt;(args...)
+ but details are left unspecified to allow different scheduling and
+ thread spawning implementations. It is unspecified whether a task
+ submitted to async is run on its own thread or a thread previously
+ used for another async task. If a call to async succeeds, it shall
+ be safe to wait for it from any thread. The state of thread_local
+ variables shall be preserved during async calls. No two incomplete
+ async tasks shall see the same value of this_thread::get_id().
+ [Note: this effectively forces new tasks to be run on a new
+ thread, or a fixed-size pool with no queue. If the library is
+ unable to spawn a new thread or there are no free worker threads
+ then the async call should fail.]</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 330</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.5.1
+ (and then 30.5.7) refer to a specialisation of
+ constructible_with_allocator_prefix&lt;&gt; However this trait is
+ not in the CD, so references to it should be removed.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the reference to constructible_with_allocator_prefix in 30.5.1
+ Remove paragraph 30.5.7</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 79</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.5.1</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">The concept of UsesAllocator
+ and Allocator should be used.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class R, class
+ Alloc&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct
+ uses_allocator&lt;promise&lt;R&gt;, Alloc&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">struct
+ constructible_with_allocator_prefix&lt;promise&lt;R&gt; &gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template&lt;class R, Allocator
+ Alloc&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">concept_map
+ UsesAllocator&lt;promise&lt;R&gt;, Alloc&gt;;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 331</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.3</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Not
+ clear what it means for a public constructor to be 'exposition
+ only'. If the intent is purely to support the library calling this
+ constructor then it can be made private and accessed through
+ friendship. Otherwise it should be documented for public
+ consumption.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Declare
+ the constructor as private with a note about intended friendship,
+ or remove the exposition-only comment and document the semantics.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 332</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is not clear without reference to the original proposal how to use
+ a future. In particular, the only way for the user to construct a
+ future is via the promise API which is documented after the
+ presentation of future. Most library clauses feature a small
+ description of their components and intended use, it would be most
+ useful in this case.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Provide
+ a small introductory paragraph, docuenting intended purpose of the
+ future class template and the way futures can only be created via
+ the promise API.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 333</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">We
+ expect the complicated 3-signature specifcation for future::get()
+ to be simplified to a single signature with a requires clause by
+ the application of concepts.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Requires
+ fully baked concepts for clause 30</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 334</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">5</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Behaviour
+ of get() is undefined if calling get() while not is_ready(). The
+ intent is that get() is a blocking call, and will wait for the
+ future to become ready.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Effects:
+ If is_ready() would return false, block on the asynchronous result
+ associated with *this. </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 335</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">std::unique_future
+ is MoveConstructible, so you can transfer the association with an
+ asynchronous result from one instance to another. However, there
+ is no way to determine whether or not an instance has been moved
+ from, and therefore whether or not it is safe to wait for it.
+ std::promise&lt;int&gt; p; std::unique_future&lt;int&gt;
+ uf(p.get_future()); std::unique_future&lt;int&gt;
+ uf2(std::move(uf)); uf.wait(); // oops, uf has no result to wait
+ for.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a &quot;waitable()&quot; function to unique_future (and
+ shared_future) akin to std::thread::joinable(), which returns true
+ if there is an associated result to wait for (whether or not it is
+ ready). Then we can say: if(uf.waitable()) uf.wait(); </FONT>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 336</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is possible to transfer ownership of the asynchronous result from
+ one unique_future instance to another via the move-constructor.
+ However, it is not possible to transfer it back, and nor is it
+ possible to create a default-constructed unique_future instance to
+ use as a later move target. This unduly limits the use of
+ unique_future in code. Also, the lack of a move-assignment
+ operator restricts the use of unique_future in containers such as
+ std::vector - vector::insert requires move-assignable for example.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a default constructor with the semantics that it creates a
+ unique_future with no associated asynchronous result. Add a
+ move-assignment operator which transfers ownership.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 80</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.5.4
+ , 30.5.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Typo, duplicated &quot;&gt;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&quot;class Period&gt;&gt;&quot;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Remove one</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 337</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">shared_future
+ should support an efficient move constructor that can avoid
+ unnecessary manipulation of a reference count, much like
+ shared_ptr</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a move constructor</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 338</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.5</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">shared_future
+ is currently CopyConstructible, but not CopyAssignable. This is
+ inconsistent with shared_ptr, and will surprise users. Users will
+ then write work-arounds to provide this behaviour. We should
+ provide it simply and efficiently as part of shared_future. Note
+ that since the shared_future member functions for accessing the
+ state are all declared const, the original usage of an immutable
+ shared_future value that can be freely copied by multiple threads
+ can be retained by declaring such an instance as &quot;const
+ shared_future&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ &quot;=delete&quot; from the copy-assignment operator of
+ shared_future. Add a move-constructor
+ shared_future(shared_future&amp;&amp; rhs), and a move-assignment
+ operator shared_future&amp; operator=(shared_future&amp;&amp;
+ rhs). The postcondition for the copy-assignment operator is that
+ *this has the same associated state as rhs. The postcondition for
+ the move-constructor and move assignment is that *this has the
+ same associated as rhs had before the constructor/assignment call
+ and that rhs has no associated state.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 339</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">6,
+ 7</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Move
+ assignment is goiing in the wrong direction, assigning from *this
+ to the passed rvalue, and then returning a reference to an
+ unusable *this</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Strike
+ 6. 7 Postcondition: associated state of *this is the same as the
+ associated state of rhs before the call. rhs has no associated
+ state. </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 340</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">11,
+ 12, 13</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">There
+ is an implied postcondition that the state of the promise is
+ transferred into the future leaving the promise with no associated
+ state. It should be spelled out.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Postcondition:
+ *this has no associated state.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 341</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">promise::swap
+ accepts its parameter by lvalue reference. This is inconsistent
+ with other types that provide a swap member function, where those
+ swap functions accept an rvalue reference</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Change
+ promise::swap to take an rvalue reference.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 342</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">std::promise
+ is missing a non-member overload of swap. This is inconsistent
+ with other types that provide a swap member function</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a non-member overload void swap(promise&amp;&amp; x,promise&amp;&amp;
+ y){ x.swap(y); }</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 343</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">30.5.6</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">The
+ move constructor of a std::promise object does not need to
+ allocate any memory, so the move-construct-with-allocator overload
+ of the constructor is superfluous.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the constructor with the signature template &lt;class Allocator&gt;
+ promise(allocator_arg_t, const Allocator&amp; a, promise&amp;
+ rhs);</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">JP
+ 81</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">30.5.8</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">There are not requirements for
+ F and a concept of Allocator dose not use.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">Correct as follows.</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <BR>
+ </P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit packaged_task(F f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F, class
+ Allocator&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ packaged_task(allocator_arg_t, const Allocator&amp; a, F f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit packaged_task(F&amp;&amp;
+ f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F, class
+ Allocator&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ packaged_task(allocator_arg_t, const Allocator&amp; a, F&amp;&amp;
+ f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">should be</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit packaged_task(F f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class F, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ packaged_task(allocator_arg_t, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a, F f);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">template &lt;class F&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">explicit packaged_task(F&amp;&amp;
+ f);</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ &nbsp;</P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">template
+ &lt;class F, </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Allocator
+ Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&gt;</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt"><U>requires
+ CopyConstructible&lt;F&gt; &amp;&amp; Callable&lt;F, ArgTypes...&gt;</U></FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in">
+ <FONT SIZE=2 STYLE="font-size: 9pt">&amp;&amp;
+ Convertible&lt;Callable&lt;F, ArgTypes...&gt;::result_type, R&gt;</FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in; margin-bottom: 0.04in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2 STYLE="font-size: 9pt">explicit
+ packaged_task(allocator_arg_t, const </FONT><FONT SIZE=2 STYLE="font-size: 9pt"><U>Alloc</U></FONT><FONT SIZE=2 STYLE="font-size: 9pt">&amp;
+ a, F&amp;&amp; f);</FONT></FONT></P>
+ <P LANG="en-GB" CLASS="western" ALIGN=LEFT STYLE="margin-top: 0.04in">
+ <BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-23</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Annex
+ B</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-23
+ Recursive use of constexpr functions appears to be permitted.
+ Since such functions may be required to be evaluated at
+ compile-time, Annex B &quot;implementation quantities&quot; should
+ specify a maximum depth of recursion.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">In
+ Annex B, specify a recursion depth of 256 or a larger value.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-24</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"> <FONT SIZE=2 STYLE="font-size: 9pt">Annex
+ B</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-24
+ The number of placeholders for &quot;bind&quot; is
+ implementation-defined in 20.7.12.1.4, but no minimum is suggested
+ in Annex B.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ a miminum of 10 placeholders to Annex B.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-25</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Annex
+ B</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">p2</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">te</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in; margin-bottom: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">DE-25
+ Specifying a minimum of 17 recursively nested template
+ instantiations is too small for practical purposes. The limit is
+ too high to effectively limit compiler resource usage, see
+
http://ubiety.uwaterloo.ca/~tveldhui/papers/2003/turing.pdf . The
+ conclusion is that the metric &quot;number of recursively nested
+ template instantiations&quot; is inapposite.</FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">Remove
+ the bullet &quot;Recursively nested template instantiations [17]&quot;.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 38</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">C.2
+ [diffs.library]</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">1</FONT></P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">What
+ is ISO/IEC 1990:9899/DAM 1? My guess is that's a typo for ISO/IEC</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">9899/Amd.1:1995
+ which I'd have expected to be referenced here (the tables</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">make
+ reference to things which were introduced by Amd.1).</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">One
+ need probably a reference to the document which introduce char16_t
+ and</FONT></FONT></P>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">char32_t
+ in C (ISO/IEC TR 19769:2004?).</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><FONT SIZE=2 STYLE="font-size: 9pt">UK<BR>
+ 344</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Appendix
+ D</FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 9pt">Ge</FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">It
+ is desirable to allow some mechanism to support phasing out of
+ deprecated features in the future. Allowing compilers to implement
+ a mode where deprecated features are not available is a good first
+ step.</FONT></P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 9pt">Add
+ to the definition of deprecated features permission for compilers
+ to maintain a conditionally supported mode where deprecated
+ features can be disabled, so long as they also default to a mode
+ where all deprecated features are supported.</FONT></P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><FONT SIZE=2 STYLE="font-size: 9pt">FR
+ 39</FONT></P>
+ </TD>
+ <TD WIDTH=77>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Index</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=69>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">ed</FONT></FONT></P>
+ </TD>
+ <TD WIDTH=307>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">Some
+ definitions seem not indexed (such as /trivially copyable/ or</FONT></FONT></P>
+ <P STYLE="margin-bottom: 0in"><FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 9pt">/sequenced
+ before/), indexing them would be useful (and marking specially the
+ page -- say bold or italic -- which reference to the definition
+ would increase the usefulness; having a separate index of all
+ definitions is something which could also be considered).</FONT></FONT></P>
+ <P><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=23>
+ <P CLASS="western" ALIGN=JUSTIFY STYLE="margin-right: -0.18in"><BR>
+ </P>
+ </TD>
+ <TD WIDTH=77>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=69>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=33>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=307>
+ <P CLASS="western" ALIGN=JUSTIFY><BR>
+ </P>
+ </TD>
+ <TD WIDTH=270>
+ <P CLASS="western" ALIGN=LEFT><BR>
+ </P>
+ </TD>
+ <TD WIDTH=157>
+ <P LANG="en-GB" STYLE="margin-top: 0.04in"><BR>
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<P LANG="en-GB" CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0in; line-height: 0.17in">
+<BR>
+</P>
+<DIV TYPE=FOOTER>
+ <P LANG="en-GB" ALIGN=LEFT STYLE="margin-top: 0.16in; margin-bottom: 0.01in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">1 </FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>MB</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">
+ = Member body (enter the ISO 3166 two-letter country code, e.g. CN
+ for China; comments from the ISO/CS editing unit are identified by
+ </FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>**</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">)</FONT></FONT></FONT></P>
+ <P LANG="en-GB" ALIGN=LEFT STYLE="margin-top: 0.01in; margin-bottom: 0.01in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">2</FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B> Type
+ of comment:</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"> </FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>ge</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">
+ = general </FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>te</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">
+ = technical </FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>ed</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt">
+ = editorial </FONT></FONT></FONT>
+ </P>
+ <P LANG="en-GB" ALIGN=LEFT STYLE="margin-top: 0.01in; margin-bottom: 0.01in">
+ <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><B>NOTE</B></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"> Columns
+ 1, 2, 4, 5 are compulsory.</FONT></FONT></FONT></P>
+ <P LANG="en-GB" ALIGN=RIGHT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><SPAN LANG="en-US">page
+ </SPAN></FONT></FONT><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><SPAN LANG="en-US"><SDFIELD TYPE=PAGE SUBTYPE=RANDOM FORMAT=PAGE>144</SDFIELD>
+ of <SDFIELD TYPE=DOCSTAT SUBTYPE=PAGE FORMAT=ARABIC>144</SDFIELD></SPAN></FONT></FONT></FONT></P>
+ <P LANG="en-GB" ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><FONT SIZE=1 STYLE="font-size: 8pt"><I>ISO
+ electronic balloting commenting template/version 2001-10</I></FONT></FONT></FONT></P>
+</DIV>
+</BODY>
+</HTML>
\ No newline at end of file


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk