|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r51562 - sandbox/committee/LWG
From: bdawes_at_[hidden]
Date: 2009-03-03 08:30:07
Author: bemandawes
Date: 2009-03-03 08:30:05 EST (Tue, 03 Mar 2009)
New Revision: 51562
URL: http://svn.boost.org/trac/boost/changeset/51562
Log:
cleanup
Text files modified:
sandbox/committee/LWG/0xCD1_Comments.html | 16715 ++++++++++++++++-----------------------
1 files changed, 7074 insertions(+), 9641 deletions(-)
Modified: sandbox/committee/LWG/0xCD1_Comments.html
==============================================================================
--- sandbox/committee/LWG/0xCD1_Comments.html (original)
+++ sandbox/committee/LWG/0xCD1_Comments.html 2009-03-03 08:30:05 EST (Tue, 03 Mar 2009)
@@ -1,6 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<meta name="generator" content=
"Microsoft FrontPage 5.0">
+<meta name="generator" content="Microsoft FrontPage 5.0">
<meta http-equiv="CONTENT-TYPE" content=
"text/html; charset=us-ascii">
<title>C++0x CD1 NB Comments</title>
@@ -26,66 +27,58 @@
cellspacing="0" style="border-collapse: collapse">
<tr valign="top">
<td>
-<p>1</font>
+<p>1
<td>
-<p><font size="1" style="font-size: 8pt">2</font>
+<p>2
<td>
-<p><font size="1" style="font-size: 8pt">3</font>
+<p>3
<td>
-<p><font size="1" style="font-size: 8pt">4</font>
+<p>4
<td>
-<p><font size="1" style="font-size: 8pt">5</font>
+<p>5
<td>
-<p><font size="1" style="font-size: 8pt">6</font>
+<p>6
<td>
-<p><font size="1" style="font-size: 8pt">7</font>
+<p>7
<tr valign="top">
<td>
-<p><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><b>MB</b><sup><b>1</b></sup><b><br></b><br>
<td>
-<p><font size="1" style="font-size: 8pt"><b>Clause No./<br>
+<p><b>Clause No./<br>
Subclause No./<br>
-Annex<br></b>(e.g. 3.1)</font>
+Annex<br></b>(e.g. 3.1)
<td>
-<p><font size="1" style="font-size: 8pt"><b>Paragraph/<br>
-Figure/Table/Note<br></b>(e.g. Table 1)</font>
+<p><b>Paragraph/<br>
+Figure/Table/Note<br></b>(e.g. Table 1)
<td>
-<p><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><b>Type of com-ment</b><sup><b>2</b></sup>
<td>
-<p><font size="1" style="font-size: 8pt"><b>Comment (justification
-for change) by the MB</b></font>
+<p><b>Comment (justification
+for change) by the MB</b>
<td>
-<p><font size="1" style="font-size: 8pt"><b>Proposed change by the
-MB</b></font>
+<p><b>Proposed change by the
+MB</b>
<td>
<p lang="en-GB" 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>
+<b>Disposition</b>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 1</font>
+<p>FR 1
<td>
-<p><font size="2" style="font-size: 9pt">General Comment</font>
+<p>General Comment
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ge</font>
+<p>ge
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Interactions between several new features
+<p style="margin-bottom: 0in">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>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">We worry about the complexity of the
-programming model so created.</font>
+additions.
+<p style="margin-bottom: 0in">We worry about the complexity of the
+programming model so created.
<p style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -93,226 +86,204 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 1</font>
+<p lang="en-GB" align="left">US 1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1-16</font>
+<p lang="en-GB" align="left">1-16
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge/te</font>
+<p lang="en-GB" align="left">ge/te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The active issues identified in WG21
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The active issues identified in WG21
N2803, C++ Standard Core Language Active Issues, must be addressed
-and appropriate action taken.</font>
+and appropriate action taken.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font color="#000080" size="2" style="font-size: 11pt"><u><a href=
-"http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html"><font size="2"
-style=
-"font-size: 9pt">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html></a></u></font>
+<font color="#000080"><u><a href=
+"http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html></u></font>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Appropriate action would include making
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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>
+to the CD, or deferring the issue to a later point in time.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">CA-1</font>
+<p>CA-1
<td>
<p><br>
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Ge</font>
+<p>Ge
<td>
-<p><font size="2" style="font-size: 9pt">There are quite a number
+<p>There are quite a number
of defects for the current CD recorded in SC22/WG21-N2803 and
-N2806</font>
+N2806
<td>
-<p><font size="2" style="font-size: 9pt">Consider these comments
-and update ISO/IEC CD 14882 accordingly</font>
+<p>Consider these comments
+and update ISO/IEC CD 14882 accordingly
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-1</font>
+<p>DE-1
<td>
-<p><font size="2" style="font-size: 9pt">1 through 16</font>
+<p>1 through 16
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">ge/te</font>
+<p>ge/te
<td>
-<p><font size="2" style="font-size: 9pt">DE-1 Consider addressing a
+<p>DE-1 Consider addressing a
significant part of the unresolved core language issues presented
in WG21 document N2791 "C++ Standard Core Language Active Issues,
Revision 59", available at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
-.</font>
+.
<td>
<p><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">CH 2</font>
+<p>CH 2
<td>
-<p><font size="2" style="font-size: 9pt">all</font>
+<p>all
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The issues on the issues
-lists shall be addressed before the standard becomes final.</font>
+<p>The issues on the issues
+lists shall be addressed before the standard becomes final.
<td>
<p><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 3</font>
+<p lang="en-GB" align="left">US 3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">all</font>
+<p lang="en-GB" align="left">all
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p><font size="2" style="font-size: 9pt">Latin abbreviations are
-presented incorrectly.</font>
+<p>Latin abbreviations are
+presented incorrectly.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Italicize all Latin
+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>
+abbreviation.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 3</font>
+<p>FR 3
<td>
-<p><font size="2" style="font-size: 9pt">1 [intro.scope]</font>
+<p>1 [intro.scope]
<td>
-<p><font size="2" style="font-size: 9pt">2</font>
+<p>2
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">C++ is split at the end of line.</font>
+<p>C++ is split at the end of line.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 4</font>
+<p lang="en-GB" align="left">US 4
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1.1</font>
+<p lang="en-GB" align="left">1.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2</font>
+<p lang="en-GB" align="left">2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">There is a bad line break in "C++".</font>
+<p lang="en-GB" align="left">There is a bad line break in "C++".
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 1</font>
+<p>UK 1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.1</font>
+<p align="justify">1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">List of
+<p align="left">List of
additional facilities over C has been extended with this standard,
-so should be mentioned in the introductory material.</font>
+so should be mentioned in the introductory material.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the
+<p align="left">Add the
following to the list in 1.1p2: atomic operations concurrency
-alignment control user-defined literals attributes</font>
+alignment control user-defined literals attributes
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 4</font>
+<p>FR 4
<td>
-<p><font size="2" style="font-size: 9pt">1.2 [intro.refs]</font>
+<p>1.2 [intro.refs]
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Is the lack of reference to ISO/CEI
-9899/AC3:2007 voluntary?</font>
+<p>Is the lack of reference to ISO/CEI
+9899/AC3:2007 voluntary?
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 2</font>
+<p>UK 2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.2</font>
+<p align="justify">1.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><span lang="en-US">We recommend taking
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><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>
+comment.+</span>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">... not sure
-...</font>
+<p align="left">... not sure
+...
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 3</font>
+<p>UK 3
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">1.3.1</font>
+<p align="justify">1.3.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
definition of an argument does not seem to cover many assumed use
-cases, and we believe that is not intentional.</font>
+cases, and we believe that is not intentional.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Revise the definition of argument to answer
+<p align="left" style="margin-bottom: 0in">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
@@ -322,249 +293,227 @@
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>
+parens are not used?
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 4</font>
+<p>UK 4
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">1.3.3</font>
+<p align="justify">1.3.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">This
definition is essentially worthless, as it says nothing about what
distinguished a diagnostic message from other output messages
-provided by the implementation</font>
+provided by the implementation
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">... add something about the diagnostic message
+<p align="left" style="margin-bottom: 0in">... 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>
+program that violates the rules of the standard. ...
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 5</font>
+<p>FR 5
<td>
-<p><font size="2" style="font-size: 9pt">1.3.4
-[defns.dynamic.type]</font>
+<p>1.3.4
+[defns.dynamic.type]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">"The dynamic type of an rvalue expression is
-its static type." Is this true with rvalue references?</font>
+<p>"The dynamic type of an rvalue expression is
+its static type." Is this true with rvalue references?
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 5</font>
+<p lang="en-GB" align="left">US 5
<td>
-<p><font size="2" style="font-size: 9pt">1.3.5</font>
+<p>1.3.5
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The wording is unclear as
+<p>The wording is unclear as
to whether it is the input or the implementation "that is not a
-well-formed program".</font>
+well-formed program".
<td>
-<p><font size="2" style="font-size: 9pt">Reword to clarify that it
-is the input that is here considered not well-formed.</font>
+<p>Reword to clarify that it
+is the input that is here considered not well-formed.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 6</font>
+<p>FR 6
<td>
-<p><font size="2" style="font-size: 9pt">1.3.6
-[defns.impl.defined]</font>
+<p>1.3.6
+[defns.impl.defined]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">There is a page break between the title and the
-paragraph.</font>
+<p>There is a page break between the title and the
+paragraph.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 7</font>
+<p>FR 7
<td>
-<p><font size="2" style="font-size: 9pt">1.3.13
-[defns.undefined]</font>
+<p>1.3.13
+[defns.undefined]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">[intro.execution]/5 explicitly allows non
-causal undefined behaviour,</font>
+<p>[intro.execution]/5 explicitly allows non
+causal undefined behaviour,
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Adding it to the note outlying possible
-undefined behaviours.</font>
+<p>Adding it to the note outlying possible
+undefined behaviours.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 6</font>
+<p lang="en-GB" align="left">US 6
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1.3.14</font>
+<p lang="en-GB" align="left">1.3.14
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Unspecified behavior does not clearly
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Unspecified behavior does not clearly
state whether or not undefined behavior is permitted. (The standard
says that "usually, the range of possible behaviors is delineated",
but what happens if the range is not delineated? Is a crash, or
-worse, allowed?)</font>
+worse, allowed?)
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Clearly state whether or not Unspecified behavior
-includes undefined behavior.</font>
+<p lang="en-GB" align="left">Clearly state whether or not Unspecified behavior
+includes undefined behavior.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 8</font>
+<p>FR 8
<td>
-<p><font size="2" style="font-size: 9pt">1.4
-[intro.compliance]</font>
+<p>1.4
+[intro.compliance]
<td>
-<p><font size="2" style="font-size: 9pt">8</font>
+<p>8
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The paragraph as its stands seems to require
+<p>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>
+which defines some cases of ODR.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 5</font>
+<p>UK 5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.5</font>
+<p align="justify">1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Missing
+<p align="left">Missing
checklist of implementation defined behaviour (see ISO/IEC TR
-10176, 4.1.1p6)</font>
+10176, 4.1.1p6)
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide a new
-annex with the missing checklist</font>
+<p align="left">Provide a new
+annex with the missing checklist
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 6</font>
+<p>UK 6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.5</font>
+<p align="justify">1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Missing annex
+<p align="left">Missing annex
describing potential incompatibility to previous edition of the
-standard (see ISO/IEC TR 10176, 4.1.1p9)</font>
+standard (see ISO/IEC TR 10176, 4.1.1p9)
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide a new
+<p align="left">Provide a new
annex with the missing documentation. See n2733(08-0243) for a
-starting point</font>
+starting point
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 7</font>
+<p>US 7
<td>
-<p><font size="2" style="font-size: 9pt">1.5</font>
+<p>1.5
<td>
-<p><font size="2" style="font-size: 9pt">2</font>
+<p>2
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">There is no mention of
-Clause 17.</font>
+<p>There is no mention of
+Clause 17.
<td>
-<p><font size="2" style="font-size: 9pt">Include Clause 17 among
-the list of Clauses that specify the Standard Library.</font>
+<p>Include Clause 17 among
+the list of Clauses that specify the Standard Library.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 8</font>
+<p>US 8
<td>
-<p><font size="2" style="font-size: 9pt">1.5</font>
+<p>1.5
<td>
-<p><font size="2" style="font-size: 9pt">2</font>
+<p>2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">The paragraph omits to
+The paragraph omits to
mention concepts and concept maps among its list of entities
-defined in the Standard Library.</font>
+defined in the Standard Library.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Mention concepts and
-concept maps among the list of entities.</font>
+<p>Mention concepts and
+concept maps among the list of entities.
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 9</font>
+<p lang="en-GB" align="left">US 9
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1.6</font>
+<p lang="en-GB" align="left">1.6
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1</font>
+<p lang="en-GB" align="left">1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The syntax description does not account
+for lines that wrap.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -572,226 +521,216 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 10</font>
+<p lang="en-GB" align="left">US 10
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1.7</font>
+<p lang="en-GB" align="left">1.7
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3</font>
+<p lang="en-GB" align="left">3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">The term thread is used before defined.</font>
+<p lang="en-GB" align="left">The term thread is used before defined.
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 11pt"><font size="2" style="font-size: 9pt" color=
-"#000000">R</font><font size="2" style="font-size: 9pt">eference
-1.10 [intro.multithread].</font></font>
+<p lang="en-GB" align="left"><font color=
+"#000000">R</font>eference
+1.10 [intro.multithread].
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 11</font>
+<p>US 11
<td>
-<p><font size="2" style="font-size: 9pt">1.7</font>
+<p>1.7
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3 last sent.</font>
+<p>¶ 3 last sent.
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The phrase “threads
+<p>The phrase “threads
of execution” should be accompanied by a reference to
-[intro.multithread].</font>
+[intro.multithread].
<td>
-<p><font size="2" style="font-size: 9pt">Insert the recommended
-reference.</font>
+<p>Insert the recommended
+reference.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 12</font>
+<p>US 12
<td>
-<p><font size="2" style="font-size: 9pt">1.7</font>
+<p>1.7
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3 first
-sent.</font>
+<p>¶ 3 first
+sent.
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">A memory location is not
-an object as the sentence claims.</font>
+<p>A memory location is not
+an object as the sentence claims.
<td>
-<p><font size="2" style="font-size: 9pt">Clarify that a memory
+<p>Clarify that a memory
location “holds” an object rather than that it
-“is” an object.</font>
+“is” an object.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 13</font>
+<p>US 13
<td>
-<p><font size="2" style="font-size: 9pt">1.7</font>
+<p>1.7
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3 last sent.</font>
+<p>¶ 3 last sent.
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">It is unclear what is
+<p>It is unclear what is
meant by memory locations that are "separate": are they distinct?
-non-overlapping? how much "separation" is needed?</font>
+non-overlapping? how much "separation" is needed?
<td>
-<p><font size="2" style="font-size: 9pt">Provide either a better
+<p>Provide either a better
definition of “separate” or reword (this and subsequent
-paragraphs) to avoid this term.</font>
+paragraphs) to avoid this term.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 14</font>
+<p>US 14
<td>
-<p><font size="2" style="font-size: 9pt">1.7</font>
+<p>1.7
<td>
-<p><font size="2" style="font-size: 9pt">¶ 4</font>
+<p>¶ 4
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The phrase "no matter what
+<p>The phrase "no matter what
the sizes of the intervening bit-fields happen to be" contradicts
the claim of separation "by a zero-length bit-field
-declaration".</font>
+declaration".
<td>
-<p><font size="2" style="font-size: 9pt">Delete the “no
+<p>Delete the “no
matter…” phrase, or resolve the contradiction in a
-different way.</font>
+different way.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 15</font>
+<p>US 15
<td>
-<p><font size="2" style="font-size: 9pt">1.7</font>
+<p>1.7
<td>
-<p><font size="2" style="font-size: 9pt">¶ 5</font>
+<p>¶ 5
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">A struct does not
-“contain” memory locations.</font>
+<p>A struct does not
+“contain” memory locations.
<td>
-<p><font size="2" style="font-size: 9pt">Reword so that a struct is
-“held in” one or more memory locations.</font>
+<p>Reword so that a struct is
+“held in” one or more memory locations.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 16</font>
+<p>US 16
<td>
-<p><font size="2" style="font-size: 9pt">1.9</font>
+<p>1.9
<td>
<p><br>
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">The discussion of
+<p>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
-"sequence”.</font>
+"sequence”.
<td>
-<p><font size="2" style="font-size: 9pt">Remove/replace various
-occurrences of "sequence" in 1.9.</font>
+<p>Remove/replace various
+occurrences of "sequence" in 1.9.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 8</font>
+<p>UK 8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.9</font>
+<p align="justify">1.9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">With parallel
+<p align="left">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>
+of exectution sequences.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Update first
+<p align="left">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>
+the same program and the same input.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 7</font>
+<p>UK 7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1.9</font>
+<p align="justify">1.9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Does the term
+<p align="left">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>
+happens-before relationships defined in 1.10
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-'sequence' with 'sequences'.</font>
+<p align="left">Replace
+'sequence' with 'sequences'.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 9</font>
+<p>FR 9
<td>
-<p><font size="2" style="font-size: 9pt">1.9
-[intro.execution]</font>
+<p>1.9
+[intro.execution]
<td>
-<p><font size="2" style="font-size: 9pt">16</font>
+<p>16
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">This example use int *v while the other
-examples seems to use notation like int* v.</font>
+<p>This example use int *v while the other
+examples seems to use notation like int* v.
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 17</font>
+<p>US 17
<td>
-<p><font size="2" style="font-size: 9pt">1.10</font>
+<p>1.10
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt">Ge</font>
+<p>Ge
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">This definition of “thread” is poor,
+<p lang="en-GB" align="left">This definition of “thread” 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>
+the concept that all threads share the same address space.
<td>
<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>
+Replace first sentence of
+para 1 as follows:
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">Under a hosted implementation, a C++ program can
+"margin-top: 0.04in; margin-bottom: 0.04in">Under a hosted implementation, a C++ program can
have more than one thread of execution (a.k.a. thread) running
concurrently. Each thread is a single flow of control within a
program. Anything whose address may be determined by a thread,
@@ -799,99 +738,90 @@
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>
+program.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 9</font>
+<p>UK 9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2.1</font>
+<p align="justify">2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2,
-4</font>
+<p align="justify">2,
+4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Undefined
+<p align="left">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>
+consistently.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace undefined behaviour with conditionally
+<p align="left" style="margin-bottom: 0in">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>
+empty line to follow if the last character was a back-slash.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK 10</font>
+<p>UK 10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2.1</font>
+<p align="justify">2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Implementation defined seems unnecessarily
+<p align="left" style="margin-bottom: 0in">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>
+Better left unspecified.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">How the
+<p align="left">How the
compiler treats non-empty sequences of whitespace should be left
-unspecified, rather than implementation-defined.</font>
+unspecified, rather than implementation-defined.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 10</font>
+<p>FR 10
<td>
-<p><font size="2" style="font-size: 9pt">2.1 [lex.phases]/5 and 2.2
-[lex.charset]/3</font>
+<p>2.1 [lex.phases]/5 and 2.2
+[lex.charset]/3
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">[defns.multibyte] "the extended character
-set."</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">[lex.charset]/3 cited below implies that
-there is an extended character set per locale.</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">[lex.phases]/5 "Each [...]
+<p style="margin-bottom: 0in">[defns.multibyte] "the extended character
+set."
+<p style="margin-bottom: 0in">[lex.charset]/3 cited below implies that
+there is an extended character set per locale.
+<p style="margin-bottom: 0in">[lex.phases]/5 "Each [...]
universal-character-name [...] is converted to the corresponding
-member of the execution character set"</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">[lex.charset]/3 "The values of the members
+member of the execution character set"
+<p style="margin-bottom: 0in">[lex.charset]/3 "The values of the members
of the execution character sets are implementation defined, and any
-additional members are locale-specific."</font>
+additional members are locale-specific."
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Together they seem to imply that what is
+<p style="margin-bottom: 0in">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>
+character.
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">This is not the behaviour of at least some
+<p style="margin-bottom: 0in">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>
+are using an implementation defined char set.
<p style="margin-bottom: 0in"><br>
<p><br>
<td>
@@ -901,492 +831,424 @@
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">11</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2.3</font>
+<p align="justify">2.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Trigraphs are
+<p align="left">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>
+for the non-expert.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Deprecate the
-whole of 2.3 and move it to appendix D.</font>
+<p align="left">Deprecate the
+whole of 2.3 and move it to appendix D.
<td>
<p><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">12</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2.4,
-2.8</font>
+<p align="justify">2.4,
+2.8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This undefined behaviour in token concatenation is
+<p align="left" style="margin-bottom: 0in">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>
+would lead to more portable programs.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
+<p align="left">Replace
undefined behaviour with conditionally supported behaviour with
-implementation defined semantics.</font>
+implementation defined semantics.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 18</font>
+<p>US 18
<td>
-<p><font size="2" style="font-size: 9pt">2.4</font>
+<p>2.4
<td>
-<p><font size="2" style="font-size: 9pt">¶ 2</font>
+<p>¶ 2
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The paragraph begins with
-an empty line.</font>
+<p>The paragraph begins with
+an empty line.
<td>
-<p><font size="2" style="font-size: 9pt">Delete the empty
-line.</font>
+<p>Delete the empty
+line.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 11</font>
+<p>FR 11
<td>
-<p><font size="2" style="font-size: 9pt">2.4 [lex.pptokens]</font>
+<p>2.4 [lex.pptokens]
<td>
-<p><font size="2" style="font-size: 9pt">3</font>
+<p>3
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">There are spurious empty lines.</font>
+<p>There are spurious empty lines.
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 12</font>
+<p>FR 12
<td>
-<p><font size="2" style="font-size: 9pt">2.5 [lex.digraph] and 2.11
-[lex.key]/2</font>
+<p>2.5 [lex.digraph] and 2.11
+[lex.key]/2
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The alternative representations are reserved as
-such even in attribute. Is that what is wanted?</font>
+<p>The alternative representations are reserved as
+such even in attribute. Is that what is wanted?
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 2</font>
+<p>FI 2
<td>
-<p><font size="2" style="font-size: 9pt">2.5</font>
+<p>2.5
<td>
-<p lang="fi-FI" style="margin-top: 0.04in"><font size="2" style=
-"font-size: 9pt">Table 2</font>
+<p lang="fi-FI" style="margin-top: 0.04in">Table 2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">Add eq, for spelling out
-== in order to distinguish it from the assignment operator.</font>
+<p>Add eq, for spelling out
+== in order to distinguish it from the assignment operator.
<td>
-<p><font size="2" style="font-size: 9pt">See eq-keyword.doc,
-eq-keyword.ppt</font>
+<p>See eq-keyword.doc,
+eq-keyword.ppt
<td>
<p><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">13</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2.9</font>
+<p align="justify">2.9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This text is
+<p align="left">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>
+expressions.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a note
+<p align="left">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>
+expressions.
<td>
<p><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">14</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>14
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.11</font>
+<p align="justify">2.11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">table
-3</font>
+<p align="justify">table
+3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">The table is nearly sorted, but not quite. It was
+sorted in previous versions of the standard.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Sort the
-table.</font>
+<p align="left">Sort the
+table.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 1</font>
+<p>JP 1
<td>
-<p><font size="2" style="font-size: 9pt">2.11</font>
+<p>2.11
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Table 3</font>
+<p lang="en-GB" align="left">Table 3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">Keywords in the table are
+<p>Keywords in the table are
listed disorderly. Also, a part of a frame of the table is not
-drawn.</font>
+drawn.
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Sort it in alphabetical order. Complete the table
-frame.</font>
+<p lang="en-GB" align="left">Sort it in alphabetical order. Complete the table
+frame.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 19</font>
+<p>US 19
<td>
-<p><font size="2" style="font-size: 9pt">2.13.1</font>
+<p>2.13.1
<td>
-<p><font size="2" style="font-size: 9pt">Table 5, rows “l or
-L” and “ll or LL”</font>
+<p>Table 5, rows “l or
+L” and “ll or LL”
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The final entry in the
-last column (“unsigned long int”) is incorrect.</font>
+<p>The final entry in the
+last column (“unsigned long int”) is incorrect.
<td>
-<p><font size="2" style="font-size: 9pt">Replace the incorrect
-entries by “unsigned long long int”.</font>
+<p>Replace the incorrect
+entries by “unsigned long long int”.
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 20</font>
+<p lang="en-GB" align="left">US 20
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2.13.1, 2.13.3</font>
+<p lang="en-GB" align="left">2.13.1, 2.13.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Long strings of digits in literals are a
+<p lang="en-GB" align="left">Long strings of digits in literals are a
continuing problem in the production and maintenance of
-programs.</font>
+programs.
<td>
-<p lang="en-GB" 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=
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Adopt the 1983 technology of Ada and use
+underscores to separate digits. <font size=
+"2" style="font-size: 11pt"> <font color=
"#000080"><u><a href=
"http://www.google.com/url?sa=D&q=http%3A%2F%2Fwww.open-std.org%2FJTC1%2FSC22%2FWG21%2Fdocs%2Fpapers%2F2007%2Fn2281.html"
-target="_blank"><font size="2" style=
-"font-size: 9pt">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2281.html></a></u></font></font>
+target="_blank">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2281.html></u></font></font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">15</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>15
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.13.2</font>
+<p align="justify">2.13.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Inconsistency
+<p align="left">Inconsistency
between definition of a multicharacter literal and a wide character
-literal containing multiple c-chars.</font>
+literal containing multiple c-chars.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Define the term multicharacter wide literal for a
+<p align="left" style="margin-bottom: 0in">Define the term multicharacter wide literal for a
wchar_t literal containing multiple elements, and specify its type
-is integer (or wider)</font>
+is integer (or wider)
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">16</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>16
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.13.2</font>
+<p align="justify">2.13.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Not
+<p align="left">Not
immediately clear why the question mark needs escaping. A note
-would help.</font>
+would help.
<td>
-<p 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 align="left" style="margin-bottom: 0in">Add a note explaining that the ? character may
+need escaping to avoid accidentally creating a trigraph.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 2</font>
+<p>JP 2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p lang="en-GB" align="left">2.13.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">1<sup>st</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 2<sup>nd</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Typo, R"..." should be R"[...]"</font>
+<p lang="en-GB" align="left">Typo, R"..." should be R"[...]"
<td>
-<p><font size="2" style="font-size: 9pt">Correct typo.</font>
+<p>Correct typo.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 3</font>
+<p>JP 3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p lang="en-GB" align="left">2.13.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">We think that the
-explanation of d-char-sequence is not enough.</font>
+<p>We think that the
+explanation of d-char-sequence is not enough.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add the following.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add the following.
<ol>
<li>
<p lang="en-GB" 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></ol>
+"margin-bottom: 0in; widows: 0; orphans: 0">Add the following to the explanation of
+d-char-sequence, more easily to understand.</ol>
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">...prefix is a raw string literal.</font>
+"margin-left: 0.67in; margin-bottom: 0in">...prefix is a raw string literal.
<p lang="en-GB" 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>
+"margin-left: 0.67in; margin-bottom: 0in">The d-char-sequence is used as delimiter.
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The terminating d-char-sequence of ...</font>
+"margin-left: 0.67in; margin-bottom: 0in">The terminating d-char-sequence of ...
<ol start="2">
<li>
<p lang="en-GB" 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></ol>
+"margin-bottom: 0in; widows: 0; orphans: 0">Add the following note that there are square
+brackets in r-char-sequence.</ol>
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">[Note:</font>
+"margin-left: 0.67in; margin-bottom: 0in">[Note:
<p lang="en-GB" align="left" style=
-"margin-left: 0.83in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">char foo[] = R”<i>delimiter</i>[[a-z]
+"margin-left: 0.83in; margin-bottom: 0in">char foo[] = R”<i>delimiter</i>[[a-z]
specifies a range which matches any lowercase letter from "a" to
-"z".]<i>delimiter</i>”;</font>
+"z".]<i>delimiter</i>”;
<p lang="en-GB" align="left" style=
"margin-left: 0.67in; margin-bottom: 0in"><br>
<p lang="en-GB" 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>
+"margin-left: 0.67in; margin-bottom: 0in">the expression statement behaves exactly the same
+as
<p lang="en-GB" align="left" style=
"margin-left: 0.67in; margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"margin-left: 0.83in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">char foo[]="[a-z] specifies a range which matches
-any lowercase letter from \"a\" to \"z\".";</font>
+"margin-left: 0.83in; margin-bottom: 0in">char foo[]="[a-z] specifies a range which matches
+any lowercase letter from \"a\" to \"z\".";
<p lang="en-GB" align="left" style=
-"text-indent: 0.69in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">- end note]</font>
+"text-indent: 0.69in; margin-bottom: 0in">- end note]
<p lang="en-GB" align="left" style="text-indent: 0.69in"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 4</font>
+<p>JP 4
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p lang="en-GB" align="left">2.13.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">3<sup>rd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 1st line of example</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Typo. Lack of a necessary backslash in
+the first line of the example as follows:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const char *p = R"[a</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">b</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">c]";</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const char *p = R"[a
+<p lang="en-GB" align="left" style="margin-bottom: 0in">b
+<p lang="en-GB" align="left" style="margin-bottom: 0in">c]";
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const char *p = R"[a\</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">b</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">c]";</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const char *p = R"[a\
+<p lang="en-GB" align="left" style="margin-bottom: 0in">b
+<p lang="en-GB" align="left">c]";
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Correct typo.</font>
+<p lang="en-GB" align="left">Correct typo.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 21</font>
+<p>US 21
<td>
-<p><font size="2" style="font-size: 9pt">2.13.4</font>
+<p>2.13.4
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3</font>
+<p>¶ 3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The paragraph, marked as a
-Note, contains an embedded example not marked as such.</font>
+<p>The paragraph, marked as a
+Note, contains an embedded example not marked as such.
<td>
-<p><font size="2" style="font-size: 9pt">Denote the code (and
-perhaps also its commentary) as an Example.</font>
+<p>Denote the code (and
+perhaps also its commentary) as an Example.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 22</font>
+<p>US 22
<td>
-<p><font size="2" style="font-size: 9pt">2.13.4</font>
+<p>2.13.4
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3</font>
+<p>¶ 3
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The code does not have the
-effect predicted by its accompanying narrative.</font>
+<p>The code does not have the
+effect predicted by its accompanying narrative.
<td>
-<p><font size="2" style="font-size: 9pt">Append a backslash to the
-first line of the code.</font>
+<p>Append a backslash to the
+first line of the code.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 5</font>
+<p>JP 5
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p lang="en-GB" align="left">2.13.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">11<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph, Table 7</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">It is not explicit how to
-combine raw-string and non-raw-string.</font>
+<p>It is not explicit how to
+combine raw-string and non-raw-string.
<td>
-<p><font size="2" style="font-size: 9pt">Add rules containing
-raw-string in the table 7.</font>
+<p>Add rules containing
+raw-string in the table 7.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 13</font>
+<p>FR 13
<td>
-<p><font size="2" style="font-size: 9pt">2.13.4 [lex.string]</font>
+<p>2.13.4 [lex.string]
<td>
-<p><font size="2" style="font-size: 9pt">3</font>
+<p>3
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Shouldn't the assert be</font>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">assert(std::strcmp(p, "a\nb\nc") == 0);</font>
+<p style="margin-bottom: 0in">Shouldn't the assert be
+<p>assert(std::strcmp(p, "a\nb\nc") == 0);
<td>
<p lang="en-GB" align="left"><br>
<td>
@@ -1394,19 +1256,16 @@
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">17</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>17
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p align="justify">2.13.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">10</font>
+<p align="justify">10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It would be preferred for attempts to modify
+<p align="left" style="margin-bottom: 0in">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
@@ -1414,30 +1273,27 @@
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>
+under the const_cast rules so needs no further detail here.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">(asssuming
+<p align="left">(asssuming
deprecated conversion to non-const array is removed or can be
-turned off) Strike the sentence on undefined behaviour.</font>
+turned off) Strike the sentence on undefined behaviour.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">18</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>18
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p align="justify">2.13.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The addition of static_assert (7p4) to the
+<p align="left" style="margin-bottom: 0in">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
@@ -1445,93 +1301,82 @@
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>
+generalizing to other literal types would be useful.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Define a
+<p align="left">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" integral-constant-expression ". 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>
+LI.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">19</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>19
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2.13.4</font>
+<p align="justify">2.13.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The grammar
+<p align="left">The grammar
for string literal is becoming unwieldy and could easily be
refactored into the type optional specifier and the string
-contents.</font>
+contents.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Refactor string-literal grammar as: (note -
+<p align="left" style="margin-bottom: 0in">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: " s-char-sequenceOPT " R raw-string</font>
+string-literal-body: " s-char-sequenceOPT " R raw-string
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 14</font>
+<p>FR 14
<td>
-<p><font size="2" style="font-size: 9pt">3 [basic]</font>
+<p>3 [basic]
<td>
-<p><font size="2" style="font-size: 9pt">7</font>
+<p>7
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">"In general it is necessary to determine
+<p>"In general it is necessary to determine
whether a name denotes one of these entities before parsing the
-program that contains it."</font>
+program that contains it."
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Would prefer</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">"... before continuing to parse the
-program that contains it."</font>
+<p style="margin-bottom: 0in">Would prefer
+<p style="margin-bottom: 0in">"... before continuing to parse the
+program that contains it."
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">or even</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">"... to complete the parsing of the
-program that contains it."</font>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">as some names denotes entities declared after
-the first occurrence.</font>
+or even
+<p style="margin-bottom: 0in">"... to complete the parsing of the
+program that contains it."
+<p>as some names denotes entities declared after
+the first occurrence.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 15</font>
+<p>FR 15
<td>
-<p><font size="2" style="font-size: 9pt">3 [basic]</font>
+<p>3 [basic]
<td>
-<p><font size="2" style="font-size: 9pt">8</font>
+<p>8
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">/operator-function-id/,
+<p style="margin-bottom: 0in">/operator-function-id/,
/conversion-function-id/, /template-id/ are followed by a space and
then a "s" while usually such production names aren't followed by a
-space when put in plural (see /identifier/).</font>
+space when put in plural (see /identifier/).
<p><br>
<td>
<p><br>
@@ -1540,211 +1385,194 @@
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">20</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>20
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Chapter 3 ("Basic concepts") provides common
+<p align="left" style="margin-bottom: 0in">Chapter 3 ("Basic concepts") 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>
+definitions used in the document.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change the
-title to "Basic definitions".</font>
+<p align="left">Change the
+title to "Basic definitions".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">21</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>21
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Concepts is
+<p align="left">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>
+sense.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Rename the
+<p align="left">Rename the
chapter Basic ???. THe note in p2 specifically needs similar
-rewording</font>
+rewording
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">22</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>22
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">References are frequently considered variables,
+but this definition only applies to objects.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "or
-reference" after both uses of "object"</font>
+<p align="left">Add "or
+reference" after both uses of "object"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">23</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>23
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.1</font>
+<p align="justify">3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">alias-declarations are not definitions and should
+be added to the list
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-alias-declaration after typedef declaration.</font>
+<p align="left">Add
+alias-declaration after typedef declaration.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">24</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>24
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.1</font>
+<p align="justify">3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The current words suggest the declaration of a
+<p align="left" style="margin-bottom: 0in">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>
+to call out the special case
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">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>
+constant integral expression is provided for an initializer.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">25</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>25
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.1</font>
+<p align="justify">3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Example is misleading as implicitly defined
+<p align="left" style="margin-bottom: 0in">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>
+for fundamental types and pointers.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the :
+<p align="left">Remove the :
s() from the illustrated default constructor: struct C {
std::string s; C() { } C(const C& x): s(x.s) { } C&
operator=(const C& x) { s = x.s; return *this; } ~C() { }
-};</font>
+};
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">26</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>26
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.2</font>
+<p align="justify">3.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">THe one definition rule should cover references,
+<p align="left" style="margin-bottom: 0in">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>
+list in this paragraph is incomplete.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either
+<p align="left">Either
include references in the definition of 'variable' (see earlier
-comment) or add reference to the list in this paragraph.</font>
+comment) or add reference to the list in this paragraph.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">27</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>27
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.2</font>
+<p align="justify">3.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">A class type must be complete when catching
+exceptions, even by reference or pointer. See 15.3.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "when
-used in an exception-handler (15.3)" to the list.</font>
+<p align="left">Add "when
+used in an exception-handler (15.3)" to the list.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 16</font>
+<p>FR 16
<td>
-<p><font size="2" style="font-size: 9pt">3.3 [Declarative regions
-and scopes.]</font>
+<p>3.3 [Declarative regions
+and scopes.]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The scope of function parameters is
-defined, but what is the scope of template parameters?</font>
+<p style="margin-bottom: 0in">The scope of function parameters is
+defined, but what is the scope of template parameters?
<p><br>
<td>
<p><br>
@@ -1753,72 +1581,63 @@
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">28</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>28
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">3.3.1</font>
+<p align="justify">3.3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Class templates are not classes, so we should
+include this case.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">ammend
-"class" to "class or class template"</font>
+<p align="left">ammend
+"class" to "class or class template"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK</font>
-<p><font size="2" style="font-size: 9pt">29</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK
+<p>29
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">3.3.10</font>
+<p align="justify">3.3.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">operators and
+<p align="left">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>
+implicitly declared copy-assignment operator.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add the additional phrase "The declaration of an
+<p align="left" style="margin-bottom: 0in">Add the additional phrase "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;"</font>
+base class of the same operator or type;"
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 17</font>
+<p>FR 17
<td>
-<p><font size="2" style="font-size: 9pt">3.5 [Program and
-linkage]</font>
+<p>3.5 [Program and
+linkage]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">This section does not specify whether
-concept names have linkage.</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Do they or not? If concept names do not
+<p style="margin-bottom: 0in">This section does not specify whether
+concept names have linkage.
+<p style="margin-bottom: 0in">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>
+surprising and curious. What is the rationale?
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -1826,63 +1645,58 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-30</font>
+<p>UK<br>
+30
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.5</font>
+<p align="justify">3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">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>
+other scopes. This maybe a bigger problem for concept maps?
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a note to
-clarify that concepts don't need linkage.</font>
+<p align="left">Add a note to
+clarify that concepts don't need linkage.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-31</font>
+<p>UK<br>
+31
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3.5</font>
+<p align="justify">3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">What is the
+<p align="left">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>
+consequence.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify rules
+<p align="left">Clarify rules
for namespaces inside nested namespaces, or remove the
-restriction.</font>
+restriction.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 23</font>
+<p lang="en-GB" align="left">US 23
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3.5</font>
+<p lang="en-GB" align="left">3.5
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">6</font>
+<p lang="en-GB" align="left">6
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Bad paragraph break.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Bad paragraph break.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -1890,44 +1704,38 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 18</font>
+<p>FR 18
<td>
-<p><font size="2" style="font-size: 9pt">3.5 [basic.link]</font>
+<p>3.5 [basic.link]
<td>
-<p><font size="2" style="font-size: 9pt">6</font>
+<p>6
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The paragraph number is not aligned with the
-text.</font>
+<p>The paragraph number is not aligned with the
+text.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 19</font>
+<p>FR 19
<td>
-<p><font size="2" style="font-size: 9pt">3.6 [Start and
-termination]</font>
+<p>3.6 [Start and
+termination]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">This section completely ignores the real
+<p style="margin-bottom: 0in">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>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">practical C++ programs. The
-Standard</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">should address this aspect.</font>
+cannot be ignored in
+<p style="margin-bottom: 0in">practical C++ programs. The
+Standard
+<p style="margin-bottom: 0in">should address this aspect.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -1935,207 +1743,177 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-32</font>
+<p>UK<br>
+32
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">3.6.1</font>
+<p align="justify">3.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Do we really
+<p align="left">Do we really
want to allow: constexpr int main() { return 0; } as a valid
-program?</font>
+program?
<td>
-<p 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 align="left" style="margin-bottom: 0in">Add constexpr to the list of ill-formed things to
+annotate main
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 24</font>
+<p lang="en-GB" align="left">US 24
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3.6.1</font>
+<p lang="en-GB" align="left">3.6.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">4</font>
+<p lang="en-GB" align="left">4
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">std::quick_exit is not referenced.</font>
+<p lang="en-GB" align="left">std::quick_exit is not referenced.
<td>
-<p lang="en-GB" 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
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Reference std::quick_exit as well as std::exit in
+saying that automatic objects are not destroyed. It should <font size=
+"2" style="font-size: 11pt">
+<strong>not</strong> do so in saying that calling
std::quick_exit is undefined from within destructors for static or
-thread duration objects.</font></font>
+thread duration objects.</font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 25</font>
+<p>US 25
<td>
-<p><font size="2" style="font-size: 9pt">3.6.3</font>
+<p>3.6.3
<td>
-<p><font size="2" style="font-size: 9pt">¶ 2 last sent.</font>
+<p>¶ 2 last sent.
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The parenthesized phrase,
+<p>The parenthesized phrase,
introduced via “i.e.” is in the nature of an
-example.</font>
+example.
<td>
-<p><font size="2" style="font-size: 9pt">Change “i.e.”
-to “e.g.”</font>
+<p>Change “i.e.”
+to “e.g.”
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 6</font>
+<p>JP 6
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3.7.4.1</font>
+<p lang="en-GB" align="left">3.7.4.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">4<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 4<sup>th</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Lack of a comma right after
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Lack of a comma right after
“(3.7.2)” in the sentence while there are commas after
any other recitations like “(3.7.1)”. It is just a
-unification matter.</font>
+unification matter.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">[ Note: in particular, a global
+<p lang="en-GB" align="left" style="margin-bottom: 0in">[ 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>
+throw expression (15.1). -end note ]
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.13in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">[ Note: in particular, a global
+<p lang="en-GB" align="left" style="margin-bottom: 0in">[ 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>
+throw expression (15.1). -end note ]
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">Correct typo.</font>
+<p>Correct typo.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-3</font>
+<p>DE-3
<td>
-<p><font size="2" style="font-size: 9pt">3.7.4.3</font>
+<p>3.7.4.3
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+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>
+in the second paragraph seem to apply.
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">int& i = *new
-int(5);</font>
-<p lang="en-GB" align="left"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">delete &i;</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">int& i = *new
+int(5);
+<p lang="en-GB" align="left">delete &i;
<td>
-<p><font size="2" style="font-size: 9pt">Clarify that &i is
-considered a safely-derived pointer value.</font>
+<p>Clarify that &i is
+considered a safely-derived pointer value.
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 26</font>
+<p lang="en-GB" align="left">US 26
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3.8</font>
+<p lang="en-GB" align="left">3.8
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1 and 5</font>
+<p lang="en-GB" align="left">1 and 5
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Use of object fields during destruction is
-excessively and erroneously constrained.</font>
+<p lang="en-GB" align="left">Use of object fields during destruction is
+excessively and erroneously constrained.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">See the attached document "Issues with
+<p lang="en-GB" align="left" style="margin-bottom: 0in">See the attached document "Issues with
the C++ Standard" under Chapter 3 "Use of objects, especially from
-other threads, during destruction".</font>
+other threads, during destruction".
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 27</font>
+<p>US 27
<td>
-<p><font size="2" style="font-size: 9pt">3.9</font>
+<p>3.9
<td>
-<p><font size="2" style="font-size: 9pt">¶ 9 first
-sent.</font>
+<p>¶ 9 first
+sent.
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">There is a
-superfluous/extraneous “and”.</font>
+<p>There is a
+superfluous/extraneous “and”.
<td>
-<p><font size="2" style="font-size: 9pt">Delete “and”
-from the phrase “and std::nullptr_t”.</font>
+<p>Delete “and”
+from the phrase “and std::nullptr_t”.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 20</font>
+<p>FR 20
<td>
-<p><font size="2" style="font-size: 9pt">3.9 [Types]</font>
+<p>3.9 [Types]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The phrase 'effective type' is defined and
+<p style="margin-bottom: 0in">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>
+'effective type' not be used in such an incompatible way.
<p><br>
<td>
<p><br>
@@ -2143,509 +1921,405 @@
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 7</font>
+<p>JP 7
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3.9.2</font>
+<p lang="en-GB" align="left">3.9.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">3<sup>rd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 13<sup>th</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">over-aligned type was
+<p>over-aligned type was
added as new notion. So it is preferable to add the link after
-that.</font>
+that.
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left"><font size="2" style=
-"font-size: 11pt"><font size="2" style="font-size: 9pt">[ Note:
-pointers to over-aligned types</font><font size="2" style=
-"font-size: 9pt" color="#008000">(3.11)</font> <font size="2"
-style="font-size: 9pt">have no special representation, but their
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add (3.11) after over-aligned type as
+the link.
+<p lang="en-GB" align="left">[ Note:
+pointers to over-aligned types<font color="#008000">(3.11)</font><font size="2" style=
+"font-size: 11pt"> 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 size="2" style="font-size: 9pt"
-color="#008000">(3.11)</font><font size="2" style=
-"font-size: 9pt">, and using one of the runtime pointer alignment
+an over-aligned type<font
+color="#008000">(3.11)</font>, 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 size="2"
-style="font-size: 9pt" color="#008000">(3.11)</font><font size="2"
-style="font-size: 9pt">.—end note ]</font></font>
+valid pointer value for an over-aligned type<font color="#008000">(3.11)</font>.—end note ]</font>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 28</font>
+<p>US 28
<td>
-<p><font size="2" style="font-size: 9pt">3.9.3</font>
+<p>3.9.3
<td>
-<p><font size="2" style="font-size: 9pt">¶ 5 first
-sent.</font>
+<p>¶ 5 first
+sent.
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
<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>
+The closing braces of the
+first two sets are preceded by extraneous space.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Delete the extra
-spaces.</font>
+<p>Delete the extra
+spaces.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE 4</font>
+<p>DE 4
<td>
-<p><font size="2" style="font-size: 9pt">4.2</font>
+<p>4.2
<td>
-<p><font size="2" style="font-size: 9pt">p2</font>
+<p>p2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-4 The deprecated
+<p>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>
+deprecated conversions should be removed entirely.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Consider applying the
+Consider applying the
proposed resolution presented in core issue 693 in WG21 document
N2714 “C++ Standard Core Language Active Issues, Revision
58“, available at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2714.html
; or remove only the conversions to "pointer to char16_t", "pointer
-to char32_t" in 4.2 paragraph 2 and 15.1 paragraph 3.</font>
+to char32_t" in 4.2 paragraph 2 and 15.1 paragraph 3.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">CH 1</font>
+<p>CH 1
<td>
-<p><font size="2" style="font-size: 9pt">4.9 and 5.2.9</font>
+<p>4.9 and 5.2.9
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">With respect to the target
+<p>With respect to the target
type, pointer to members should behave like normal pointers (least
-surprise principle).</font>
+surprise principle).
<td>
<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>
+The standard should allow
+implicit conversions from ``pointer to member of <tt>T</tt> of type <i>cv</i> <tt>D</tt>'' to ``pointer to member of
+<tt>T</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>
+should allow explicit conversion the other way around.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-5</font>
+<p>DE-5
<td>
-<p><font size="2" style="font-size: 9pt">4.11, 5.3.1, 5.5</font>
+<p>4.11, 5.3.1, 5.5
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-5 Ref-qualification has
-not been integrated with pointer-to-members.</font>
+<p>DE-5 Ref-qualification has
+not been integrated with pointer-to-members.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Review implicit conversions
+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>
+of ref-qualifiers on the member.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-33</font>
+<p>UK<br>
+33
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">4.13</font>
+<p align="justify">4.13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">We have: "No
+<p align="left">We have: "No
two signed integer types shall have the same rank ..." "the rank of
char shall equal the rank of signed char" Can we therefore deduce
-that char may not be signed?</font>
+that char may not be signed?
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace the first sentence with "No two signed
+<p align="left" style="margin-bottom: 0in">Replace the first sentence with "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)."</font>
+char even if char is signed (3.9.1/1)."
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-34</font>
+<p>UK<br>
+34
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">4.13</font>
+<p align="justify">4.13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">6th bullet, "the rank of char" - first letter
-should be capitalised for consistency with the other bullets</font>
+<p align="left" style="margin-bottom: 0in">6th bullet, "the rank of char" - first letter
+should be capitalised for consistency with the other bullets
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The rank of
-char</font>
+<p align="left">The rank of
+char
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-36</font>
+<p>UK<br>
+36
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5.1</font>
+<p align="justify">5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Primary expressions are literals, names, names
+<p align="left" style="margin-bottom: 0in">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>
+this - this and (e) are also lambda expressions.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Delete this
-paragraph.</font>
+<p align="left">Delete this
+paragraph.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-37</font>
+<p>UK<br>
+37
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5.1</font>
+<p align="justify">5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">11</font>
+<p align="justify">11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Member function templates are not member
+functions, so should also be listed in the 3rd bullet
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add member
-function templates to the 3rd bullet</font>
+<p align="left">Add member
+function templates to the 3rd bullet
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-38</font>
+<p>UK<br>
+38
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5.1</font>
+<p align="justify">5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">this might be
+<p align="left">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->memfun(); } )
-my_lambda;</font>
+my_lambda;
<td>
-<p align="left"><font size="2" style="font-size: 9pt">... words to
-follow ...</font>
+<p align="left">... words to
+follow ...
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 8</font>
+<p>JP 8
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1</font>
+<p lang="en-GB" align="left">5.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">7<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, Syntax rules</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">In the current syntax definition, a
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">vector<int> v;</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">decltype(v)::value_type i = 0; // int i =
-0;</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add “decltype ( expression ) ::
-“ to nested-name-specifier syntax like below.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">nested-name-specifier:</font>
-<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">type-name ::</font>
-<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">namespace-name ::</font>
-<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">nested-name-specifier identifier ::</font>
-<p lang="en-GB" 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>
+from an instance as follows:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">vector<int> v;
+<p lang="en-GB" align="left">decltype(v)::value_type i = 0; // int i =
+0;
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add “decltype ( expression ) ::
+“ to nested-name-specifier syntax like below.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">nested-name-specifier:
+<p lang="en-GB" align="left" style=
+"text-indent: 0.13in; margin-bottom: 0in">type-name ::
+<p lang="en-GB" align="left" style=
+"text-indent: 0.13in; margin-bottom: 0in">namespace-name ::
+<p lang="en-GB" align="left" style=
+"text-indent: 0.13in; margin-bottom: 0in">nested-name-specifier identifier ::
<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">nested-name-specifieropt concept-id ::</font>
+"text-indent: 0.13in; margin-bottom: 0in">nested-name-specifier templateopt
+simple-template-id ::
<p lang="en-GB" align="left" style=
-"text-indent: 0.13in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">decltype ( expression ) ::</font>
+"text-indent: 0.13in; margin-bottom: 0in">nested-name-specifieropt concept-id ::
+<p lang="en-GB" align="left" style=
+"text-indent: 0.13in; margin-bottom: 0in">decltype ( expression ) ::
<p lang="en-GB" align="left" style="text-indent: 0.13in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 9</font>
+<p>JP 9
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p lang="en-GB" align="left">5.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">It would be preferable that
+<p lang="en-GB" align="left" style="margin-bottom: 0in">It would be preferable that
“&&” could be specified in a lambda expression
-to declare move capture.</font>
+to declare move capture.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Here is an example from N2709.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Here is an example from N2709.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<typename F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::unique_future<typename
-std::result_of<F()>::type> spawn_task(F f){</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename
-std::result_of<F()>::type result_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct local_task {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::promise<result_type>
-promise;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">F func;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">local_task(local_task const&
-other)=delete;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">local_task(F func_):</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">func(func_)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">local_task(local_task&&
-other):</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">promise(std::move(other.promise)),</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">f(std::move(other.f))</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void operator() {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">try</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">promise.set_value(f());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">catch(...)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">promise.set_exception(std::current_exception());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">local_task task(std::move(f));</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::unique_future<result_type>
-res(task.promise.get_future());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::thread(std::move(task));</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">return res;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<typename F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::unique_future<typename
-std::result_of<F()>::type> spawn_task(F f){</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename
-std::result_of<F()>::type result_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::promise<result_type>
-promise;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::unique_future<result_type>
-res(promise.get_future());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::thread([&&promise,
-&&f]() {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">try</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">promise.set_value(f());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">catch(...)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">promise.set_exception(std::current_exception());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">});</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">return res;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left"><br>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add move capture in a lambda
-expression.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<typename F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::unique_future<typename
+std::result_of<F()>::type> spawn_task(F f){
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename
+std::result_of<F()>::type result_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct local_task {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::promise<result_type>
+promise;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">F func;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">local_task(local_task const&
+other)=delete;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">local_task(F func_):
+<p lang="en-GB" align="left" style="margin-bottom: 0in">func(func_)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">local_task(local_task&&
+other):
+<p lang="en-GB" align="left" style="margin-bottom: 0in">promise(std::move(other.promise)),
+<p lang="en-GB" align="left" style="margin-bottom: 0in">f(std::move(other.f))
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void operator() {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">try
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">promise.set_value(f());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">catch(...)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">promise.set_exception(std::current_exception());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">local_task task(std::move(f));
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::unique_future<result_type>
+res(task.promise.get_future());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::thread(std::move(task));
+<p lang="en-GB" align="left" style="margin-bottom: 0in">return res;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">This can be rewritten simply as follows
+if move capture can be used in a lambda expression.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<typename F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::unique_future<typename
+std::result_of<F()>::type> spawn_task(F f){
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename
+std::result_of<F()>::type result_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::promise<result_type>
+promise;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::unique_future<result_type>
+res(promise.get_future());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::thread([&&promise,
+&&f]() {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">try
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">promise.set_value(f());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">catch(...)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">promise.set_exception(std::current_exception());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">});
+<p lang="en-GB" align="left" style="margin-bottom: 0in">return res;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left"><br>
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add move capture in a lambda
+expression.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 10</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p>JP 10
+<td>
+<p lang="en-GB" align="left">5.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">In the current syntax definition, a
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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’t have result type.</font>
+expression because it doesn’t have result type.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void foo(F f)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef std::result_of<F()>::type
-result; // error</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">foo([]{});</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void foo(F f)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef std::result_of<F()>::type
+result; // error
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">foo([]{});
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"margin-left: 0in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">If “Callable” or
+"margin-left: 0in; margin-bottom: 0in">If “Callable” or
“Predicate” 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>
+preferable to be able to obtain it with template.
<p lang="en-GB" align="left" style="margin-left: 0in"><br>
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Add result_type to the syntax of an
+unnamed function object generated by a lambda expression.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 29</font>
+<p lang="en-GB" align="left">US 29
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p lang="en-GB" align="left">5.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The standard does not state whether or
+not direct recursion of lambdas is possible.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -2653,23 +2327,18 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 30</font>
+<p lang="en-GB" align="left">US 30
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p lang="en-GB" align="left">5.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style="font-size: 9pt"
-color="#000000">The standard does not clarify the meaning of</font>
-<code><font face="Arial, sans-serif" color="#000000"><font size="2"
-style="font-size: 9pt">this</font></font></code> <font size="2"
-style="font-size: 9pt" color="#000000">in lambdas. Does it mean
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><font
+color="#000000">The standard does not clarify the meaning of</font> <font size=
+"2" style="font-size: 11pt">
+<code><font color="#000000">this</font></code> <font color="#000000">in lambdas. Does it mean
this lambda, or this class within which the lambda is
nested?</font></font>
<p lang="en-GB" align="left"><br>
@@ -2679,23 +2348,19 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 31</font>
+<p lang="en-GB" align="left">US 31
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p lang="en-GB" align="left">5.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style="font-size: 9pt"
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><font
color="#000000">The current wording does not specify how context
-capturing and name resolution</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>
+capturing and name resolution</font> <font size=
+"2" style="font-size: 11pt">take place when the inner lambda refers to the
+outer lambda's locals variables and parameters.</font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -2703,25 +2368,23 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-45</font>
+<p>UK<br>
+45
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">para
-2</font>
+<p align="justify">para
+2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Lambda is a
+<p align="left">Lambda is a
language feature with an apparent dependency on <functional>.
This increases dependency of language on library, and is
inconsistent with the definition of freestanding in
-17.6.2.4.</font>
+17.6.2.4.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Change the text "a closure object behaves as a
+<p align="left" style="margin-bottom: 0in">Change the text "a closure object behaves as a
function object" to "a closure object is a built-in object which
behaves as a function object"; and after "context.", insert " A
closure object may be used without any need for
@@ -2729,28 +2392,23 @@
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>
+important).
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">US 32</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">US 32
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p lang="en-GB" align="left">5.1.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">3</font>
+<p lang="en-GB" align="left">3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The final italic "this" in the paragraph
-should be a teletype "this".</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The final italic "this" in the paragraph
+should be a teletype "this".
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -2758,39 +2416,36 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-39</font>
+<p>UK<br>
+39
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">11</font>
+<p align="justify">11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">This
paragraph lists all the special member functions for the class
representing a lambda. But it omits the destructor, which is
-awkward.</font>
+awkward.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "F has an
-implicitly-declared destructor".</font>
+<p align="left">Add "F has an
+implicitly-declared destructor".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-40</font>
+<p>UK<br>
+40
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">If one or more names in the effective capture set
+<p align="left" style="margin-bottom: 0in">If one or more names in the effective capture set
are preceded by &, 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.
@@ -2798,697 +2453,650 @@
variables referenced has ended. This should be safe and legal;
currently it has undefined behaviour: int i;
reference_closure<void ()> f; if (blah) { f = [&i]() { };
-} if (f) f();</font>
+} if (f) f();
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">If one or
+<p align="left">If one or
more names in the effective capture set are preceded by &, the
effect of invoking a closure object or a copy after the lifetime of
-any of the variables referenced has ended is undefined.</font>
+any of the variables referenced has ended is undefined.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-41</font>
+<p>UK<br>
+41
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">For argument
+<p align="left">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>
+objects is uncomfortable.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-inheritance with implicit conversion.</font>
+<p align="left">Replace
+inheritance with implicit conversion.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-42</font>
+<p>UK<br>
+42
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">A lambda with
+<p align="left">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>
+system and C library functions.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a new paragraph: "A lambda expression with an
+<p align="left" style="margin-bottom: 0in">Add a new paragraph: "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." Additionally it might be good to (a)
allow conversion to function reference (b) allow extern "C"
-function pointer types</font>
+function pointer types
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-43</font>
+<p>UK<br>
+43
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The note spells out the intent that objects from
+<p align="left" style="margin-bottom: 0in">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>
+enough to relax that.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">... provvide
-exceptions in the right places ...</font>
+<p align="left">... provvide
+exceptions in the right places ...
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-44</font>
+<p>UK<br>
+44
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is a strong similarity between a [&]{}
+<p align="left" style="margin-bottom: 0in">There is a strong similarity between a [&]{}
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>
+alternative to the new std::mem_fn library component.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Extend
+<p align="left">Extend
reference_closure requirement to cover [this] lambdas. Consider a
-simple syntax for creating such bound expressions.</font>
+simple syntax for creating such bound expressions.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-46</font>
+<p>UK<br>
+46
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.1.1</font>
+<p align="justify">5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">para
-12</font>
+<p align="justify">para
+12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
requirement that a lambda meeting appropriate conditions be an
object derived from reference_closure makes lambda the language
feature dependent on <functional>, which increases dependency
of the language on the library and bloats the definition of
-freestanding C++.</font>
+freestanding C++.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace text "is publicly derived from" with
+<p align="left" style="margin-bottom: 0in">Replace text "is publicly derived from" with
"shall be implemented in a manner indistinguishable from". 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 <functional>.</font>
+the dependency of lambda syntax on <functional>.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-6</font>
+<p>DE-6
<td>
-<p><font size="2" style="font-size: 9pt">5.1.1, 20.7.18</font>
+<p>5.1.1, 20.7.18
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-6 Some uses of lambda
+<p>DE-6 Some uses of lambda
expressions refer to specializations of the unconstrained class
-template <font face=
-"Arial, sans-serif">std::reference_closure</font> (5.1.1). If the
+template std::reference_closure (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>
+parameter (see 14.10), such a use is ill-formed.
<td>
-<p><font size="2" style="font-size: 9pt">In 20.7.18, for the class
-template <font face=
-"Arial, sans-serif">std::reference_closure</font>, require
-<font face="Arial, sans-serif">Returnable</font> for <font face=
-"Arial, sans-serif">R</font> and <font face=
-"Arial, sans-serif">VariableType</font> for each of the <font face=
-"Arial, sans-serif">ArgTypes</font>.</font>
+<p>In 20.7.18, for the class
+template std::reference_closure, require Returnable for R and VariableType for each of the ArgTypes.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-7</font>
+<p>DE-7
<td>
-<p><font size="2" style="font-size: 9pt">5.1.1</font>
+<p>5.1.1
<td>
-<p><font size="2" style="font-size: 9pt">p10</font>
+<p>p10
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">DE-7 The note at the end
-of paragraph 10 appears to be garbled.</font>
+<p>DE-7 The note at the end
+of paragraph 10 appears to be garbled.
<td>
-<p><font size="2" style="font-size: 9pt">Remove "or references" in
-the note.</font>
+<p>Remove "or references" in
+the note.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-8</font>
+<p>DE-8
<td>
-<p><font size="2" style="font-size: 9pt">5.1.1</font>
+<p>5.1.1
<td>
-<p><font size="2" style="font-size: 9pt">p10</font>
+<p>p10
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-8 The construction of
+<p>DE-8 The construction of
the function call operator signature is missing specifications for
-the ref-qualifier and the attribute-specifier.</font>
+the ref-qualifier and the attribute-specifier.
<td>
-<p><font size="2" style="font-size: 9pt">Add bullets that say that
-the ref-qualifier and the attribute-specifier are absent.</font>
+<p>Add bullets that say that
+the ref-qualifier and the attribute-specifier are absent.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 33</font>
+<p>US 33
<td>
-<p><font size="2" style="font-size: 9pt">5.1.1</font>
+<p>5.1.1
<td>
-<p><font size="2" style="font-size: 9pt">11</font>
+<p>11
<td>
-<p><font size="2" style="font-size: 9pt">Ge</font>
+<p>Ge
<td>
-<p><font size="2" style="font-size: 9pt">There is no definition of
+<p>There is no definition of
“move constructor” or “move
-operation”</font>
+operation”
<td>
<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
+Since this is the first place
the terms are used, a definition should either be added here, or a
-cross reference to one.</font>
+cross reference to one.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-9</font>
+<p>DE-9
<td>
-<p><font size="2" style="font-size: 9pt">5.1.1</font>
+<p>5.1.1
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-9 There is not a single
+<p>DE-9 There is not a single
example of a lambda-expression in the standard. See also core issue
720 in WG21 document N2791 "C++ Standard Core Language Active
Issues, Revision 59", available at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
-.</font>
+.
<td>
-<p><font size="2" style="font-size: 9pt">Add a few well-chosen
-examples.</font>
+<p>Add a few well-chosen
+examples.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-52</font>
+<p>UK<br>
+52
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5.2</font>
+<p align="justify">5.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">This
paragraph seens out of place, assignment expressions are covered in
-5.17</font>
+5.17
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move p3 to
-subsection 5.17</font>
+<p align="left">Move p3 to
+subsection 5.17
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-53</font>
+<p>UK<br>
+53
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.1</font>
+<p align="justify">5.2.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">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>
+[].
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Insert a new
+<p align="left">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>
+semantics.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-59</font>
+<p>UK<br>
+59
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.2</font>
+<p align="justify">5.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">When there is
+<p align="left">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 <class ... Types> void f(Types ... pack);
-f(1, 2, 3);</font>
+f(1, 2, 3);
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify that
-this sentence only applies where the ellipsis is used.</font>
+<p align="left">Clarify that
+this sentence only applies where the ellipsis is used.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-60</font>
+<p>UK<br>
+60
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.5</font>
+<p align="justify">5.2.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">In the
+<p align="left">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>
+volatile.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "and"
-before vq</font>
+<p align="left">Add "and"
+before vq
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-61</font>
+<p>UK<br>
+61
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.5</font>
+<p align="justify">5.2.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">p1</font>
+<p align="justify">p1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Together with
+<p align="left">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>
+existing note would be a useful clarification.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify in
+<p align="left">Clarify in
footnote 60 that this will not happen if the whole expression is an
-unevaluated operand.</font>
+unevaluated operand.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-62</font>
+<p>UK<br>
+62
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.5</font>
+<p align="justify">5.2.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">In the final
+<p align="left">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>
+rvalues pick up on this?
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace 'not
-an lvalue' with 'is an rvalue'.</font>
+<p align="left">Replace 'not
+an lvalue' with 'is an rvalue'.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-10</font>
+<p>DE-10
<td>
-<p><font size="2" style="font-size: 9pt">5.2.5</font>
+<p>5.2.5
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-10 If E1.E2 is
+<p>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>
+ref-qualification on E2 should be taken into account.
<td>
-<p><font size="2" style="font-size: 9pt">Adjust the presentation of
-the types involved as appropriate.</font>
+<p>Adjust the presentation of
+the types involved as appropriate.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-63</font>
+<p>UK<br>
+63
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.6</font>
+<p align="justify">5.2.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Paragraph 2
-is missing its number.</font>
+<p align="left">Paragraph 2
+is missing its number.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-one.</font>
+<p align="left">Add
+one.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-64</font>
+<p>UK<br>
+64
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.7</font>
+<p align="justify">5.2.7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">A new name R
+<p align="left">A new name R
is introduced for use in paragraphs 3 and 4. But R is the same as
-T.</font>
+T.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace R with T and replace "the required result
+<p align="left" style="margin-bottom: 0in">Replace R with T and replace "the required result
type (which, for convenience, will be called R in this
-description)" with "T".</font>
+description)" with "T".
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-65</font>
+<p>UK<br>
+65
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.7</font>
+<p align="justify">5.2.7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">In the first two bullets we have "the result is a
+<p align="left" style="margin-bottom: 0in">In the first two bullets we have "the result is a
pointer (an lvalue referring) to". But para 2 makes clear that a
dynamic_cast of an rvalue references produces a rvalue. (Can an
-lvalue refer to anything anyway?)</font>
+lvalue refer to anything anyway?)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace "an
-lvalue referring to" with "reference", twice.</font>
+<p align="left">Replace "an
+lvalue referring to" with "reference", twice.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-66</font>
+<p>UK<br>
+66
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.8</font>
+<p align="justify">5.2.8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">typeid may return "an implementation-defined class
+<p align="left" style="margin-bottom: 0in">typeid may return "an implementation-defined class
derived from std :: type_info". The derivation must be
-public.</font>
+public.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">an
+<p align="left">an
implementation-defined class publicly derived from std ::
-type_info</font>
+type_info
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-67</font>
+<p>UK<br>
+67
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.9</font>
+<p align="justify">5.2.9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1, 2,
-3</font>
+<p align="justify">1, 2,
+3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Paragraph 1
+<p align="left">Paragraph 1
specifies when the result of static_cast is an lvalue; repeating it
-is unnecessary.</font>
+is unnecessary.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">In para 2, delete "It is an lvalue if the type
+<p align="left" style="margin-bottom: 0in">In para 2, delete "It is an lvalue if the type
cast to is an lvalue reference; otherwise, it is an rvalue." and
"The result is an rvalue.". In para 3, delete "The result is an
lvalue if T is an lvalue reference type (8.3.2), and an rvalue
-otherwise."</font>
+otherwise."
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-54</font>
+<p>UK<br>
+54
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.10</font>
+<p align="justify">5.2.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3,
-6</font>
+<p align="justify">3,
+6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Para 3: "The
+<p align="left">Para 3: "The
mapping performed by reinterpret_cast is implementation-defined.".
Para 6: "... the result of such a pointer conversion is
-unspecified." Which is it?</font>
+unspecified." Which is it?
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">In para 6, replace unspecified with
+<p align="left" style="margin-bottom: 0in">In para 6, replace unspecified with
implementation-defined. Alternatively, delete paragraph 3, since
-individual cases are labelled appropriately.</font>
+individual cases are labelled appropriately.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-55</font>
+<p>UK<br>
+55
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.10</font>
+<p align="justify">5.2.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">dynamic_cast
+<p align="left">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>
+crossrefernce, and would serve as well in normative text.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Strike the note about definition of casting away
+<p align="left" style="margin-bottom: 0in">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>
+the normative text.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-56</font>
+<p>UK<br>
+56
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.10</font>
+<p align="justify">5.2.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The notion of safely derived pointers means this
+<p align="left" style="margin-bottom: 0in">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>
+semantics with a note.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add: [Note:
+<p align="left">Add: [Note:
the result of such a conversion will not be a safely-derived
-pointer value (3.7.4.3) -- end note]</font>
+pointer value (3.7.4.3) -- end note]
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-57</font>
+<p>UK<br>
+57
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.10</font>
+<p align="justify">5.2.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Conditionally
+<p align="left">Conditionally
supported behaviour gives a wide range or permission, so clarify
relationship between safely-derived object pointers and function
-pointers in a note.</font>
+pointers in a note.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add: [Note:
+<p align="left">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>
+safely cast back -- end note]
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-58</font>
+<p>UK<br>
+58
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.2.11</font>
+<p align="justify">5.2.11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Casting from an lvalue of type T1 to an lvalue of
+<p align="left" style="margin-bottom: 0in">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 “pointer to T1” to the type
“pointer to T2” casts away constness. That doesn't
-cover rvalue references.</font>
+cover rvalue references.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-lvalue with "lvalue or rvalue" twice.</font>
+<p align="left">Replace
+lvalue with "lvalue or rvalue" twice.
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">US 34</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">US 34
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.3</font>
+<p lang="en-GB" align="left">5.3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1</font>
+<p lang="en-GB" align="left">1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">The list of unary operator should be in teletype
-font.</font>
+<p lang="en-GB" align="left">The list of unary operator should be in teletype
+font.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-68</font>
+<p>UK<br>
+68
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.1</font>
+<p align="justify">5.3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2-9</font>
+<p align="justify">2-9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">All the unary
+<p align="left">All the unary
operands other than * return rvalues - but this is not
-stated.</font>
+stated.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a paragraph 1a "The following unary operators
-all produce results that are rvalues."</font>
+<p align="left" style="margin-bottom: 0in">Add a paragraph 1a "The following unary operators
+all produce results that are rvalues."
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-69</font>
+<p>UK<br>
+69
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.1</font>
+<p align="justify">5.3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">If we cannot bind references/take address of
+<p align="left" style="margin-bottom: 0in">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
@@ -3496,215 +3104,195 @@
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>
+algorithm?!
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">... unknown
-...</font>
+<p align="left">... unknown
+...
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-70</font>
+<p>UK<br>
+70
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.3</font>
+<p align="justify">5.3.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The sizeof operator shall not be applied to ... an
+<p align="left" style="margin-bottom: 0in">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>
+should allow enum E : int; sizeof(E).
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change "an
+<p align="left">Change "an
enumeration type" to "an enumeration type whose underlying type is
-not fixed".</font>
+not fixed".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-71</font>
+<p>UK<br>
+71
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.4</font>
+<p align="justify">5.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The type of
+<p align="left">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>
+as the new expression.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace T x =
-e; with T x(e);</font>
+<p align="left">Replace T x =
+e; with T x(e);
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-72</font>
+<p>UK<br>
+72
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.4</font>
+<p align="justify">5.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The library headers have been carefully structured
+<p align="left" style="margin-bottom: 0in">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 <exception> header in cluase 18. This might
be accomplished by moving length_error into the <exception>
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>
+existing exception instead.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Throw
-std::bad_alloc instead of std::length_error.</font>
+<p align="left">Throw
+std::bad_alloc instead of std::length_error.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-73</font>
+<p>UK<br>
+73
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.4</font>
+<p align="justify">5.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">A class type with conversion operator can only be
+<p align="left" style="margin-bottom: 0in">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>
+clarify this.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add 'literal'
-before 'class type'</font>
+<p align="left">Add 'literal'
+before 'class type'
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-74</font>
+<p>UK<br>
+74
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.4</font>
+<p align="justify">5.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">operators, like constructors and destructors, do
+<p align="left" style="margin-bottom: 0in">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>
+property.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change "the
+<p align="left">Change "the
allocation function’s name is operator new" to "the
allocation function is named operator new" and similarly for
-operator delete.</font>
+operator delete.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-35</font>
+<p>UK<br>
+35
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.4</font>
+<p align="justify">5.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Missing
+<p align="left">Missing
period in middle of paragraph between "in the scope of T" and "If
-this lookup fails"</font>
+this lookup fails"
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a period between "in the scope of T" and "If
-this lookup fails"</font>
+<p align="left" style="margin-bottom: 0in">Add a period between "in the scope of T" and "If
+this lookup fails"
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-75</font>
+<p>UK<br>
+75
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.3.5</font>
+<p align="justify">5.3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">A paragraph strarting with [Note... is easily
+skipped when reading, missing the normative text at the end.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Swap order of
-the note and normative text.</font>
+<p align="left">Swap order of
+the note and normative text.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 21</font>
+<p>FR 21
<td>
-<p><font size="2" style="font-size: 9pt">5.3.6 [Alignof</font>
+<p>5.3.6 [Alignof
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Should not the type of alignof-expression be of
-type std::max_align_t?</font>
+<p>Should not the type of alignof-expression be of
+type std::max_align_t?
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 35</font>
+<p lang="en-GB" align="left">US 35
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">5.8</font>
+<p lang="en-GB" align="left">5.8
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2 and 3</font>
+<p lang="en-GB" align="left">2 and 3
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">There is curious spacing in the
+<p lang="en-GB" align="left" style="margin-bottom: 0in">There is curious spacing in the
expressions "E1 <<E2" and "E1 >>E2". This is a
-formatting change since previous versions of the Standard.</font>
+formatting change since previous versions of the Standard.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -3712,177 +3300,163 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-47</font>
+<p>UK<br>
+47
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5.14 /
-5.15</font>
+<p align="justify">5.14 /
+5.15
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Why are the descriptions of order of evaluation of
+<p align="left" style="margin-bottom: 0in">Why are the descriptions of order of evaluation of
expressions and side effects different between && and ||
operators. The interaction with the memory model should be
identical, so identical words should be used to avoid accidential
-inconsistencies in interpretation.</font>
+inconsistencies in interpretation.
<p align="left"><br>
<td>
-<p 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 align="left">Pick one form
+of wording as 'the best' and apply it in both places.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-48</font>
+<p>UK<br>
+48
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.18</font>
+<p align="justify">5.18
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The defining feature of the comma operator is the
+<p align="left" style="margin-bottom: 0in">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>
+subtle enough to call attention to it.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add: [Note:
+<p align="left">Add: [Note:
There are no guarantees on the order of value computation for an
-overloaded comma operator -- end note]</font>
+overloaded comma operator -- end note]
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-49</font>
+<p>UK<br>
+49
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.19</font>
+<p align="justify">5.19
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Is an
+<p align="left">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>
+experience.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add an escape clause to allow the implementation
+<p align="left" style="margin-bottom: 0in">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>
+program though.)
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-50</font>
+<p>UK<br>
+50
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.19</font>
+<p align="justify">5.19
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The following
+<p align="left">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>
+(4th bullet). (See also 7.1.6.1/2)
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Change "effective integral type" to "effective
+<p align="left" style="margin-bottom: 0in">Change "effective integral type" to "effective
integral or enumeration type" in the 4th bullet, 1st
-sub-bullet.</font>
+sub-bullet.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-51</font>
+<p>UK<br>
+51
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">5.19</font>
+<p align="justify">5.19
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">typeid expressions can never be constant, whether
+<p align="left" style="margin-bottom: 0in">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>
+can never be a literal type.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
+<p align="left">Strike the
words "whose operand is of a polymorphic class type" on the bullet
-for typeid expressions.</font>
+for typeid expressions.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-76</font>
+<p>UK<br>
+76
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6.3</font>
+<p align="justify">6.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Do we really
-need two different terms that say the same thing?</font>
+<p align="left">Do we really
+need two different terms that say the same thing?
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Pick either 'block' or 'compound statement' as the
+<p align="left" style="margin-bottom: 0in">Pick either 'block' or 'compound statement' as the
preferred term and use it consistently throughout the
-standard.</font>
+standard.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 22</font>
+<p>FR 22
<td>
-<p><font size="2" style="font-size: 9pt">6.4.2 [The switch
-statement]</font>
+<p>6.4.2 [The switch
+statement]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The constant-expression in</font>
+<p style="margin-bottom: 0in">The constant-expression in
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">case constant-expression</font>
+<p style="margin-bottom: 0in">case constant-expression
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">should be allowed to be of any constant
+<p style="margin-bottom: 0in">should be allowed to be of any constant
expression of literal type for which a constexpr comparison
operator (operator< 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>
+artificial.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -3890,179 +3464,158 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-77</font>
+<p>UK<br>
+77
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6.5</font>
+<p align="justify">6.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The terms i/o operation, synchronize operation and
+<p align="left" style="margin-bottom: 0in">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>
+crossreferenced.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Profide a
+<p align="left">Profide a
cross-reference for the terms: i/o operation, synchronize operation
-and atomic operation</font>
+and atomic operation
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 11</font>
+<p>JP 11
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">6.5.4</font>
+<p lang="en-GB" align="left">6.5.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">1<sup>st</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 5<sup>th</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">There is no _RangeT type
+<p>There is no _RangeT type
in the equivalent code to “range-base for” statement.
-It existed in N2049.</font>
+It existed in N2049.
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Add a typedef for _RangeT in the example
+as follows:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-decltype( expression ) _RangeT;</u></font>
+ <u>typedef
+decltype( expression ) _RangeT;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">auto
-&& __range = ( expression );</font>
+ auto
+&& __range = ( expression );
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">for ( auto
-__begin = std::Range<_RangeT>:: begin(__range),</font>
+ for ( auto
+__begin = std::Range<_RangeT>:: begin(__range),
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-
-<font size="2" style="font-size: 9pt">__end =
-std::Range<_RangeT>:: end(__range);</font>
+ __end =
+std::Range<_RangeT>:: end(__range);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size=
-"2" style="font-size: 9pt">__begin != __end;</font>
+ __begin != __end;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size=
-"2" style="font-size: 9pt">++__begin )</font>
+ ++__begin )
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">{</font>
+ {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">for-range-declaration = *__begin;</font>
+ for-range-declaration = *__begin;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">statement</font>
+ statement
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ }
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-78</font>
+<p>UK<br>
+78
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">6.5.4</font>
+<p align="justify">6.5.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Including the
+<p align="left">Including the
header <iterator_concepts> is far too unwieldy to enable an
-important and (expected to be) frequently used syntax.</font>
+important and (expected to be) frequently used syntax.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Merge <iterator_concepts> into
+<p align="left" style="margin-bottom: 0in">Merge <iterator_concepts> into
<concepts> and change 6.5.4p2 to refer to <concepts>,
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>
+header.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-79</font>
+<p>UK<br>
+79
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">6.5.4</font>
+<p align="justify">6.5.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The definition of for (for-range-declaration :
+<p align="left" style="margin-bottom: 0in">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 <iterator_concepts>
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>
+adversely impacting the freestanding definition in 17.6.2.4.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">When
+<p align="left">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 <iterator_concepts>.
Also, when expression is an initializer_list, expand range-for
-similarly without requiring <iterator_concepts>.</font>
+similarly without requiring <iterator_concepts>.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-11</font>
+<p>DE-11
<td>
-<p><font size="2" style="font-size: 9pt">6.9</font>
+<p>6.9
<td>
-<p><font size="2" style="font-size: 9pt">p1</font>
+<p>p1
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+DE-11 A sentence in paragraph
1 reads: "Outside of a constrained context, the late-checked block
has no effect." 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>
+executed, which appears to be unintended.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">State that such a
-late-checked block has the same meaning as if the <font face=
-"Arial, sans-serif">late_check</font> keyword were absent.</font>
+<p>State that such a
+late-checked block has the same meaning as if the late_check keyword were absent.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-80</font>
+<p>UK<br>
+80
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Many of the sections and major subsections open
+<p align="left" style="margin-bottom: 0in">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
@@ -4070,249 +3623,227 @@
improved by omitting them. There's a prime example here:
"Declarations specify how names are to be interpreted." Not true
for static_assert, an asm declaration nor an anonymous bit
-field.</font>
+field.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-first sentence.</font>
+<p align="left">Strike the
+first sentence.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-81</font>
+<p>UK<br>
+81
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">String literal concatenation happens in phase 6,
+<p align="left" style="margin-bottom: 0in">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>
+mentioning this.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a note:
+<p align="left">Add a note:
Multiple adjacent string literals may be used instead of a single
-/string-literal/; see [lex.phases].</font>
+/string-literal/; see [lex.phases].
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-82</font>
+<p>UK<br>
+82
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Paragraph 2 talks about declarations that can have
+<p align="left" style="margin-bottom: 0in">Paragraph 2 talks about declarations that can have
nested declarations within them. It doesn't mention scoped
enumerations - but according to 7.2/11, "Each scoped enumerator is
-declared in the scope of the enumeration."</font>
+declared in the scope of the enumeration."
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "scoped
-enumeration" to the list in the second sentence.</font>
+<p align="left">Add "scoped
+enumeration" to the list in the second sentence.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-83</font>
+<p>UK<br>
+83
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.1</font>
+<p align="justify">7.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The longest sequence of decl-specifiers that could
+<p align="left" style="margin-bottom: 0in">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 "friend int", or "typedef
-int".</font>
+int".
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Not sure. I
-understand the rule, just not how to say it.</font>
+<p align="left">Not sure. I
+understand the rule, just not how to say it.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-84</font>
+<p>UK<br>
+84
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.1</font>
+<p align="justify">7.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The grammar includes alignment-specifier as a
+<p align="left" style="margin-bottom: 0in">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>
+alignment was handled as an attribute.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Delete the
-production (including the duplicate in A6)</font>
+<p align="left">Delete the
+production (including the duplicate in A6)
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 3</font>
+<p>FI 3
<td>
-<p><font size="2" style="font-size: 9pt">7.1</font>
+<p>7.1
<td>
-<p><font size="2" style="font-size: 9pt">[dcl.spec.auto]</font>
+<p>[dcl.spec.auto]
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">While it’s considered
+While it’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>
+deduced template function parameter.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">See
-restricted-auto.ppt</font>
+<p>See
+restricted-auto.ppt
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-85</font>
+<p>UK<br>
+85
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.1</font>
+<p align="justify">7.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">... the init-declarator-list of the declaration
+<p align="left" style="margin-bottom: 0in">... the init-declarator-list of the declaration
shall not be empty (except for global anonymous unions, which shall
be declared static). Global here means "declared at namespace
scope". (cf 9.5/3 "Anonymous unions declared in a named namespace
-or in the global namespace shall be declared static.").</font>
+or in the global namespace shall be declared static.").
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-"global" with "namespace scope".</font>
+<p align="left">Replace
+"global" with "namespace scope".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-86</font>
+<p>UK<br>
+86
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.1</font>
+<p align="justify">7.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2,3</font>
+<p align="justify">2,3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The register keyword serves very little function,
+<p align="left" style="margin-bottom: 0in">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>
+useless.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Deprecate
-current usage of the register keyword.</font>
+<p align="left">Deprecate
+current usage of the register keyword.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-87</font>
+<p>UK<br>
+87
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.1</font>
+<p align="justify">7.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1, 4,
-5</font>
+<p align="justify">1, 4,
+5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Why require two keywords, where one on its own
+<p align="left" style="margin-bottom: 0in">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>
+documented in 7.1.1p1.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Drop
+<p align="left">Drop
requirement to combine static keyword with thread_local at
-block-scope inside a function definition.</font>
+block-scope inside a function definition.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 36</font>
+<p lang="en-GB" align="left">US 36
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.1.1</font>
+<p lang="en-GB" align="left">7.1.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">4</font>
+<p lang="en-GB" align="left">4
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The permission to use thread_local
+static data members is missing.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Add the static members as a permitted use.</font>
+<p lang="en-GB" align="left">Add the static members as a permitted use.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 23</font>
+<p>FR 23
<td>
-<p><font size="2" style="font-size: 9pt">7.1.5 [constexpr]</font>
+<p>7.1.5 [constexpr]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">'constexpr' functions should be allowed to
+<p style="margin-bottom: 0in">'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>
+the following should be allowed
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<typename T, int N></font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">int size(const T(&)[N]) { return N;
-}</font>
+<p style="margin-bottom: 0in">template<typename T, int N>
+<p style="margin-bottom: 0in">int size(const T(&)[N]) { return N;
+}
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">int a[] = { 41,42,43,44 };</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">enum { v = size(a) };</font>
+<p style="margin-bottom: 0in">int a[] = { 41,42,43,44 };
+<p style="margin-bottom: 0in">enum { v = size(a) };
<p style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -4320,38 +3851,33 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 12</font>
+<p>JP 12
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.1.5</font>
+<p lang="en-GB" align="left">7.1.5
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">There is an explanation in N2235,
+It should be allowed to
+define constexpr recursively.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">There is an explanation in N2235,
Generalized Constant Expressions—Revision 5, as
-follows.</font>
+follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" 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
+"margin-left: 0.39in; margin-bottom: 0in">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’t propose to allow it.</font>
+recursion, we don’t propose to allow it.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Then, here are the use cases where
+allowing recursion for constexpr is very useful.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Range of problem to be handled with
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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
@@ -4359,96 +3885,71 @@
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>
+solution.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">constexpr double func0(double x) { /*
-... */}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">constexpr double func1(double x) { /*
-call for func0 */ }</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">constexpr double func2(double x) { /*
-call for func1 */ }</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">/* ... */</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">- Compile-time and runtime</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">As constexpr can be also evaluated both
+<p lang="en-GB" align="left" style="margin-bottom: 0in">constexpr double func0(double x) { /*
+... */}
+<p lang="en-GB" align="left" style="margin-bottom: 0in">constexpr double func1(double x) { /*
+call for func0 */ }
+<p lang="en-GB" align="left" style="margin-bottom: 0in">constexpr double func2(double x) { /*
+call for func1 */ }
+<p lang="en-GB" align="left" style="margin-bottom: 0in">/* ... */
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">- Compile-time and runtime
+<p lang="en-GB" align="left" style="margin-bottom: 0in">As constexpr can be also evaluated both
in compile-time and runtime, we need to discuss about both
-cases.</font>
+cases.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Runtime evaluation is just to execute
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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>
+Any modern compiler may optimize tail recursion easily.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Compile-time evaluation is the same
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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’s ok.</font>
+compile-time, so it’s ok.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">- Sample
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Here is an example to calculate a square
+root using constexpr recursively.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">/*constexpr*/ double SqrtHelper(double
+x, double a, int n)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">return n == 0 ? a : SqrtHelper(x, (x / a
++ a) / 2.0, n - 1);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">/*constexpr*/ double Sqrt(double
+x)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">return SqrtHelper(x, x, 20);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">- Sample</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">/*constexpr*/ double SqrtHelper(double
-x, double a, int n)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">/*constexpr*/ double Sqrt(double
-x)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">return SqrtHelper(x, x, 20);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">/*constexpr*/ double root2 = Sqrt(2.0); //
+1.41421...
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Allow constexpr recursion.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Allow constexpr recursion.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 37</font>
+<p lang="en-GB" align="left">US 37
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.1.6.1</font>
+<p lang="en-GB" align="left">7.1.6.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1</font>
+<p lang="en-GB" align="left">1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">There is a "Note: 3.9.3 describes how
+<p lang="en-GB" align="left" style="margin-bottom: 0in">There is a "Note: 3.9.3 describes how
cv-qualifiers affect object and function types." 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>
+Functions.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -4456,18 +3957,16 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-89</font>
+<p>UK<br>
+89
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.1</font>
+<p align="justify">7.1.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The two normative sentences in this paragraph
+<p align="left" style="margin-bottom: 0in">The two normative sentences in this paragraph
appear to duplicate text elsewhere - but they aren't exact
duplicates, which introduces uncertainty. 1. "An object declared in
namespace scope with a const-qualified type has internal linkage
@@ -4486,53 +3985,49 @@
initialized with constant expressions". 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>
+to be a flaw in 5.19/2.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Make the
+<p align="left">Make the
normative text in this section into one or more notes, with cross
-references, and correct the referenced text if necessary.</font>
+references, and correct the referenced text if necessary.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-90</font>
+<p>UK<br>
+90
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.2</font>
+<p align="justify">7.1.6.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">para 1 and
-table 9</font>
+<p align="justify">para 1 and
+table 9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The grammar in paragraph one makes
+<p align="left" style="margin-bottom: 0in">The grammar in paragraph one makes
"nested-name-specifier template simple-template-id" a
simple-type-specifier, but unlike all the others it is omitted from
-table 9.</font>
+table 9.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a row to
+<p align="left">Add a row to
table 9 mentioning simple-template-id and punting to clause 14 (cf
-decltype(expression)).</font>
+decltype(expression)).
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-91</font>
+<p>UK<br>
+91
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.2</font>
+<p align="justify">7.1.6.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">5.1/5 says "[A] parenthesized expression can be
+<p align="left" style="margin-bottom: 0in">5.1/5 says "[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." When the first bullet point of this
@@ -4543,102 +4038,94 @@
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 "(parentheses around e are ignored)",
-which is redundant because of 5.1/5.</font>
+which is redundant because of 5.1/5.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Insert
+<p align="left">Insert
"unparenthised" in the first bullet point - "if e is an
*unparenthised* id-expression ...". In the second bullet point,
-move "(parentheses around e are ignored)" into a note.</font>
+move "(parentheses around e are ignored)" into a note.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-92</font>
+<p>UK<br>
+92
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.3</font>
+<p align="justify">7.1.6.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The note correctly indicates that, if T is a
+<p align="left" style="margin-bottom: 0in">The note correctly indicates that, if T is a
template type parameter, then "friend class T;" is ill-formed. It
might be worth pointing out at the same time that the alternative
-"friend T;" is now allowed - see 11.4/3.</font>
+"friend T;" is now allowed - see 11.4/3.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either strike
+<p align="left">Either strike
the note or add reference to 11.4/3 and/or mention of "friend
-T;".</font>
+T;".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-93</font>
+<p>UK<br>
+93
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.3</font>
+<p align="justify">7.1.6.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Grammar
-before para 1</font>
+<p align="justify">Grammar
+before para 1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">In the third production, "enum ::opt
+<p align="left" style="margin-bottom: 0in">In the third production, "enum ::opt
nested-name-specifieropt identifier", enum should not be in
-italics; its referring to the enum keyword.</font>
+italics; its referring to the enum keyword.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change to
-keyword font</font>
+<p align="left">Change to
+keyword font
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-94</font>
+<p>UK<br>
+94
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.4</font>
+<p align="justify">7.1.6.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The auto
+<p align="left">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>
+declare an object.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The auto type-specifier signifies that the type of
+<p align="left" style="margin-bottom: 0in">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>
+end of a function declarator.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-95</font>
+<p>UK<br>
+95
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.1.6.4</font>
+<p align="justify">7.1.6.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">(See also c++std-core-13583) This paragraph allows
+<p align="left" style="margin-bottom: 0in">(See also c++std-core-13583) This paragraph allows
auto "in the type-specifier-seq in a new-type-id (5.3.4)" (and
nowhere else not listed). Specifically, it isn't allowed in a
type-id in a new-expression. That allows "new auto (42)", but not
@@ -4646,64 +4133,52 @@
allowed "If the auto type-specifier appears in the
type-specifier-seq of a new-type-id or type-id of a new-expression
...". The inconsistency should be resolved, ideally in favour of
-allowing both forms.</font>
+allowing both forms.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change "in a
+<p align="left">Change "in a
new-type-id" to "in a new-type-id or type-id in a
-new-expression".</font>
+new-expression".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 24</font>
+<p>FR 24
<td>
-<p><font size="2" style="font-size: 9pt">7.1.6.4 [auto
-specifier]</font>
+<p>7.1.6.4 [auto
+specifier]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Now that 'auto' is finally used in its
+<p style="margin-bottom: 0in">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>
+declarations, as in
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<auto n> struct X { /*
-… */ };</font>
+<p style="margin-bottom: 0in">template<auto n> struct X { /*
+… */ };
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">X<903> x;</font>
+<p style="margin-bottom: 0in">X<903> x;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">X<&Widget::callback> y;</font>
+<p style="margin-bottom: 0in">X<&Widget::callback> y;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">instead of the current, often verbose and
-cumbersome</font>
+<p style="margin-bottom: 0in">instead of the current, often verbose and
+cumbersome
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style=
-"font-size: 10pt" face="Consolas, monospace"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif"><span lang=
+<p style="margin-bottom: 0in"><span lang=
"fr-FR">template<typename T, T n> struct X { /*
-…</span></font> <font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">*/ };</font></font>
+…</span> <font face="Consolas, monospace">*/ };</font>
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">X<int,903> x;</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">X<void
-(Widget::*)(),&Widget::callback> y;</font>
+<p style="margin-bottom: 0in">X<int,903> x;
+<p style="margin-bottom: 0in">X<void
+(Widget::*)(),&Widget::callback> y;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">We understand that 'auto' is used in
+<p style="margin-bottom: 0in">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>
+with the usage in this section.
<p style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -4711,21 +4186,16 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 38</font>
+<p lang="en-GB" align="left">US 38
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.2</font>
+<p lang="en-GB" align="left">7.2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">1</font>
+<p lang="en-GB" align="left">1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The discussion of attribute specifiers
+should be a separate paragraph.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -4733,304 +4203,270 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 39</font>
+<p lang="en-GB" align="left">US 39
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.2</font>
+<p lang="en-GB" align="left">7.2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2</font>
+<p lang="en-GB" align="left">2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The paragraph says in part "An
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The paragraph says in part "An
opaque-enum-declaration declaring an unscoped enumeration shall not
omit the enum-base." 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>
+with paragraph 3 and somewhat consistent with paragraph 5.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">As this implication leaves no representation, it
+<p lang="en-GB" align="left">As this implication leaves no representation, it
should be either affirmed here or the statement should be expanded.
-Perhaps a note is warranted.</font>
+Perhaps a note is warranted.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 13</font>
+<p>JP 13
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.2</font>
+<p lang="en-GB" align="left">7.2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">paragraph 3</font>
+<p lang="en-GB" align="left">paragraph 3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">In the description for an unscoped
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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>
+specify the same underlying type.
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">Replace the description,
+<p>Replace the description,
"same underlying type", with "same as underlying type of (previous)
-declaration."</font>
+declaration."
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-96</font>
+<p>UK<br>
+96
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.2</font>
+<p align="justify">7.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">enum E { }; What are the values of E? It has
+<p align="left" style="margin-bottom: 0in">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>
+values of E.)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a second
+<p align="left">Add a second
sentence to paragraph 7 (before "Otherwise"): "If the
enumerator-list is empty, 0 is the only value of the
-enumeration."</font>
+enumeration."
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-97</font>
+<p>UK<br>
+97
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.2</font>
+<p align="justify">7.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Missing punctuation after "blue" in: "The possible
+<p align="left" style="margin-bottom: 0in">Missing punctuation after "blue" in: "The possible
values of an object of type color are red, yellow, green, blue
-these values can be converted ..."</font>
+these values can be converted ..."
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">Add a
semicolon: "The possible values of an object of type color are red,
-yellow, green, blue; these values can be converted ..."</font>
+yellow, green, blue; these values can be converted ..."
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-98</font>
+<p>UK<br>
+98
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.2</font>
+<p align="justify">7.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It would be useful to be able to determine the
+<p align="left" style="margin-bottom: 0in">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>
+enumerations easier.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">Add a
TransformationTrait to 20.5.6 that returns the underlying type of
-an enumeration type.</font>
+an enumeration type.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-99</font>
+<p>UK<br>
+99
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7.2</font>
+<p align="justify">7.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is unclear whether an enumeration type is
+<p align="left" style="margin-bottom: 0in">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 ("Incompletely-defined
object types ... are incomplete types") is unclear in this
-situation.</font>
+situation.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move "an
+<p align="left">Move "an
enumeration declared by an opaque-enum-declaration ... is a
-complete type" from the note to normative text.</font>
+complete type" from the note to normative text.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 14</font>
+<p>JP 14
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.3.1</font>
+<p lang="en-GB" align="left">7.3.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" 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
+The description of the
behavior when a member that was defined with same name in other
-namespace was referred.</font>
+namespace was referred.
<p lang="en-GB" 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
+- It seems that the behavior
of the following case is not defined. So we think that it is
-necessary to define that.</font>
+necessary to define that.
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">namespace Q {</font>
+"margin-left: 0.67in; margin-bottom: 0in">namespace Q {
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">inline namespace V {</font>
+"margin-left: 0.67in; margin-bottom: 0in">inline namespace V {
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">int g;</font>
+"margin-left: 0.67in; margin-bottom: 0in">int g;
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-left: 0.67in; margin-bottom: 0in">}
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">int g;</font>
+"margin-left: 0.67in; margin-bottom: 0in">int g;
<p lang="en-GB" align="left" style=
-"margin-left: 0.67in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-left: 0.67in; margin-bottom: 0in">}
<p lang="en-GB" 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>
+"margin-left: 0.67in; margin-bottom: 0in">Q::g =1;// ill-fromed, Q::V::g =1;, or Q::g =
+1;?
<p lang="en-GB" 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>
+- Add that the following case
+is ill-formed to more easily to understand.
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">namespace Q {</font>
+"margin-left: 0.5in; margin-bottom: 0in">namespace Q {
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">inline namespace V1{</font>
+"margin-left: 0.5in; margin-bottom: 0in">inline namespace V1{
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">int g;</font>
+"margin-left: 0.5in; margin-bottom: 0in">int g;
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-left: 0.5in; margin-bottom: 0in">}
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">inline namespace V2{</font>
+"margin-left: 0.5in; margin-bottom: 0in">inline namespace V2{
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">int g;</font>
+"margin-left: 0.5in; margin-bottom: 0in">int g;
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-left: 0.5in; margin-bottom: 0in">}
<p lang="en-GB" align="left" style=
-"margin-left: 0.5in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-left: 0.5in; margin-bottom: 0in">}
<p lang="en-GB" align="left" style=
-"text-indent: 0.44in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Q::g =1;//ill-formed</font>
+"text-indent: 0.44in; margin-bottom: 0in">Q::g =1;//ill-formed
<p lang="en-GB" align="left" style="text-indent: 0.44in"><br>
<td>
<p lang="en-GB" 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
+Add the description of the
behavior when a member that was defined with same name in other
-namespace was referred.</font>
+namespace was referred.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-100</font>
+<p>UK<br>
+100
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.3.3</font>
+<p align="justify">7.3.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">10 and
-13</font>
+<p align="justify">10 and
+13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Para 10 says "A using-declaration is a declaration
+<p align="left" style="margin-bottom: 0in">Para 10 says "A using-declaration is a declaration
and can therefore be used repeatedly where (and only where)
multiple declarations are allowed." Para 13 says "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." These appear to be saying
-exactly the same thing.</font>
+exactly the same thing.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Delete para
-10, moving its example into para 13.</font>
+<p align="left">Delete para
+10, moving its example into para 13.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-101</font>
+<p>UK<br>
+101
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.3.3</font>
+<p align="justify">7.3.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">20</font>
+<p align="justify">20
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">If a using-declaration uses the keyword typename
+<p align="left" style="margin-bottom: 0in">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>
+this, I think.)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Allow
-typename for non-dependent names iff they refer to a type.</font>
+<p align="left">Allow
+typename for non-dependent names iff they refer to a type.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-12</font>
+<p>DE-12
<td>
-<p><font size="2" style="font-size: 9pt">7.3.3</font>
+<p>7.3.3
<td>
-<p><font size="2" style="font-size: 9pt">p15</font>
+<p>p15
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+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>
+ref-qualifiers, because they are part of the function type.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -5038,127 +4474,103 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 25</font>
+<p>FR 25
<td>
-<p><font size="2" style="font-size: 9pt">7.3.3 [The using
-declaration]</font>
+<p>7.3.3 [The using
+declaration]
<td>
-<p><font size="2" style="font-size: 9pt">Paragraph 21</font>
+<p>Paragraph 21
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The syntax for concept map alias is
-unnecessarily both confused and verbose.</font>
+<p>The syntax for concept map alias is
+unnecessarily both confused and verbose.
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">We strongly suggest simplifications,
-e.g.</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">using N1::C<int>;</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">that fits well with existing constructs.
+<p style="margin-bottom: 0in">We strongly suggest simplifications,
+e.g.
+<p style="margin-bottom: 0in">using N1::C<int>;
+<p style="margin-bottom: 0in">that fits well with existing constructs.
The syntactic complexity is too high for a new feature presumably
-designed to support sound programming.</font>
+designed to support sound programming.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-102</font>
+<p>UK<br>
+102
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.3.4</font>
+<p align="justify">7.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This paragraph says "If name lookup finds a
+<p align="left" style="margin-bottom: 0in">This paragraph says "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." But the example uses
declaration of functions, so is not covered by this
-paragraph.</font>
+paragraph.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the
+<p align="left">Move the
example to paragraph 7, and/or replace it with an appropriate
-example.</font>
+example.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 40</font>
+<p lang="en-GB" align="left">US 40
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.6</font>
+<p lang="en-GB" align="left">7.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">throw()</font></code>
-<font size="2" style="font-size: 9pt">(throws nothing) clause need
-not have the</font> <code><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">unexpected()</font></code> <font size="2"
-style="font-size: 9pt">catch clause generated. This attribute was a
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The list of attributes is missing an attribute to
+indicate that a function with a <font size=
+"2" style="font-size: 11pt"> <code>throw()</code> (throws nothing) clause need
+not have the <code>unexpected()</code> catch clause generated. This attribute was a
motivating example for the attribute syntax, and its omission is
-surprising.</font></font>
+surprising.</font>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Add the attribute.</font>
+<p lang="en-GB" align="left">Add the attribute.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 41</font>
+<p lang="en-GB" align="left">US 41
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.6</font>
+<p lang="en-GB" align="left">7.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">A common problem is unintentionally
+<p lang="en-GB" align="left" style="margin-bottom: 0in">A common problem is unintentionally
declaring a new virtual member function instead of overriding a
-base virtual member function.</font>
+base virtual member function.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">An attribute stating intent to override would
-enable better diagnostics.</font>
+<p lang="en-GB" align="left">An attribute stating intent to override would
+enable better diagnostics.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 26</font>
+<p>FR 26
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">7.6 [Attributes]</font>
+<p>7.6 [Attributes]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Are they part of object types or not? The
-section does not appear to indicate that clearly.</font>
+<p style="margin-bottom: 0in">Are they part of object types or not? The
+section does not appear to indicate that clearly.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -5166,47 +4578,42 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 1</font>
+<p>FI 1
<td>
-<p><font size="2" style="font-size: 9pt">7.6</font>
+<p>7.6
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">Add override-attribute for
+<p>Add override-attribute for
functions in order to avoid mistakes when overriding
-functions.</font>
+functions.
<td>
-<p><font size="2" style="font-size: 9pt">See
-override­-attribute.doc, override-attribute.ppt</font>
+<p>See
+override­-attribute.doc, override-attribute.ppt
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 27</font>
+<p>FR 27
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">7.6.1</font>
+<p>7.6.1
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">This section specifies that no name lookup
+<p style="margin-bottom: 0in">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>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The original alignment proposal made that
-useful construct possible.</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Furthermore paragraph 7.6.1/2 appears
+restriction is unacceptable.
+<p style="margin-bottom: 0in">The original alignment proposal made that
+useful construct possible.
+<p style="margin-bottom: 0in">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>
+is performed, how a 'type-id'is determined?
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -5214,110 +4621,103 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-103</font>
+<p>UK<br>
+103
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.1</font>
+<p align="justify">7.6.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Attributes
+<p align="left">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>
+attributes in the future.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add:
+<p align="left">Add:
attribute... to the grammar for attribute-list Add to list in
14.5.3p4: "In an attribute-list(7.6.1); the pattern is an
-attribute."</font>
+attribute."
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-104</font>
+<p>UK<br>
+104
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.1</font>
+<p align="justify">7.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is helpful for each subclause to contain a
+<p align="left" style="margin-bottom: 0in">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>
+subsection.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">7.6.1p1
+<p align="left">7.6.1p1
should move up one level to become 7.6p1. There grammar should
-remain under 7.6.1</font>
+remain under 7.6.1
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-105</font>
+<p>UK<br>
+105
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.1</font>
+<p align="justify">7.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Allowing only
+<p align="left">Allowing only
one level of namespaces in attributes seems unnecessarily
-limiting.</font>
+limiting.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">To:
+<p align="left">To:
attribute-scoped-token: attribute-namespace :: identifier add
-attribute-namespace :: attribute-scoped-token</font>
+attribute-namespace :: attribute-scoped-token
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-106</font>
+<p>UK<br>
+106
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.2</font>
+<p align="justify">7.6.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Extensive use of alignment and related terms
+without cross reference.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-cross-reference to 3.11.</font>
+<p align="left">Add
+cross-reference to 3.11.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 15</font>
+<p>JP 15
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.6.2</font>
+<p lang="en-GB" align="left">7.6.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
<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
+An abbreviation of 7.6.2
should be “[decl.attr.align]” instead of
“[dcl.align]”.<br>
Section name “[dcl.align]” is not consistent with
@@ -5326,115 +4726,96 @@
been changed from “[dcl.align]” to
“[dcl.attr.align]”, but in N2800 it was reverted to
“[dcl.align]” along with a change of section number,
-7.1.7 to 7.6.2.</font>
+7.1.7 to 7.6.2.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Change "[dcl.align]" of
-7.6.2 to "[decl.attr.align]".</font>
+<p>Change "[dcl.align]" of
+7.6.2 to "[decl.attr.align]".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-107</font>
+<p>UK<br>
+107
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.3</font>
+<p align="justify">7.6.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">While undefined behaviour might be the best we can
+<p align="left" style="margin-bottom: 0in">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>
+diagnose function definitions that might execute a return.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Adda a [Note
+<p align="left">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>
+statement -- end note]
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-108</font>
+<p>UK<br>
+108
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.4</font>
+<p align="justify">7.6.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is unclear why no diagnostic is required for an
+<p align="left" style="margin-bottom: 0in">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>
+program.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike "no
-diagnostic required" and the associated footnote.</font>
+<p align="left">Strike "no
+diagnostic required" and the associated footnote.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 42</font>
+<p lang="en-GB" align="left">US 42
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7.6.4</font>
+<p lang="en-GB" align="left">7.6.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 size="2"
-style="font-size: 9pt" face=
-"Arial, sans-serif">[[final]]</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 lang="en-GB" align="left" style="margin-bottom: 0in">The meaning of the <font size=
+"2" style="font-size: 11pt"> <code>[[final]]</code> attribute applied to classes is inconsistent with
+other languages and not desirable in its own right.</font>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" 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 size=
-"2" style="font-size: 9pt" face=
-"Arial, sans-serif">[[final]]</font></code> <font size="2" style=
-"font-size: 9pt">applied to classes. See the attached paper "Issues
-with the C++ Standard" under Chapter 7 "Meaning of</font>
-<code><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">[[final]]</font></code> <font size="2" style=
-"font-size: 9pt">attribute applied to classes".</font></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Modify the semantics of <font size=
+"2" style="font-size: 11pt"> <code>[[final]]</code> applied to classes. See the attached paper "Issues
+with the C++ Standard" under Chapter 7 "Meaning of
+<code>[[final]]</code> attribute applied to classes".</font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-109</font>
+<p>UK<br>
+109
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.5</font>
+<p align="justify">7.6.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The example code refers in comments to
+<p align="left" style="margin-bottom: 0in">The example code refers in comments to
"Compilation unit" A and B. The term should be "Translation unit"
-(2/1)</font>
+(2/1)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-"Compilation" with "Translation" in two places</font>
+<p align="left">Replace
+"Compilation" with "Translation" in two places
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
@@ -5454,290 +4835,223 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-110</font>
+<p>UK<br>
+110
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">7.6.5</font>
+<p align="justify">7.6.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The code in the example (compilation unit A) has:
+<p align="left" style="margin-bottom: 0in">The code in the example (compilation unit A) has:
"foo_head[i].load(memory_order_consume)". foo_head[i] is of type
-foo *, so it does not have a load member.</font>
+foo *, so it does not have a load member.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change the
-type of foo_head to atomic<foo *>[].</font>
+<p align="left">Change the
+type of foo_head to atomic<foo *>[].
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 43</font>
+<p lang="en-GB" align="left">US 43
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">8</font>
+<p lang="en-GB" align="left">8
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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 size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">-></font></code> <font size="2" style=
-"font-size: 9pt">late declaration is used in two. The</font>
-<code><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">auto</font></code> <font size="2" style=
-"font-size: 9pt">keyword is used in one, but also used differently
-in variable definitions.</font></font>
+different syntaxes for declaring functions. The <font size=
+"2" style="font-size: 11pt">
+<code>-></code> late declaration is used in two. The
+<code>auto</code> keyword is used in one, but also used differently
+in variable definitions.</font>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Some simplification is needed.</font>
+<p lang="en-GB" align="left">Some simplification is needed.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-111</font>
+<p>UK<br>
+111
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">8.3.5</font>
+<p align="justify">8.3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">13</font>
+<p align="justify">13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Example missing closing bracket in
-template<typename... T> void f(T (* ...t)(int, int);</font>
+<p align="left" style="margin-bottom: 0in">Example missing closing bracket in
+template<typename... T> void f(T (* ...t)(int, int);
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add closing
+<p align="left">Add closing
bracket like this: template<typename... T> void f(T (*
-...t)(int, int));</font>
+...t)(int, int));
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 44</font>
+<p lang="en-GB" align="left">US 44
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">8.3.5</font>
+<p lang="en-GB" align="left">8.3.5
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">13</font>
+<p lang="en-GB" align="left">13
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">In the Example, "template void f(T (*
-...t)(int, int);" is missing a close parenthesis.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">In the Example, "template void f(T (*
+...t)(int, int);" is missing a close parenthesis.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">It presumably should read: "template void f(T (*
-...t))(int, int);".</font>
+<p lang="en-GB" align="left">It presumably should read: "template void f(T (*
+...t))(int, int);".
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 45</font>
+<p align="left">US 45
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">8.3.5</font>
+<p align="left">8.3.5
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">13</font>
+<p align="left">13
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">At present, function
+<p align="left" style="margin-bottom: 0in">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’t needed, e.g.,</font>
+argument deduction isn’t needed, e.g.,
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template<class...
-T> struct X { };</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template<class... T1,
-class... T2></font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">struct X<pair<T1,
-T2>...> {</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">void f(T1...,
-T2...);</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">};</font>
+<p align="left" style="margin-bottom: 0in">template<class...
+T> struct X { };
+<p align="left" style="margin-bottom: 0in">template<class... T1,
+class... T2>
+<p align="left" style="margin-bottom: 0in">struct X<pair<T1,
+T2>...> {
+<p align="left" style="margin-bottom: 0in">void f(T1...,
+T2...);
+<p align="left" style="margin-bottom: 0in">};
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">More importantly, this
+<p align="left" style="margin-bottom: 0in">More importantly, this
restriction is inconsistent with the way pack expansions are
handled. For example, this template is well-formed (but X<T...,
-int> is a non-deduced context):</font>
+int> is a non-deduced context):
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template<class...
-T> void f(X<T..., int>);</font>
+<p align="left" style="margin-bottom: 0in">template<class...
+T> void f(X<T..., int>);
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Therefore, the restriction that limits function
+<p align="left">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>
+contexts.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 8.3.5p13, remove the sentence
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">A function parameter pack, if
+<p align="left" style="margin-bottom: 0in">In 8.3.5p13, remove the sentence
+“<span lang="">A function parameter pack, if
present, shall occur at the end of the
-parameter-declaration-list.”</span></font></font>
+parameter-declaration-list.”</span>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">In 14.8.2.1p1, replace the phrase
+<p align="left" style="margin-bottom: 0in"><span lang="">In 14.8.2.1p1, replace the phrase
“For a function parameter pack” with “For a
-function parameter pack that occurs at the end of a</span></font>
-<font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang=
-""><i>parameter-declaration-list</i></span></font><font size="2"
-style="font-size: 9pt" face="Arial, sans-serif"><span lang=
-"">”.</span></font></font>
+function parameter pack that occurs at the end of a</span><font size="3"> </font><font size="3" face=
+"Helvetica, sans-serif"><span lang=
+""><i>parameter-declaration-list</i>”.</span></font>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">Replace the note text “A
+<p align="left" style="margin-bottom: 0in"><span lang="">Replace the note text “A
function parameter pack can only occur at the end of a
-parameter-declaration-</span></font><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">list (8.3.5).” with
+parameter-declaration-</span>list (8.3.5).” with
“A function parameter pack that does not occur at the end of
a parameter-declaration-list is a non-deduced
-context.”</font></font>
+context.”
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 14.8.2.5p5, add a new
+<p align="left" style="margin-bottom: 0in">In 14.8.2.5p5, add a new
bullet: “A function parameter pack that does not occur at the
-end of its parameter-declaration-list.”</font>
+end of its parameter-declaration-list.”
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 14.8.2.5p10, replace
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">If</span></font> <font size="2"
-style="font-size: 9pt" face="Arial, sans-serif">the
+<p align="left" style="margin-bottom: 0in">In 14.8.2.5p10, replace
+“<span lang="">If</span><font size="3" face=
+"Helvetica, sans-serif"> the
parameter-declaration corresponding to Pi is a function parameter
-pack” with “</font><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif"><span lang=
-"">If</span></font> <font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">the parameter-declaration corresponding to Pi
+pack” with “<span lang=
+"">If</span><font size="3"> the parameter-declaration corresponding to Pi
is a function parameter pack and Pi occurs at the end of the
parameter-declaration-list”.</font></font>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Replace</font> <font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif"><span lang="">the note
+<p align="left" style="margin-bottom: 0in">Replace<font size="3"> </font><font size="3" face=
+"Helvetica, sans-serif"><span lang="">the note
text “A function parameter pack can only occur at the end of
-a parameter-declaration-</span></font><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">list (8.3.5).” with
+a parameter-declaration-</span>list (8.3.5).” with
“A function parameter pack that does not occur at the end of
a parameter-declaration-list is a non-deduced
-context.”</font></font>
+context.”</font>
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-13</font>
+<p>DE-13
<td>
-<p><font size="2" style="font-size: 9pt">8.4</font>
+<p>8.4
<td>
-<p><font size="2" style="font-size: 9pt">p2</font>
+<p>p2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-13 The second
+<p>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>
+attributes.
<td>
-<p><font size="2" style="font-size: 9pt">Properly quote the grammar
-from 8.3.5.</font>
+<p>Properly quote the grammar
+from 8.3.5.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 16</font>
+<p>JP 16
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">8.5</font>
+<p lang="en-GB" align="left">8.5
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">15<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo, duplicated "in"</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">"The initialization that occurs in in the
-forms"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo, duplicated "in"
+<p lang="en-GB" align="left">"The initialization that occurs in in the
+forms"
<td>
-<p><font size="2" style="font-size: 9pt">Remove one.</font>
+<p>Remove one.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 46</font>
+<p align="left">US 46
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">8.5.3</font>
+<p align="left">8.5.3
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">The ability for an rvalue
+<p align="left" style="margin-bottom: 0in">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’s push_back operation:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requires
-MoveConstructible<T> void push_back(T&&);</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requires
-CopyConstructible<T> void push_back(const T&);</font>
+vector’s push_back operation:
+<p align="left" style="margin-bottom: 0in">requires
+MoveConstructible<T> void push_back(T&&);
+<p align="left" style="margin-bottom: 0in">requires
+CopyConstructible<T> void push_back(const T&);
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">For a copy-constructible
+<p align="left" style="margin-bottom: 0in">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<int>), the second overload is removed from
@@ -5745,227 +5059,183 @@
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>
+(albeit less frequently).
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Prohibit rvalue
-references from binding to lvalues.</font>
+<p align="left" style="margin-bottom: 0in">Prohibit rvalue
+references from binding to lvalues.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Unfortunately this change
+<p align="left" style="margin-bottom: 0in">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>
+references:
<p align="left" style="margin-bottom: 0in"><br>
<ol>
<li>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">The current
-reference.</font>
+<p align="left" style="margin-bottom: 0in">The current
+reference.
<li>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">A non-const reference
-that only binds to rvalues.</font>
+<p align="left" style="margin-bottom: 0in">A non-const reference
+that only binds to rvalues.
<li>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">A non-const reference
-that will bind to both lvalues and rvalues.</font></ol>
+<p align="left" style="margin-bottom: 0in">A non-const reference
+that will bind to both lvalues and rvalues.</ol>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Still another solution would be to adopt the
+<p align="left">Still another solution would be to adopt the
“deleted function” 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>
+NN).
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 49</font>
+<p lang="en-GB" align="left">US 49
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">8.5.4</font>
+<p lang="en-GB" align="left">8.5.4
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">6</font>
+<p lang="en-GB" align="left">6
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">In the Example, the comments could be
-improved.</font>
+<p lang="en-GB" align="left">In the Example, the comments could be
+improved.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">See the attached paper "Issues with the
-C++ Standard" under "Editorial Issues" and "8.5.4/6".</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">See the attached paper "Issues with the
+C++ Standard" under "Editorial Issues" and "8.5.4/6".
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-112</font>
+<p>UK<br>
+112
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4-9</font>
+<p align="justify">4-9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">We now have concepts that should (or should not?)
+<p align="left" style="margin-bottom: 0in">We now have concepts that should (or should not?)
map to the terms described in Clause 9 - these should be at least
-referenced.</font>
+referenced.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-appropriate forward references to 14.9.4</font>
+<p align="left">Add
+appropriate forward references to 14.9.4
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-113</font>
+<p>UK<br>
+113
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">9.4.2</font>
+<p align="justify">9.4.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Mis-applied
-edit from the paper n2756</font>
+<p align="left">Mis-applied
+edit from the paper n2756
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The term
+<p align="left">The term
'constant-initializer' should have been struck out when replaced by
brace-or-equal-initializer. There are two occurrences in this
-paragraph</font>
+paragraph
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 50</font>
+<p align="left">US 50
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">12.1, 12.4, 12.8</font>
+<p align="left">12.1, 12.4, 12.8
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Implicitly-declared
+<p align="left" style="margin-bottom: 0in">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>
+should be removed.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">This change would
+<p align="left" style="margin-bottom: 0in">This change would
sacrifice some backward compatibility in favor of consistency. With
the current wording, checking that the following class
‘A’ is CopyConstructible would proceed without error
-(it is not CopyConstructible):</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">class A { A(const
-A&); };</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">With the proposed change,
+(it is not CopyConstructible):
+<p align="left" style="margin-bottom: 0in">class A { A(const
+A&); };
+<p align="left" style="margin-bottom: 0in">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>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">class A { A(const A&)
-= delete; };</font>
+function:
+<p align="left" style="margin-bottom: 0in">class A { A(const A&)
+= delete; };
<p align="left"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 12.1p5, remove the phrase
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">or inaccessible from the
-implicitly-declared default</span></font> <font size="2" style=
-"font-size: 9pt" face=
-"Arial, sans-serif">constructor”.</font></font>
+<p align="left" style="margin-bottom: 0in">In 12.1p5, remove the phrase
+“<span lang="">or inaccessible from the
+implicitly-declared default</span><font size="3" face=
+"Helvetica, sans-serif"> constructor”.</font>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 12.4p3, remove the phrase
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">or a destructor that is
+<p align="left" style="margin-bottom: 0in">In 12.4p3, remove the phrase
+“<span lang="">or a destructor that is
inaccessible from the implicitly-declared destructor,” and
the phrase “or a destructor that is inaccessible from
-the</span></font> <font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">implicitly-declared
-destructor</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">”.</span></font></font>
+the</span><font size="3" face=
+"Helvetica, sans-serif"> implicitly-declared
+destructor<span lang="">”.</span></font>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 12.8p5, remove the phrase
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">or inaccessible from the
+<p align="left" style="margin-bottom: 0in">In 12.8p5, remove the phrase
+“<span lang="">or inaccessible from the
implicitly-declared copy constructor” from the two places it
-occurs.</span></font></font>
+occurs.</span>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 12.8p10, remove the phrase
-“</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang="">or inaccessible from the
+<p align="left" style="margin-bottom: 0in">In 12.8p10, remove the phrase
+“<span lang="">or inaccessible from the
implicitly-declared copy assignment operator” from the two
-places it occurs.</span></font></font>
+places it occurs.</span>
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 28</font>
+<p>FR 28
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">12.6.1 [Explicit initialization]</font>
+<p style="margin-bottom: 0in">12.6.1 [Explicit initialization]
<p><br>
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">This section, in particular the example with
+<p>This section, in particular the example with
`g' appears contradictory with the syntax for uniform
-initialization.</font>
+initialization.
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 51</font>
+<p lang="en-GB" align="left">US 51
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">12.6.2</font>
+<p lang="en-GB" align="left">12.6.2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">2</font>
+<p lang="en-GB" align="left">2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The discussion of delegating
+constructors should be in its own paragraph.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -5973,27 +5243,25 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-114</font>
+<p>UK<br>
+114
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">12.6.2</font>
+<p align="justify">12.6.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Despite all
+<p align="left">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>
+direct initialization
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Ammend the grammar for mem-initializer:
+<p align="left" style="margin-bottom: 0in">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
@@ -6001,41 +5269,39 @@
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>
+BRACED-INIT-LIST. [Example:...
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 52</font>
+<p>US 52
<td>
-<p><font size="2" style="font-size: 9pt">13.5.8</font>
+<p>13.5.8
<td>
-<p><font size="2" style="font-size: 9pt">¶ 5</font>
+<p>¶ 5
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">A word is
-misspelled.</font>
+<p>A word is
+misspelled.
<td>
-<p><font size="2" style="font-size: 9pt">Change “shal”
-to “shall”.</font>
+<p>Change “shal”
+to “shall”.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-115</font>
+<p>UK<br>
+115
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14</font>
+<p align="justify">14
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">6-11</font>
+<p align="justify">6-11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Exported templates were a great idea that is
+<p align="left" style="margin-bottom: 0in">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
@@ -6044,297 +5310,255 @@
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>
+exported declarations.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Consider
+<p align="left">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>
+optimization.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-116</font>
+<p>UK<br>
+116
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14</font>
+<p align="justify">14
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">6-11</font>
+<p align="justify">6-11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Is it possible to export a concept map template?
+<p align="left" style="margin-bottom: 0in">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>
+clear what it would mean.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either
+<p align="left">Either
prohibit exporting concept map templates, or more directly address
-what it means to export a concept map.</font>
+what it means to export a concept map.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-117</font>
+<p>UK<br>
+117
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14</font>
+<p align="justify">14
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It would be nice to allow template alias within a
+<p align="left" style="margin-bottom: 0in">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>
+and function templates in the past.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Allow
+<p align="left">Allow
template aliases to be declared inside a function scope, and
-consider scoped concept maps.</font>
+consider scoped concept maps.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-118</font>
+<p>UK<br>
+118
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14</font>
+<p align="justify">14
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">6-11</font>
+<p align="justify">6-11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Exported templates are a complicated feature with
+<p align="left" style="margin-bottom: 0in">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>
+split it off into its own subclause [temp.export]
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Create a new
+<p align="left">Create a new
subclause [temp.export] containing 14p6-11. Move 14p12 ahead of
-this subclause.</font>
+this subclause.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-119</font>
+<p>UK<br>
+119
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14</font>
+<p align="justify">14
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Does a concept map have linkage? Reading this
+<p align="left" style="margin-bottom: 0in">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>
+exception, rather than linkage of concept maps is intended.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add an
+<p align="left">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>
+concept maps to the list of entities with linkage in 3.5
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-120</font>
+<p>UK<br>
+120
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.1</font>
+<p align="justify">14.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">As this is the first time the phrase
+<p align="left" style="margin-bottom: 0in">As this is the first time the phrase
“parameter pack” appears in Ch 14 I would like to see
-the section 8.3.5 referenced here (as well as in 14.1p17).</font>
+the section 8.3.5 referenced here (as well as in 14.1p17).
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Insert
-“(8.3.5)” after “parameter pack”</font>
+<p align="left">Insert
+“(8.3.5)” after “parameter pack”
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-121</font>
+<p>UK<br>
+121
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.1</font>
+<p align="justify">14.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">18</font>
+<p align="justify">18
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">The example (that follows the normative text) has
+no begin example marker
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Prefix the
-example code with "[ Example:"</font>
+<p align="left">Prefix the
+example code with "[ Example:"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 29</font>
+<p>FR 29
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">14.3 [Template arguments]</font>
+<p style="margin-bottom: 0in">14.3 [Template arguments]
<p><br>
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Constant expressions of any literal type should
-be allowed as template arguments.</font>
+<p>Constant expressions of any literal type should
+be allowed as template arguments.
<td>
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 53</font>
+<p align="left">US 53
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">14.5.1</font>
+<p align="left">14.5.1
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">5</font>
+<p align="left">5
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">If the requirements of a constrained member
+<p align="left" style="margin-bottom: 0in">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 size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><i>implicitly</i></font> <font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">defined, which is likely
+then be<font size="3"> </font><font size="3" face=
+"Helvetica, sans-serif"><i>implicitly</i><font size="3"> defined, which is likely
to either (a) fail to compile or (b) produce a function with the
wrong semantics. For example:</font></font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template<ObjectType
-T> class vector {</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">T* first, last,
-end;</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">public:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requires
-CopyConstructible<T> vector(const vector&);</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">};</font>
+<p align="left" style="margin-bottom: 0in">template<ObjectType
+T> class vector {
+<p align="left" style="margin-bottom: 0in">T* first, last,
+end;
+<p align="left" style="margin-bottom: 0in">public:
+<p align="left" style="margin-bottom: 0in">requires
+CopyConstructible<T> vector(const vector&);
+<p align="left" style="margin-bottom: 0in">};
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">If instantiated with a type that is not
+<p align="left">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>
+constructor that performs a copy of the pointers.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Add to 14.5.1p5:</font>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">If the constrained member is a copy constructor
+<p align="left" style="margin-bottom: 0in">Add to 14.5.1p5:
+<p align="left">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’s template arguments for its template
-parameters) will be declared as a deleted function (8.4).</font>
+parameters) will be declared as a deleted function (8.4).
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-122</font>
+<p>UK<br>
+122
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.5.3</font>
+<p align="justify">14.5.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Variadic templates should be supported in axioms.
+<p align="left" style="margin-bottom: 0in">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>
+(23.1.6.1p10)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
+<p align="left">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>
+concepts as well as templates.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 30</font>
+<p>FR 30
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">14.5.7 [Template aliases]</font>
+<p>14.5.7 [Template aliases]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">When are two template alias names
-equivalent?</font>
+<p style="margin-bottom: 0in">When are two template alias names
+equivalent?
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">E.g. given</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<template<class>
-class> struct X { };</font>
+<p style="margin-bottom: 0in">E.g. given
+<p style="margin-bottom: 0in">template<template<class>
+class> struct X { };
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<typename,typename> struct Y
-{ };</font>
+<p style="margin-bottom: 0in">template<typename,typename> struct Y
+{ };
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<typename T></font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">using Z1 = Y<int,T>;</font>
+<p style="margin-bottom: 0in">template<typename T>
+<p style="margin-bottom: 0in">using Z1 = Y<int,T>;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">template<typename T></font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">using Z2 = Y<int,T>;</font>
+<p style="margin-bottom: 0in">template<typename T>
+<p style="margin-bottom: 0in">using Z2 = Y<int,T>;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Are the types X<Z1> and X<Z2>
-equivalent?</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">We would suggest yes (since Z1<T>
+<p style="margin-bottom: 0in">Are the types X<Z1> and X<Z2>
+equivalent?
+<p style="margin-bottom: 0in">We would suggest yes (since Z1<T>
and Z2<T> are the same for all T), but we do not see any
-wording to that effect.</font>
+wording to that effect.
<p><br>
<td>
<p align="left"><br>
@@ -6342,237 +5566,202 @@
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 17</font>
+<p>JP 17
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">14.7.2</font>
+<p lang="en-GB" align="left">14.7.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 15<sup>th</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">if that namespace is inline, any
+namespace from its enclosing namespace set.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 size="2" style="font-size: 9pt" color=
-"#339966">forming</font> <font size="2" style="font-size: 9pt">its
-enclosing namespace set.</font></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">if that namespace is inline, any namespace <font size=
+"2" style="font-size: 11pt">
+<font color=
+"#339966">forming</font> its
+enclosing namespace set.</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">Replace "from" with
-"forming"</font>
+<p>Replace "from" with
+"forming"
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-14</font>
+<p>DE-14
<td>
-<p><font size="2" style="font-size: 9pt">14.7.3</font>
+<p>14.7.3
<td>
-<p><font size="2" style="font-size: 9pt">p1</font>
+<p>p1
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-14 The bulleted list
+<p>DE-14 The bulleted list
neither addresses "member function template of a class" nor "member
-class template of a class".</font>
+class template of a class".
<td>
-<p><font size="2" style="font-size: 9pt">Add the respective
-bullets.</font>
+<p>Add the respective
+bullets.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 18</font>
+<p>JP 18
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">14.7.3</font>
+<p lang="en-GB" align="left">14.7.3
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 2<sup>nd</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">any namespace from its enclosing
-namespace set</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">any namespace from its enclosing
+namespace set
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">any namespace</font> <font size="2" style=
-"font-size: 9pt" color="#339966">forming</font> <font size="2"
-style="font-size: 9pt">its enclosing namespace set</font></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">any namespace <font size=
+"2" style="font-size: 11pt"> <font color="#339966">forming</font> its enclosing namespace set</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">Replace "from" with
-"forming"</font>
+<p>Replace "from" with
+"forming"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 19</font>
+<p>JP 19
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">14.8.2</font>
+<p lang="en-GB" align="left">14.8.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">6<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo, duplicated "is"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo, duplicated "is"
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">"At certain points in the template argument
-deduction process it <u>is is</u> necessary"</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">"At certain points in the template argument
+deduction process it <u>is is</u> necessary"
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Remove one</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Remove one
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 54</font>
+<p>US 54
<td>
<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><font size="2" style="font-size: 9pt">14.10
-[temp.constrained]</font>
+14.9 [concept],
+<p>14.10
+[temp.constrained]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">ge</font>
+<p>ge
<td>
-<p><font size="2" style="font-size: 9pt">Concepts is of course the
+<p>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>
+is needed to shake more bugs out.
<td>
-<p><font size="2" style="font-size: 9pt">I propose no specific
-change here.</font>
+<p>I propose no specific
+change here.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 55</font>
+<p>US 55
<td>
-<p><font size="2" style="font-size: 9pt">14.9.1</font>
+<p>14.9.1
<td>
-<p><font size="2" style="font-size: 9pt">¶ 6</font>
+<p>¶ 6
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The paragraph number is in
+<p>The paragraph number is in
the wrong place, causing a grammar rule to be indented more than
-its fellows.</font>
+its fellows.
<td>
-<p><font size="2" style="font-size: 9pt">Move the paragraph number
+<p>Move the paragraph number
so as to follow the grammar rules, thus numbering the single
-sentence, “The body of a concept … .”</font>
+sentence, “The body of a concept … .”
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 56</font>
+<p>US 56
<td>
-<p><font size="2" style="font-size: 9pt">14.9.1</font>
+<p>14.9.1
<td>
-<p><font size="2" style="font-size: 9pt">¶ 6</font>
+<p>¶ 6
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The sentence contains two
-references to 14.9.1.3 [concept.req].</font>
+<p>The sentence contains two
+references to 14.9.1.3 [concept.req].
<td>
-<p><font size="2" style="font-size: 9pt">Change the second such
+<p>Change the second such
reference (at the end of the sentence) to 14.9.1.4
-[concept.axiom].</font>
+[concept.axiom].
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 57</font>
+<p>US 57
<td>
-<p><font size="2" style="font-size: 9pt">14.9.1.4</font>
+<p>14.9.1.4
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3</font>
+<p>¶ 3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">A word is misplaced,
-changing the intended meaning.</font>
+<p>A word is misplaced,
+changing the intended meaning.
<td>
-<p><font size="2" style="font-size: 9pt">Change “only find
-… if” to “find … only if”.</font>
+<p>Change “only find
+… if” to “find … only if”.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 58</font>
+<p>US 58
<td>
-<p><font size="2" style="font-size: 9pt">14.9.1.4</font>
+<p>14.9.1.4
<td>
-<p><font size="2" style="font-size: 9pt">¶ 3</font>
+<p>¶ 3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The listed phrases are not
-grammatically parallel.</font>
+<p>The listed phrases are not
+grammatically parallel.
<td>
-<p><font size="2" style="font-size: 9pt">Insert “in”
+<p>Insert “in”
before “one” so as to obtain “... in the concept,
in one of its less refined concepts, or in an associated
-requirement.”</font>
+requirement.”
<td>
<p><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 59</font>
+<p align="left">US 59
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">14.9.1.4</font>
+<p align="left">14.9.1.4
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Axioms are under-specified and provide little
+<p align="left">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)
@@ -6582,89 +5771,70 @@
Regular?” 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>
+specified in the candidate draft) will be incorrect.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove clause 14.9.1.4
-[concept.axiom]</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 2.11p1, remove
-“axiom” from the list of keywords.</font>
+<p align="left" style="margin-bottom: 0in">Remove clause 14.9.1.4
+[concept.axiom]
+<p align="left" style="margin-bottom: 0in">In 2.11p1, remove
+“axiom” from the list of keywords.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 14.5.8p7, remove
+<p align="left" style="margin-bottom: 0in">In 14.5.8p7, remove
“, or if the resulting concept map fails to satisfy the
-axioms of the corresponding concept”</font>
+axioms of the corresponding concept”
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 14.9.1p6, remove
+<p align="left" style="margin-bottom: 0in">In 14.9.1p6, remove
axiom-definition from the list of grammar productions for
concept-member-specifier. Remove “, and axioms” from
the final sentence, and instead “and” prior to
-“associated requirements” in the final sentence.</font>
+“associated requirements” in the final sentence.
<p align="left" style="margin-bottom: 0in"><br>
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove paragraph 14 of
-clause 14.9.2.</font>
+<p align="left" style="margin-bottom: 0in">Remove paragraph 14 of
+clause 14.9.2.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In 14.10.1p6, remove the sentence, “When
+<p align="left" style="margin-bottom: 0in">In 14.10.1p6, remove the sentence, “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-definition.”</font></font>
+axiom-definition.”
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="3" face=
-"Helvetica, sans-serif"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">In clauses 20.2.5, 20.2.8, 23.1.6.1, 23.1.6.2,
+<p align="left" style="margin-bottom: 0in">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>
+from which the axiom-definitions were removed.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 24.1.4p2, replace the
-word “axiom” with “condition.”</font>
+<p align="left" style="margin-bottom: 0in">In 24.1.4p2, replace the
+word “axiom” with “condition.”
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 31</font>
+<p>FR 31
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">14.9.1.4 [Axioms]</font>
+<p>14.9.1.4 [Axioms]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">This section states that an
+<p style="margin-bottom: 0in">This section states that an
axiom-definition defines a new semantics axiom but is unusually
-vague as to what those semantics might be.</font>
+vague as to what those semantics might be.
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The use of the '==' and '!=' with
+<p style="margin-bottom: 0in">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>
-<p style="margin-bottom: 0in"><font size="2" style=
-"font-size: 10pt" face="Consolas, monospace"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">We strongly suggest use
-of different tokens, e.g.</font> <font size="2" style=
-"font-size: 9pt" face="Wingdings"></font><font size="2"
-style="font-size: 9pt" face="Arial, sans-serif">, and opposed to
-this obscure usage/overload.</font></font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The description is very vague. How many
+operator!= defined.
+<p style="margin-bottom: 0in">We strongly suggest use
+of different tokens, e.g. <font face="Consolas, monospace">, and opposed to
+this obscure usage/overload.</font>
+<p style="margin-bottom: 0in">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>
+another one when they have side effects?
<p><br>
<td>
<p align="left"><br>
@@ -6672,245 +5842,222 @@
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-15</font>
+<p>DE-15
<td>
-<p><font size="2" style="font-size: 9pt">14.9.1.4</font>
+<p>14.9.1.4
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-15 There is no
+<p>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>
+values such as NaN violating the axioms.
<td>
-<p><font size="2" style="font-size: 9pt">Remove section 14.9.1.4
+<p>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>
+other than the keyword reservation in section 2.11.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-123</font>
+<p>UK<br>
+123
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.1.4</font>
+<p align="justify">14.9.1.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">auto concepts and axioms are incompatible. An
+<p align="left" style="margin-bottom: 0in">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>
+some kind of negative concept map.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
-paragraph making axioms ill-formed inside an auto concept.</font>
+<p align="left">Add a
+paragraph making axioms ill-formed inside an auto concept.
<td>
<p align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK<br>
-124</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK<br>
+124
<p><br>
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.1.4</font>
+<p align="justify">14.9.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Spelling
-mistake, double-e in were.</font>
+<p align="left">Spelling
+mistake, double-e in were.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">weere ->
-were</font>
+<p align="left">weere ->
+were
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-125</font>
+<p>UK<br>
+125
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.1.4</font>
+<p align="justify">14.9.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The implicit equality comparison operator
+<p align="left" style="margin-bottom: 0in">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>
+actually be evaluated.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Define the
+<p align="left">Define the
semantics of the implicitly declared comparison operators, or
restrict their usage to declaring equivalence between
-statements.</font>
+statements.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-126</font>
+<p>UK<br>
+126
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.4</font>
+<p align="justify">14.9.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">41</font>
+<p align="justify">41
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">This paragraph contains the only definition of the
+underlying_type member - but it's a note, so not normative.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the
-second sentence to the Requires clause in paragraph 42.</font>
+<p align="left">Move the
+second sentence to the Requires clause in paragraph 42.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-127</font>
+<p>UK<br>
+127
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.4</font>
+<p align="justify">14.9.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Provide a diagram clearly showing refinement
+<p align="left" style="margin-bottom: 0in">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>
+helpful.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide the
-diagram.</font>
+<p align="left">Provide the
+diagram.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-128</font>
+<p>UK<br>
+128
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">14.9.4</font>
+<p align="justify">14.9.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">It is
+<p align="left">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>
+imply CopyConstructible.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">A non-normative note: [Note: 'move only' types
+<p align="left" style="margin-bottom: 0in">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>
+but not CopyConstructible(20.1.8) - end note]
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 20</font>
+<p>JP 20
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">14.9.4</font>
+<p lang="en-GB" align="left">14.9.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" 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
+Trivially copyable type was
added in “3.9 Types”, so we think that it is necessary
to add concept to trivially copyable type like
-“TriviallyCopyableType”.</font>
+“TriviallyCopyableType”.
<p lang="en-GB" align="left" style=
"margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">Add TriviallyCopyableType that is
+trivially copyable type as concept.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-129</font>
+<p>UK<br>
+129
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">14.10.1,
-20.1.2</font>
+<p align="justify">14.10.1,
+20.1.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It should be possible to support boolean constant
+<p align="left" style="margin-bottom: 0in">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>
+as natural as constraints on the type system.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the
+<p align="left">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>
+would not.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 60</font>
+<p align="left">US 60
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">14.10.1</font>
+<p align="left">14.10.1
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">1</font>
+<p align="left">1
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The use of && as the separator for a
+<p align="left">The use of && as the separator for a
list of requirements has shown itself to be a serious teachability
problem. The mental model behind ‘&&’ treats
concepts as simple predicates, which ignores the role of concepts
@@ -6918,476 +6065,423 @@
‘&&’ (and especially try to fake || with
&& and !), the harder it is for them to understand the role
of concept maps. Simply changing the separator to ‘,’
-would eliminate a significant source of confusion.</font>
+would eliminate a significant source of confusion.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Replace</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement-list:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement-list ...
-[opt] && requirement</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement ...
-[opt]</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">with</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement-list</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement-list ...[opt]
-, requirement</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">requirement ...
-[opt]</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In 14.5.4p6, replace the
-first sentence with:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">The instantiation of an
+<p align="left" style="margin-bottom: 0in">Replace
+<p align="left" style="margin-bottom: 0in">requirement-list:
+<p align="left" style="margin-bottom: 0in">requirement-list ...
+[opt] && requirement
+<p align="left" style="margin-bottom: 0in">requirement ...
+[opt]
+<p align="left" style="margin-bottom: 0in"><br>
+<p align="left" style="margin-bottom: 0in">with
+<p align="left" style="margin-bottom: 0in"><br>
+<p align="left" style="margin-bottom: 0in">requirement-list
+<p align="left" style="margin-bottom: 0in">requirement-list ...[opt]
+, requirement
+<p align="left" style="margin-bottom: 0in">requirement ...
+[opt]
+<p align="left" style="margin-bottom: 0in"><br>
+<p align="left" style="margin-bottom: 0in">In 14.5.4p6, replace the
+first sentence with:
+<p align="left" style="margin-bottom: 0in">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>
+is the number of elements in the pack expansion parameters.
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-130</font>
+<p>UK<br>
+130
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.1</font>
+<p align="justify">15.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">With the new crrent_exception API it is possible
+<p align="left" style="margin-bottom: 0in">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 "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;"</font>
+object;"
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Update
+<p align="left">Update
sentence to allow for exceptions held in excpetion_ptr
-objects.</font>
+objects.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-131</font>
+<p>UK<br>
+131
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.3</font>
+<p align="justify">15.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">A handler catching its parameter by
+<p align="left" style="margin-bottom: 0in">A handler catching its parameter by
rvalue-reference is syntactically valid, but will never be
-activated.</font>
+activated.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Disallow
-handlers catching by rvalue-reference.</font>
+<p align="left">Disallow
+handlers catching by rvalue-reference.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-132</font>
+<p>UK<br>
+132
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.3</font>
+<p align="justify">15.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">16</font>
+<p align="justify">16
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There are obscure cases whrere a copy constructor
+<p align="left" style="margin-bottom: 0in">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>
+of directly calling a copy constructor.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Rewite using
+<p align="left">Rewite using
copy-initialization rather than directly invoking the copy
-constructor</font>
+constructor
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-133</font>
+<p>UK<br>
+133
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.4</font>
+<p align="justify">15.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Template aliases have the same semantics as a
+typedef so should also be disallowed
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">add "or
+<p align="left">add "or
alias-declaration" after "shall not appear in a typedef
-declaration".</font>
+declaration".
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-134</font>
+<p>UK<br>
+134
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.4</font>
+<p align="justify">15.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The sentance "An exception-specification can also
+<p align="left" style="margin-bottom: 0in">The sentance "An exception-specification can also
include the class std::bad_exception (18.7.2.1)." is
-redundant.</font>
+redundant.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either strike
+<p align="left">Either strike
the quoted sentance, or add a note explaining why it is worth
-calling special attention to this class.</font>
+calling special attention to this class.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-135</font>
+<p>UK<br>
+135
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.4</font>
+<p align="justify">15.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Unclear if
+<p align="left">Unclear if
std::unexpected is called before or after the function arguments
-have been destroyed</font>
+have been destroyed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify the
+<p align="left">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>
+members when called from a constructor or destructor
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-136</font>
+<p>UK<br>
+136
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.4</font>
+<p align="justify">15.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Exception
+<p align="left">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>
+this case.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move 15.4 and
+<p align="left">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>
+always disabled.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-137</font>
+<p>UK<br>
+137
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.5</font>
+<p align="justify">15.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is no mention of the current_exception API
+<p align="left" style="margin-bottom: 0in">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>
+at least be a forward reference to the library clause 18.7.5
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add another
+<p align="left">Add another
paragraph outlining 18.7.5 and the ability of an exception_ptr to
-extend the lifetime of an exception object</font>
+extend the lifetime of an exception object
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-138</font>
+<p>UK<br>
+138
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.5.1</font>
+<p align="justify">15.5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">The third bullet is redundant with the first, as
+it is a subset of the same conditions.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Merge the
-third bullet into the first bullet as a note or example.</font>
+<p align="left">Merge the
+third bullet into the first bullet as a note or example.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-139</font>
+<p>UK<br>
+139
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.5.1</font>
+<p align="justify">15.5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">According to the first bullet it is perfectly
+<p align="left" style="margin-bottom: 0in">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>
+during stack unwinding, This is clearly not true.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-word 'user' from the first bullet point.</font>
+<p align="left">Strike the
+word 'user' from the first bullet point.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-140</font>
+<p>UK<br>
+140
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.5.2</font>
+<p align="justify">15.5.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The detailed specification can fool people into
+<p align="left" style="margin-bottom: 0in">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>
+immediately call std::terminate();
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a note
+<p align="left">Add a note
highlighting the default behaviour of std::unexpected if the user
-does not supply a hander-function</font>
+does not supply a hander-function
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-141</font>
+<p>UK<br>
+141
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">15.6</font>
+<p align="justify">15.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">This whole subclause is redundant due to 15.1p5
+and 15.3p17
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike
-15.6</font>
+<p align="left">Strike
+15.6
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-142</font>
+<p>UK<br>
+142
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">16.3.5</font>
+<p align="justify">16.3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This paragraph opens with "[ Note" but has no
-corresponding "end note ]"</font>
+<p align="left" style="margin-bottom: 0in">This paragraph opens with "[ Note" but has no
+corresponding "end note ]"
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "end note
-]"</font>
+<p align="left">Add "end note
+]"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-143</font>
+<p>UK<br>
+143
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">16.3.5</font>
+<p align="justify">16.3.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Example uses
-#define t(x,y.z) x ## y ## z</font>
+<p align="left">Example uses
+#define t(x,y.z) x ## y ## z
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
-"x,y.z" to "x,y,z"</font>
+<p align="left">Change
+"x,y.z" to "x,y,z"
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 2</font>
+<p lang="en-GB" align="left">US 2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">17-30</font>
+<p lang="en-GB" align="left">17-30
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge/te</font>
+<p lang="en-GB" align="left">ge/te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The active issues identified in WG21
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The active issues identified in WG21
N2806, C++ Standard Library Active Issues, must be addressed and
-appropriate action taken.</font>
+appropriate action taken.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font color="#000080" size="2" style="font-size: 11pt"><u><a href=
-"http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html"><font size="2"
-style=
-"font-size: 9pt">http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html></a></u></font>
+<font color="#000080"><u><a href=
+"http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html">http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html></u></font>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Appropriate action would include making changes to
+<p lang="en-GB" align="left">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>
+or deferring the issue to a later point in time.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 2</font>
+<p>FR 2
<td>
-<p><font size="2" style="font-size: 9pt">General Comment</font>
+<p>General Comment
<td>
-<p><font size="2" style="font-size: 9pt">Library</font>
+<p>Library
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ge</font>
+<p>ge
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">The adoption of the library `constexpr'
+<p>The adoption of the library `constexpr'
proposal was not reflected in the draft, despite formal WG21
-committee vote.</font>
+committee vote.
<td>
-<p><font size="2" style="font-size: 9pt">FR 2</font>
+<p>FR 2
<td>
-<p><font size="2" style="font-size: 9pt">General Comment</font>
+<p>General Comment
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 61</font>
+<p lang="en-GB" align="left">US 61
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">17 onward</font>
+<p lang="en-GB" align="left">17 onward
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p><font size="2" style="font-size: 9pt">The concepts core language
+<p>The concepts core language
feature is applied to only some of the Standard Library clauses,
-and even then not always consistently.</font>
+and even then not always consistently.
<td>
<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
+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>
+N2781 exemplifies the necessary level of detail.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">CA-2</font>
+<p>CA-2
<td>
-<p style="margin-top: 0.04in"><font size="2" style=
-"font-size: 9pt">17 Library</font>
+<p style="margin-top: 0.04in">17 Library
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Ge</font>
+<p>Ge
<td>
<p lang="en-GB" align="left" style="margin-top: 0.04in">
-“<font size="2" style="font-size: 9pt">Concepts” are a
+“Concepts” are a
significant new addition to the language, but are not exploited
-uniformly in the library as documented in CD 14882.</font>
+uniformly in the library as documented in CD 14882.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Fix the standard library so that
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Fix the standard library so that
“Concepts” are used appropriately in the
-library.</font>
+library.
<td>
<p><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 62</font>
+<p align="left">US 62
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">17-30</font>
+<p align="left">17-30
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ge</font>
+<p align="left">ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Provide concepts and
-requirements clauses for all standard library templates</font>
+<p align="left" style="margin-bottom: 0in">Provide concepts and
+requirements clauses for all standard library templates
<p align="left"><br>
<td>
<p align="left"><br>
@@ -7395,857 +6489,809 @@
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 63</font>
+<p>US 63
<td>
-<p style="margin-top: 0.04in; margin-bottom: 0.04in"><font size="2"
-style="font-size: 9pt">17-30</font>
+<p style="margin-top: 0.04in; margin-bottom: 0.04in">17-30
<p><br>
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The behavior of the
+<p>The behavior of the
library in the presence of threads is incompletely
-specified.</font>
-<p><font size="2" style="font-size: 9pt">For example, if thread 1
+specified.
+<p>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 "happen before" the read?</font>
-<p><font size="2" style="font-size: 9pt">Another example: does
+the write of the data "happen before" the read?
+<p>Another example: does
simultaneous access using operator at() to different characters in
-the same non-const string really introduce a data race?</font>
+the same non-const string really introduce a data race?
<td>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-2</font>
+<p>DE-2
<td>
-<p><font size="2" style="font-size: 9pt">17 through 30</font>
+<p>17 through 30
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-2 Marking a constructor
+<p>DE-2 Marking a constructor
with "explicit" 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 "explicit".</font>
+non-single-parameter constructors as "explicit".
<td>
-<p><font size="2" style="font-size: 9pt">Consider marking
+<p>Consider marking
zero-parameter and multi-parameter constructors "explicit" in
classes that have at least one constructor marked "explicit" and
-that do not have an initializer-list constructor.</font>
+that do not have an initializer-list constructor.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 21</font>
+<p>JP 21
<td>
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">17 Library</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">21.2, 21.4,</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.2, 27.6, 27.7, 27.8.1, 28.4</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">17 Library
+<p lang="en-GB" align="left" style="margin-bottom: 0in">21.2, 21.4,
+<p lang="en-GB" align="left">27.2, 27.6, 27.7, 27.8.1, 28.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Support of char16_t/char32_t is
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Support of char16_t/char32_t is
insufficient. The basic_xxx classes of <iostream>,
<fstream>, <regex>, etc. does not have typedefs for
-char16_t/char32_t.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Functions such as stoi, to_string in
+char16_t/char32_t.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Functions such as stoi, to_string in
‘21.4 Numeric Conversion’ does not support
-char16_t/char32_t types.</font>
+char16_t/char32_t types.
<td>
<p lang="en-GB" 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>
+"margin-top: 0.04in; margin-bottom: 0.04in">Add commented lines corresponding to char16_t,
+char32_t.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">21.2 paragraph1</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">21.2 paragraph1
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">// 21.4: numeric
-conversions</font>
+ // 21.4: numeric
+conversions
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">int stoi(const
-u16string& str, size_t *idx = 0, int base = 10);</font>
+ int stoi(const
+u16string& str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long stol(const
-u16string& str, size_t *idx = 0, int base = 10);</font>
+ long stol(const
+u16string& str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">unsigned long
+ unsigned long
stoul(const u16string& str, size_t *idx = 0, int base =
-10);</font>
+10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long long stoll(const
-u16string& str, size_t *idx = 0, int base = 10);</font>
+ long long stoll(const
+u16string& str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">unsigned long long
+ unsigned long long
stoull(const u16string& str, size_t *idx = 0, int base =
-10);</font>
+10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">float stof(const
-u16string& str, size_t *idx = 0);</font>
+ float stof(const
+u16string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">double stod(const
-u16string& str, size_t *idx = 0);</font>
+ double stod(const
+u16string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long double stold(const
-u16string& str, size_t *idx = 0);</font>
+ long double stold(const
+u16string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u16string
-to_u16string(long long val);</font>
+ u16string
+to_u16string(long long val);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u16string
-to_u16string(unsigned long long val);</font>
+ u16string
+to_u16string(unsigned long long val);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u16string
-to_u16string(long double val);</font>
+ u16string
+to_u16string(long double val);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font size="2" style="font-size: 9pt">int stoi(const u32string&
-str, size_t *idx = 0, int base = 10);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"> int stoi(const u32string&
+str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long stol(const
-u32string& str, size_t *idx = 0, int base = 10);</font>
+ long stol(const
+u32string& str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">unsigned long
+ unsigned long
stoul(const u32string& str, size_t *idx = 0, int base =
-10);</font>
+10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long long stoll(const
-u32string& str, size_t *idx = 0, int base = 10);</font>
+ long long stoll(const
+u32string& str, size_t *idx = 0, int base = 10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">unsigned long long
+ unsigned long long
stoull(const u32string& str, size_t *idx = 0, int base =
-10);</font>
+10);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">float stof(const
-u32string& str, size_t *idx = 0);</font>
+ float stof(const
+u32string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">double stod(const
-u32string& str, size_t *idx = 0);</font>
+ double stod(const
+u32string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">long double stold(const
-u32string& str, size_t *idx = 0);</font>
+ long double stold(const
+u32string& str, size_t *idx = 0);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u32string
-to_u32string(long long val);</font>
+ u32string
+to_u32string(long long val);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u32string
-to_u32string(unsigned long long val);</font>
+ u32string
+to_u32string(unsigned long long val);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">u32string
-to_u32string(long double val);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ u32string
+to_u32string(long double val);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">27.2</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">27.2
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ios<char> ios;</font>
+ typedef
+basic_ios<char> ios;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ios<wchar_t> wios;</font>
+ typedef
+basic_ios<wchar_t> wios;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ios<char16_t> u16ios;</font>
+ typedef
+basic_ios<char16_t> u16ios;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ios<char32_t> u32ios;</font>
+ typedef
+basic_ios<char32_t> u32ios;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<wchar_t> wifstream;</font>
+ typedef
+basic_ifstream<wchar_t> wifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<wchar_t> wofstream;</font>
+ typedef
+basic_ofstream<wchar_t> wofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_fstream<wchar_t> wfstream;</font>
+ typedef
+basic_fstream<wchar_t> wfstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_streambuf<char16_t> u16streambuf;</font>
+ typedef
+basic_streambuf<char16_t> u16streambuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istream<char16_t> u16istream;</font>
+ typedef
+basic_istream<char16_t> u16istream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostream<char16_t> u16ostream;</font>
+ typedef
+basic_ostream<char16_t> u16ostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_iostream<char16_t> u16iostream;</font>
+ typedef
+basic_iostream<char16_t> u16iostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringbuf<char16_t> u16stringbuf;</font>
+ typedef
+basic_stringbuf<char16_t> u16stringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istringstream<char16_t> u16istringstream;</font>
+ typedef
+basic_istringstream<char16_t> u16istringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostringstream<char16_t> u16ostringstream;</font>
+ typedef
+basic_ostringstream<char16_t> u16ostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<char16_t> u16stringstream;</font>
+ typedef
+basic_stringstream<char16_t> u16stringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_filebuf<char16_t> u16filebuf;</font>
+ typedef
+basic_filebuf<char16_t> u16filebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<char16_t> u16ifstream;</font>
+ typedef
+basic_ifstream<char16_t> u16ifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<char16_t> u16ofstream;</font>
+ typedef
+basic_ofstream<char16_t> u16ofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_fstream<char16_t> u16fstream;</font>
+ typedef
+basic_fstream<char16_t> u16fstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_streambuf<char32_t> u32streambuf;</font>
+ typedef
+basic_streambuf<char32_t> u32streambuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istream<char32_t> u32istream;</font>
+ typedef
+basic_istream<char32_t> u32istream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostream<char32_t> u32ostream;</font>
+ typedef
+basic_ostream<char32_t> u32ostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_iostream<char32_t> u32iostream;</font>
+ typedef
+basic_iostream<char32_t> u32iostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringbuf<char32_t> u32stringbuf;</font>
+ typedef
+basic_stringbuf<char32_t> u32stringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istringstream<char32_t> u32istringstream;</font>
+ typedef
+basic_istringstream<char32_t> u32istringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostringstream<char32_t> u32ostringstream;</font>
+ typedef
+basic_ostringstream<char32_t> u32ostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<char32_t> u32stringstream;</font>
+ typedef
+basic_stringstream<char32_t> u32stringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_filebuf<char32_t> u32filebuf;</font>
+ typedef
+basic_filebuf<char32_t> u32filebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<char32_t> u32ifstream;</font>
+ typedef
+basic_ifstream<char32_t> u32ifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<char32_t> u32ofstream;</font>
+ typedef
+basic_ofstream<char32_t> u32ofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<u> <font size="2" style="font-size: 11pt"><font size="2"
-style="font-size: 9pt">typedef basic_fstream<char32_t>
-u32fstream;</font></font></u>
+<u> typedef basic_fstream<char32_t>
+u32fstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-state> class fpos;</font>
+ template <class
+state> class fpos;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-fpos<char_traits<char>::state_type> streampos;</font>
+ typedef
+fpos<char_traits<char>::state_type> streampos;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
fpos<char_traits<wchar_t>::state_type>
-wstreampos;</font>
+wstreampos;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
fpos<char_traits<char16_t>::state_type>
-u16streampos;</font>
+u16streampos;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
fpos<char_traits<char32_t>::state_type>
-u32streampos;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+u32streampos;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">27.6</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">27.6
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_istream;</font>
+ class
+basic_istream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istream<char> istream;</font>
+ typedef
+basic_istream<char> istream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istream<wchar_t> wistream;</font>
+ typedef
+basic_istream<wchar_t> wistream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_istream<char16_t> u16istream;</u></font>
+ <u>typedef
+basic_istream<char16_t> u16istream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istream<char32_t> u32istream;</font>
+ typedef
+basic_istream<char32_t> u32istream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_iostream;</font>
+ class
+basic_iostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_iostream<char> iostream;</font>
+ typedef
+basic_iostream<char> iostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_iostream<wchar_t> wiostream;</font>
+ typedef
+basic_iostream<wchar_t> wiostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_iostream<char16_t> u16iostream;</u></font>
+ <u>typedef
+basic_iostream<char16_t> u16iostream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_iostream<char32_t> u32iostream;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ typedef
+basic_iostream<char32_t> u32iostream;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_ostream;</font>
+ class
+basic_ostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostream<char> ostream;</font>
+ typedef
+basic_ostream<char> ostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostream<wchar_t> wostream;</font>
+ typedef
+basic_ostream<wchar_t> wostream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_ostream<char16_t> u16ostream;</u></font>
+ <u>typedef
+basic_ostream<char16_t> u16ostream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostream<char32_t> u32ostream;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ typedef
+basic_ostream<char32_t> u32ostream;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">27.7 paragraph 1</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">27.7 paragraph 1
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT>,</font>
+ template <class
+charT, class traits = char_traits<charT>,
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">class Allocator = allocator<charT>
-></font>
+ class Allocator = allocator<charT>
+>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_stringbuf;</font>
+ class
+basic_stringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringbuf<char> stringbuf;</font>
+ typedef
+basic_stringbuf<char> stringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringbuf<wchar_t> wstringbuf;</font>
+ typedef
+basic_stringbuf<wchar_t> wstringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_stringbuf<char16_t> u16stringbuf;</u></font>
+ <u>typedef
+basic_stringbuf<char16_t> u16stringbuf;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringbuf<char32_t> u32stringbuf;</font>
+ typedef
+basic_stringbuf<char32_t> u32stringbuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT>,</font>
+ template <class
+charT, class traits = char_traits<charT>,
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">class Allocator = allocator<charT>
-></font>
+ class Allocator = allocator<charT>
+>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_istringstream;</font>
+ class
+basic_istringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istringstream<char> istringstream;</font>
+ typedef
+basic_istringstream<char> istringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istringstream<wchar_t> wistringstream;</font>
+ typedef
+basic_istringstream<wchar_t> wistringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_istringstream<char16_t> u16istringstream;</u></font>
+ <u>typedef
+basic_istringstream<char16_t> u16istringstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_istringstream<char32_t> u32istringstream;</font>
+ typedef
+basic_istringstream<char32_t> u32istringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT>,</font>
+ template <class
+charT, class traits = char_traits<charT>,
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">class Allocator = allocator<charT>
-></font>
+ class Allocator = allocator<charT>
+>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_ostringstream;</font>
+ class
+basic_ostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostringstream<char> ostringstream;</font>
+ typedef
+basic_ostringstream<char> ostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostringstream<wchar_t> wostringstream;</font>
+ typedef
+basic_ostringstream<wchar_t> wostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_ostringstream<char16_t> u16ostringstream;</u></font>
+ <u>typedef
+basic_ostringstream<char16_t> u16ostringstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ostringstream<char32_t> u32ostringstream;</font>
+ typedef
+basic_ostringstream<char32_t> u32ostringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT>,</font>
+ template <class
+charT, class traits = char_traits<charT>,
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style=
-"font-size: 9pt">class Allocator = allocator<charT>
-></font>
+ class Allocator = allocator<charT>
+>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_stringstream;</font>
+ class
+basic_stringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<char> stringstream;</font>
+ typedef
+basic_stringstream<char> stringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<wchar_t> wstringstream;</font>
+ typedef
+basic_stringstream<wchar_t> wstringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<char16_t> u16stringstream;</font>
+ typedef
+basic_stringstream<char16_t> u16stringstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_stringstream<char32_t> u32stringstream;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ typedef
+basic_stringstream<char32_t> u32stringstream;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">27.8.1 paragraph 1</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">27.8.1 paragraph 1
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_filebuf;</font>
+ class
+basic_filebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_filebuf<char> filebuf;</font>
+ typedef
+basic_filebuf<char> filebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_filebuf<wchar_t> wfilebuf;</font>
+ typedef
+basic_filebuf<wchar_t> wfilebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_filebuf<char16_t> u16filebuf;</u></font>
+ <u>typedef
+basic_filebuf<char16_t> u16filebuf;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_filebuf<char32_t> u32filebuf;</font>
+ typedef
+basic_filebuf<char32_t> u32filebuf;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_ifstream;</font>
+ class
+basic_ifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<char> ifstream;</font>
+ typedef
+basic_ifstream<char> ifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<wchar_t> wifstream;</font>
+ typedef
+basic_ifstream<wchar_t> wifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_ifstream<char16_t> u16ifstream;</u></font>
+ <u>typedef
+basic_ifstream<char16_t> u16ifstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ifstream<char32_t> u32ifstream;</font>
+ typedef
+basic_ifstream<char32_t> u32ifstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_ofstream;</font>
+ class
+basic_ofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<char> ofstream;</font>
+ typedef
+basic_ofstream<char> ofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<wchar_t> wofstream;</font>
+ typedef
+basic_ofstream<wchar_t> wofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_ofstream<char16_t> u16ofstream;</u></font>
+ <u>typedef
+basic_ofstream<char16_t> u16ofstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_ofstream<char32_t> u32ofstream;</font>
+ typedef
+basic_ofstream<char32_t> u32ofstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">template <class
-charT, class traits = char_traits<charT> ></font>
+ template <class
+charT, class traits = char_traits<charT> >
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">class
-basic_fstream;</font>
+ class
+basic_fstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_fstream<char> fstream;</font>
+ typedef
+basic_fstream<char> fstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_fstream<wchar_t> wfstream;</font>
+ typedef
+basic_fstream<wchar_t> wfstream;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt"><u>typedef
-basic_fstream<char16_t> u16fstream;</u></font>
+ <u>typedef
+basic_fstream<char16_t> u16fstream;</u>
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_fstream<char32_t> u32fstream;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ typedef
+basic_fstream<char32_t> u32fstream;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">28.4</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">28.4
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_regex<char> regex;</font>
+ typedef
+basic_regex<char> regex;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_regex<wchar_t> wregex;</font>
+ typedef
+basic_regex<wchar_t> wregex;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_regex<char16_t> u16regex;</font>
+ typedef
+basic_regex<char16_t> u16regex;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-basic_regex<char32_t> u32regex;</font>
+ typedef
+basic_regex<char32_t> u32regex;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<const char*> csub_match;</font>
+ typedef
+sub_match<const char*> csub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<const wchar_t*> wcsub_match;</font>
+ typedef
+sub_match<const wchar_t*> wcsub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<const char16_t*> u16csub_match;</font>
+ typedef
+sub_match<const char16_t*> u16csub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<const char32_t*> u16csub_match;</font>
+ typedef
+sub_match<const char32_t*> u16csub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<string::const_iterator> ssub_match;</font>
+ typedef
+sub_match<string::const_iterator> ssub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<wstring::const_iterator> wssub_match;</font>
+ typedef
+sub_match<wstring::const_iterator> wssub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<u16string::const_iterator> u16ssub_match;</font>
+ typedef
+sub_match<u16string::const_iterator> u16ssub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-sub_match<u32string::const_iterator> u32ssub_match;</font>
+ typedef
+sub_match<u32string::const_iterator> u32ssub_match;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<const char*> cmatch;</font>
+ typedef
+match_results<const char*> cmatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<const wchar_t*> wcmatch;</font>
+ typedef
+match_results<const wchar_t*> wcmatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<const char16_t*> u16cmatch;</font>
+ typedef
+match_results<const char16_t*> u16cmatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<const char32_t*> u32cmatch;</font>
+ typedef
+match_results<const char32_t*> u32cmatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<string::const_iterator> smatch;</font>
+ typedef
+match_results<string::const_iterator> smatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<wstring::const_iterator> wsmatch;</font>
+ typedef
+match_results<wstring::const_iterator> wsmatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<u16string::const_iterator> u16smatch;</font>
+ typedef
+match_results<u16string::const_iterator> u16smatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-match_results<u32string::const_iterator> u32smatch;</font>
+ typedef
+match_results<u32string::const_iterator> u32smatch;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_iterator<const char*> cregex_iterator;</font>
+ typedef
+regex_iterator<const char*> cregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_iterator<const wchar_t*> wcregex_iterator;</font>
+ typedef
+regex_iterator<const wchar_t*> wcregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_iterator<const cha16r_t*> u16cregex_iterator;</font>
+ typedef
+regex_iterator<const cha16r_t*> u16cregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_iterator<const char32_t*> u32cregex_iterator;</font>
+ typedef
+regex_iterator<const char32_t*> u32cregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_iterator<string::const_iterator>
-sregex_iterator;</font>
+sregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_iterator<wstring::const_iterator>
-wsregex_iterator;</font>
+wsregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_iterator<u16string::const_iterator>
-u16sregex_iterator;</font>
+u16sregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_iterator<u32string::const_iterator>
-u32sregex_iterator;</font>
+u32sregex_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">...</font>
+ ...
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<const char*>
-cregex_token_iterator;</font>
+cregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<const wchar_t*>
-wcregex_token_iterator;</font>
+wcregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<const char16_t*>
-u16cregex_token_iterator;</font>
+u16cregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<const char32_t*>
-u32cregex_token_iterator;</font>
+u32cregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<string::const_iterator>
-sregex_token_iterator;</font>
+sregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_token_iterator<wstring::const_iterator></font><font size="2"
-style="font-size: 9pt" face="Arial, sans-serif"><span lang=
-"zxx">   </span></font><font size="2" style=
-"font-size: 9pt">wsregex_token_iterator;</font>
+ typedef
+regex_token_iterator<wstring::const_iterator><span lang=
+"zxx">   </span>wsregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
+ typedef
regex_token_iterator<u16string::const_iterator>
-u16sregex_token_iterator;</font>
+u16sregex_token_iterator;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
- <font size="2" style="font-size: 9pt">typedef
-regex_token_iterator<u32string::const_iterator></font><font size="2"
-style="font-size: 9pt" face="Arial, sans-serif"><span lang=
-"zxx"> </span></font><font size="2" style=
-"font-size: 9pt">u32sregex_token_iterator;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+ typedef
+regex_token_iterator<u32string::const_iterator><span lang=
+"zxx"> </span>u32sregex_token_iterator;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-144</font>
+<p>UK<br>
+144
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.1</font>
+<p align="justify">17.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">List of
-contents of library should be extened to cover new clauses</font>
+<p align="left">List of
+contents of library should be extened to cover new clauses
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add "regular
-expressions, atomic operations and threads"</font>
+<p align="left">Add "regular
+expressions, atomic operations and threads"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-145</font>
+<p>UK<br>
+145
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.1</font>
+<p align="justify">17.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><span lang="en-US">Summary of numeric
-facilities should mention random numbers</span></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><span lang="en-US">Summary of numeric
+facilities should mention random numbers</span>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add random
-number framework to the list of library facilities</font>
+<p align="left">Add random
+number framework to the list of library facilities
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-146</font>
+<p>UK<br>
+146
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.1</font>
+<p align="justify">17.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a summary
-paragraph for regular expressions</font>
+<p align="left">Add a summary
+paragraph for regular expressions
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a summary
-paragraph for regular expressions</font>
+<p align="left">Add a summary
+paragraph for regular expressions
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-147</font>
+<p>UK<br>
+147
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.1</font>
+<p align="justify">17.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a summary
-paragraph for threads</font>
+<p align="left">Add a summary
+paragraph for threads
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a summary
-paragraph for threads</font>
+<p align="left">Add a summary
+paragraph for threads
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-148</font>
+<p>UK<br>
+148
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.2</font>
+<p align="justify">17.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-12</font>
+<p align="justify">Table
+12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Table 12 is mentioned in and relates to section
+<p align="left" style="margin-bottom: 0in">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>
+reader.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Make sure
-tables are rendered in the section to which they relate.</font>
+<p align="left">Make sure
+tables are rendered in the section to which they relate.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-149</font>
+<p>UK<br>
+149
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3</font>
+<p align="justify">17.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">For consistency with narrow-oriented and
+<p align="left" style="margin-bottom: 0in">For consistency with narrow-oriented and
wide-oriented streams, we should add terms for streams of Unicode
-character sequences</font>
+character sequences
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Define
+<p align="left">Define
Utf16-oriented stream classes and Uft32-oriented stream classes for
-streams of char16_t/char32_t values.</font>
+streams of char16_t/char32_t values.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-150</font>
+<p>UK<br>
+150
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3</font>
+<p align="justify">17.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The addition
+<p align="left">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>
+object is in a singular state'.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Define 'singular state' such that an object with a
+<p align="left" style="margin-bottom: 0in">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
@@ -8253,1062 +7299,947 @@
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>
+iterator value with a singular state.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-151</font>
+<p>UK<br>
+151
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.1</font>
+<p align="justify">17.3.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Missing crossreference to 17.3.17
-[defns.repositional.stream]</font>
+<p align="left" style="margin-bottom: 0in">Missing crossreference to 17.3.17
+[defns.repositional.stream]
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-cross-reference in the existing empty brackets</font>
+<p align="left">Add
+cross-reference in the existing empty brackets
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-152</font>
+<p>UK<br>
+152
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.12</font>
+<p align="justify">17.3.12
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Object state is using a definition of object
+<p align="left" style="margin-bottom: 0in">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>
+'region of storage' definiton in 1.8p1
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify terms
-and usage</font>
+<p align="left">Clarify terms
+and usage
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-153</font>
+<p>UK<br>
+153
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.17</font>
+<p align="justify">17.3.17
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">If a repositional stream can only seek to a
+<p align="left" style="margin-bottom: 0in">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>
+cross-referenced in 17.3.17
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-word 'only'. A note might be added to reinforce the intent</font>
+<p align="left">Strike the
+word 'only'. A note might be added to reinforce the intent
<td>
<p><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK<br>
-154</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK<br>
+154
<p><br>
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.20</font>
+<p align="justify">17.3.20
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Missing
-definition of a stable partition algorithm</font>
+<p align="left">Missing
+definition of a stable partition algorithm
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-definition from 25.2.12p7</font>
+<p align="left">Add
+definition from 25.2.12p7
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-155</font>
+<p>UK<br>
+155
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.3</font>
+<p align="justify">17.3.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add clause 28
-to list that use this definition of character</font>
+<p align="left">Add clause 28
+to list that use this definition of character
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add clause 28
-to list that use this definition of character</font>
+<p align="left">Add clause 28
+to list that use this definition of character
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-156</font>
+<p>UK<br>
+156
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.3.4</font>
+<p align="justify">17.3.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Add regular expressions to set of templates using
+character container type
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add regular
+<p align="left">Add regular
expressions to set of templates using character container
-type</font>
+type
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-157</font>
+<p>UK<br>
+157
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.2</font>
+<p align="justify">17.5.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add concepts to the ordered list of
-presentation</font>
+<p align="left" style="margin-bottom: 0in">Add concepts to the ordered list of
+presentation
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add concepts
-into the sequence</font>
+<p align="left">Add concepts
+into the sequence
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-158</font>
+<p>UK<br>
+158
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.2</font>
+<p align="justify">17.5.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">templates are
-neither classes nor functions</font>
+<p align="left">templates are
+neither classes nor functions
<td>
-<p 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 align="left" style="margin-bottom: 0in">Replace 'classes' and 'functions' with 'classes
+and class templates' and 'functions and function templates'
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-159</font>
+<p>UK<br>
+159
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.4</font>
+<p align="justify">17.5.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Footnote
-152</font>
+<p align="justify">Footnote
+152
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This informative footnote was relevant in 1998,
+<p align="left" style="margin-bottom: 0in">This informative footnote was relevant in 1998,
not 2008. The term 'existing vendors' may imply something different
-now</font>
+now
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-footnote, or replace 'existing' with 'original' or similar</font>
+<p align="left">Strike the
+footnote, or replace 'existing' with 'original' or similar
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-160</font>
+<p>UK<br>
+160
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.4</font>
+<p align="justify">17.5.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">requires is now a keyword with a specific meaning
+<p align="left" style="margin-bottom: 0in">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>
+convention.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-'Requires' with 'Preconditions'</font>
+<p align="left">Replace
+'Requires' with 'Preconditions'
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-161</font>
+<p>UK<br>
+161
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.4</font>
+<p align="justify">17.5.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This paragraph is redundant as the definition of
+<p align="left" style="margin-bottom: 0in">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>
+'controlling' definition?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike
-17.5.2.4p4</font>
+<p align="left">Strike
+17.5.2.4p4
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-162</font>
+<p>UK<br>
+162
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.4</font>
+<p align="justify">17.5.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Clause 30 makes use of a 'Synchronization'
+<p align="left" style="margin-bottom: 0in">Clause 30 makes use of a 'Synchronization'
semantic element, that frequently appears either between Effects:
-and Postconditions:, or between Returns: and Throws:</font>
+and Postconditions:, or between Returns: and Throws:
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
+<p align="left">Add
'Synchronization' to the list either between Effects: and
-Postconditions:, or between Returns: and Throws:.</font>
+Postconditions:, or between Returns: and Throws:.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-163</font>
+<p>UK<br>
+163
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.2.4</font>
+<p align="justify">17.5.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Many functions are defined as "Effects: Equivalent
+<p align="left" style="margin-bottom: 0in">Many functions are defined as "Effects: Equivalent
to a...", which seems to also define the preconditions, effects,
-etc. But this is not made clear.</font>
+etc. But this is not made clear.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Introduce an
+<p align="left">Introduce an
explicit "Equivalent to", which defines all of the properties of
-the function.</font>
+the function.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-164</font>
+<p>UK<br>
+164
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.3.2.1</font>
+<p align="justify">17.5.3.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This phrasing
+<p align="left">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>
+with appropriate examples
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Use better names for the examples. Ideally totally
+<p align="left" style="margin-bottom: 0in">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>
+CopyConstructible is mis-spelled.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-165</font>
+<p>UK<br>
+165
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.5.3.2.2, 17.5.3.2.3</font>
+<p align="justify">17.5.3.2.2, 17.5.3.2.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">constraints on bitmask and enumation types were
+<p align="left" style="margin-bottom: 0in">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>
+constexpr feature - see paper n2235 for deails
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Adopt wording
-in line with the motivation described in N2235</font>
+<p align="left">Adopt wording
+in line with the motivation described in N2235
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-166</font>
+<p>UK<br>
+166
<td>
-<p 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 align="justify" style="margin-bottom: 0in">17.5.3.2.4.1, 17.5.3.3
<p align="justify"><br>
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">List of
-library clauses should go up to 30, not 27</font>
+<p align="left">List of
+library clauses should go up to 30, not 27
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-initial refernce to ch27 with ch30</font>
+<p align="left">Replace
+initial refernce to ch27 with ch30
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-167</font>
+<p>UK<br>
+167
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">17.5.3.4
-Private members</font>
+<p align="justify">17.5.3.4
+Private members
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Comment
-marker in wrong place.</font>
+<p align="left">Comment
+marker in wrong place.
<td>
-<p 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 align="left" style="margin-bottom: 0in">Change: // streambuf* sb; exposition only to
+streambuf* sb; // exposition only To reflect actual usage.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-168</font>
+<p>UK<br>
+168
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.2</font>
+<p align="justify">17.6.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">We should make it clear (either by note or
+<p align="left" style="margin-bottom: 0in">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>
+that.)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
+<p align="left">Replace
"namespace std or namespaces nested within namespace std" with
"namespace std or namespaces nested within namespace std or inline
namespaces nested directly or indirectly within namespace
-std"</font>
+std"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-169</font>
+<p>UK<br>
+169
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.2</font>
+<p align="justify">17.6.2.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This phrasing contradicts later freedom to
+<p align="left" style="margin-bottom: 0in">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>
+as well as std. (17.6.2.3p4)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Resolve
-conflict in either place</font>
+<p align="left">Resolve
+conflict in either place
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-170</font>
+<p>UK<br>
+170
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.3</font>
+<p align="justify">17.6.2.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">One of goals of C++0x is to make language easier
+<p align="left" style="margin-bottom: 0in">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>
+the whole library through a single include statement.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a new
+<p align="left">Add a new
header <std> that has the effect of including everything in
tables 13 and 14, except <iosfwd> and <cassert>. Add an
additional header <fwd> that adds all declarations from
-<std> but no definitions.</font>
+<std> but no definitions.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-171</font>
+<p>UK<br>
+171
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.4</font>
+<p align="justify">17.6.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Does freestanding implementation require a full
+<p align="left" style="margin-bottom: 0in">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 <cstdlib> conforming?</font>
+empty versions of everything but <cstdlib> conforming?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either strike
+<p align="left">Either strike
the references to abort, at_exit and exit, or clarify which headers
-only require partial support.</font>
+only require partial support.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-172</font>
+<p>UK<br>
+172
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.4</font>
+<p align="justify">17.6.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">No reference to new functions quick_exit and
+at_quick_exit
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add reference
-to quick_exit and at_quick_exit</font>
+<p align="left">Add reference
+to quick_exit and at_quick_exit
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-173</font>
+<p>UK<br>
+173
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.2.4</font>
+<p align="justify">17.6.2.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">table
-15</font>
+<p align="justify">table
+15
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt"><initializer_list> is missing from headers
-required in freestanding implementations.</font>
+<p align="left" style="margin-bottom: 0in"><initializer_list> is missing from headers
+required in freestanding implementations.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add 18.8,
+<p align="left">Add 18.8,
initializer lists, <initializer_list>, to the end of the
-table.</font>
+table.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 23</font>
+<p>JP 23
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">17.6.2.4</font>
+<p lang="en-GB" align="left">17.6.2.4
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, Table 15</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">There is a freestanding implementation including
+"margin-top: 0.04in; margin-bottom: 0.04in">There is a freestanding implementation including
<type_traits>, <array>, <ratio>, 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>
+shall include at least.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add <type_traits>, <array>,
-<ration> to Table 15.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add <type_traits>, <array>,
+<ration> to Table 15.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-174</font>
+<p>UK<br>
+174
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.3.2</font>
+<p align="justify">17.6.3.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The phrasing is mildly ambiguous when using the
+<p align="left" style="margin-bottom: 0in">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>
+surrounding clause.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace 'the
+<p align="left">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>
+entities that header declares in the translation unit'
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-175</font>
+<p>UK<br>
+175
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.4.2.1</font>
+<p align="justify">17.6.4.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Local types can now be used to instantiate
+templates, but don't have external linkage
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the
-reference to external linkage</font>
+<p align="left">Remove the
+reference to external linkage
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-176</font>
+<p>UK<br>
+176
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.4.3.3</font>
+<p align="justify">17.6.4.3.3
<td>
-<p align="justify" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Footnote 175</font>
+<p align="justify" style="margin-bottom: 0in">Footnote 175
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Reference to
-namespace ::std should be 17.6.4.2</font>
+<p align="left">Reference to
+namespace ::std should be 17.6.4.2
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
-referfence from 17.6.4.3 to 17.6.4.2</font>
+<p align="left">Change
+referfence from 17.6.4.3 to 17.6.4.2
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-177</font>
+<p>UK<br>
+177
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.4.3.4</font>
+<p align="justify">17.6.4.3.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Sentence is redundant as double underscores are
+reserved in all contexts by 17.6.4.3.3
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-sentence</font>
+<p align="left">Strike the
+sentence
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-178</font>
+<p>UK<br>
+178
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.4.8</font>
+<p align="justify">17.6.4.8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The last
+<p align="left">The last
sentence of the third bullet "Operations on such types can report a
failure by throwing an exception unless otherwise specified" is
-redundant as behaviour is already undefined.</font>
+redundant as behaviour is already undefined.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-sentence</font>
+<p align="left">Strike the
+sentence
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-179</font>
+<p>UK<br>
+179
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.4.8</font>
+<p align="justify">17.6.4.8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">According to the 4th bullet there is a problem if
+<p align="left" style="margin-bottom: 0in">According to the 4th bullet there is a problem if
"if any replacement function or handler function or destructor
operation throws an exception". There should be no problem throwing
-exceptions so long as they are caught within the function.</font>
+exceptions so long as they are caught within the function.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace the
-word 'throws' with 'propogates'</font>
+<p align="left">Replace the
+word 'throws' with 'propogates'
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 22</font>
+<p>JP 22
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">17.6.5.7</font>
+<p lang="en-GB" align="left">17.6.5.7
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">4<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The statement below describes relation
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The statement below describes relation
among two or more threads using words “between
threads”:<br>
[Note: This means, for example, that implementations can’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. —end note ]</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">In such case, “among” is
-preferred instead of “between”.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Change "between threads" to "among
-threads".</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">There are same cases in 17.6.1 paragraph
+explicitly share objects between threads. —end note ]
+<p lang="en-GB" align="left" style="margin-top: 0.04in">In such case, “among” is
+preferred instead of “between”.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Change "between threads" to "among
+threads".
+<p lang="en-GB" align="left" style="margin-top: 0.04in">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>
+also.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-180</font>
+<p>UK<br>
+180
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.5.10</font>
+<p align="justify">17.6.5.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1,
-4</font>
+<p align="justify">1,
+4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It should not be possible to strengthen the
+<p align="left" style="margin-bottom: 0in">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>
+possible to strengthen.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
+<p align="left">Add
restriction that exception specification of virtual functions
-cannot be tightened.</font>
+cannot be tightened.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-181</font>
+<p>UK<br>
+181
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.5.10</font>
+<p align="justify">17.6.5.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Footnote
-186</font>
+<p align="justify">Footnote
+186
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This footnote is wrong. C library functions do not
+<p align="left" style="margin-bottom: 0in">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>
+had an empty throw specification
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify that
+<p align="left">Clarify that
this note does not mean the functions are genuinely declared with
-the specification, but are treated as-if.</font>
+the specification, but are treated as-if.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-182</font>
+<p>UK<br>
+182
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">17.6.5.10</font>
+<p align="justify">17.6.5.10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Footnote
-188</font>
+<p align="justify">Footnote
+188
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is very helpful to assume all exceptions thrown
+<p align="left" style="margin-bottom: 0in">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>
+'encouragement' of this note should be made normative.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Make this
-footnote normative</font>
+<p align="left">Make this
+footnote normative
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-184</font>
+<p>UK<br>
+184
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">18 ->
-30</font>
+<p align="justify">18 ->
+30
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The new alias-declaration syntax is generally
+<p align="left" style="margin-bottom: 0in">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>
+for complex types like function pointers.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace all
+<p align="left">Replace all
typedef declarations in the standard library with
-alias-declarations, except in the standard C library.</font>
+alias-declarations, except in the standard C library.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 24</font>
+<p>JP 24
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18</font>
+<p lang="en-GB" align="left">18
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, Table 16</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Subclauses are listed in Table 16
-as:</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Subclauses are listed in Table 16
+as:
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">"18.6 Type identification …"</font>
+"text-indent: 0.06in; margin-bottom: 0in">"18.6 Type identification …"
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">"18.8 Initializer lists …"</font>
+"text-indent: 0.06in; margin-bottom: 0in">"18.8 Initializer lists …"
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-top: 0.04in"><font size="2" style=
-"font-size: 9pt">"18.7 Exception handling …".</font>
+"text-indent: 0.06in; margin-top: 0.04in">"18.7 Exception handling …".
<td>
<p lang="en-GB" 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
+Sort them in the increasing
order<br>
-"18.6 Type identification …"</font>
+"18.6 Type identification …"
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">"18.7 Exception handling …".</font>
+"text-indent: 0.06in; margin-bottom: 0in">"18.7 Exception handling …".
<p lang="en-GB" align="left" style=
"text-indent: 0.06in; margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">"18.8 Initializer lists
-…"</font>
+"18.8 Initializer lists
+…"
<p lang="en-GB" align="left" style=
"text-indent: 0.06in; margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 25</font>
+<p>JP 25
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.1</font>
+<p lang="en-GB" align="left">18.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">6<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph , last line, SEE ALSO</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">max_align_t is described in 18.1, so add
+3.11 Alignment as the reference.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">Add "<u>3.11, Alignment</u></font><font size="2"
-style="font-size: 9pt" color="#000000">" to</font> <font size="2"
-style="font-size: 9pt">SEE ALSO.</font></font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add "<u>3.11, Alignment</u><font color="#000000">" to</font><font size=
+"2" style="font-size: 11pt"> SEE ALSO.</font>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 32</font>
+<p>FR 32
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">18.2.1 [Numeric limits]</font>
+<p>18.2.1 [Numeric limits]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The definition of numeric_limits<>
+<p style="margin-bottom: 0in">The definition of numeric_limits<>
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>
+theory.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">We suggest that a more pragmatic approach, in
+<p>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>
+necessarily semantics assertions on the carrier type.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-16</font>
+<p>DE-16
<td>
-<p><font size="2" style="font-size: 9pt">18.2.1</font>
+<p>18.2.1
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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="Arial, sans-serif">numeric_limits</font> should not
-specify the <font face="Arial, sans-serif">Regular</font> concept
+DE-16 The class template numeric_limits should not
+specify the Regular 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=
-"Arial, sans-serif">EqualityComparable</font>. See also library
+values violate the semantics of EqualityComparable. See also library
issue 902 in WG21 document N2794 "C++ Standard Library Active
Issues List (Revision R60)", available at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2794.html
-.</font>
+.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Specify a concept
-requirement with fewer constraints as appropriate, for example
-<font face="Arial, sans-serif">SemiRegular</font>.</font>
+<p>Specify a concept
+requirement with fewer constraints as appropriate, for example SemiRegular.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 26</font>
+<p>JP 26
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.2.1.1</font>
+<p lang="en-GB" align="left">18.2.1.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">numeric_limits does not use
-concept.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">numeric_limits does not use
+concept.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class T> class
-numeric_limits<const T>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class T> class
-numeric_limits<volatile T>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class T> class
-numeric_limits<const volatile T>;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class T> class
+numeric_limits<const T>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class T> class
+numeric_limits<volatile T>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class T> class
+numeric_limits<const volatile T>;
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>Regular</u> T> class
-numeric_limits<const T>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>Regular</u> T> class
-numeric_limits<volatile T>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>Regular</u> T> class
-numeric_limits<const volatile T>;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>Regular</u> T> class
+numeric_limits<const T>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>Regular</u> T> class
+numeric_limits<volatile T>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>Regular</u> T> class
+numeric_limits<const volatile T>;
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-17</font>
+<p>DE-17
<td>
-<p><font size="2" style="font-size: 9pt">18.2.6</font>
+<p>18.2.6
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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=
-"Arial, sans-serif">type_index</font> should be removed; it
+DE-17 The class type_index should be removed; it
provides no additional functionality beyond providing appropriate
-concept maps.</font>
+concept maps.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Specify concept maps for
+<p>Specify concept maps for
"const type_info *" as required by the ordered and unordered
-containers and remove the class <font face=
-"Arial, sans-serif">type_index</font>.</font>
+containers and remove the class type_index.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-185</font>
+<p>UK<br>
+185
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.3.1</font>
+<p align="justify">18.3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is no header <stdint>, it should
-either be <stdint.h> or <cstdint></font>
+<p align="left" style="margin-bottom: 0in">There is no header <stdint>, it should
+either be <stdint.h> or <cstdint>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-<stdint> with <cstdint></font>
+<p align="left">Replace
+<stdint> with <cstdint>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-18</font>
+<p>DE-18
<td>
-<p><font size="2" style="font-size: 9pt">18.4</font>
+<p>18.4
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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++
+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
@@ -9322,567 +8253,497 @@
garbage collection support, turning potentially undefined programs
into well-defined ones.<br>
<i>Note:</i> This issue is contributing significantly to Germany's
-overall “no” vote.</font>
+overall “no” vote.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Consider applying the
+<p>Consider applying the
changes proposed in WG21 document N2693 "Requirements on programs
and backwards compatibility", available at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2693.html
-.</font>
+.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-186</font>
+<p>UK<br>
+186
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.4</font>
+<p align="justify">18.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Footnote
-221</font>
+<p align="justify">Footnote
+221
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">What is the purpose of this comment? The standard
+<p align="left" style="margin-bottom: 0in">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>
+be responsible for flushing buffers at the stated time.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the
-footnote</font>
+<p align="left">Remove the
+footnote
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-187</font>
+<p>UK<br>
+187
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.4</font>
+<p align="justify">18.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The term "thread safe" is not defined nor used in
-this context anywhere else in the standard.</font>
+<p align="left" style="margin-bottom: 0in">The term "thread safe" is not defined nor used in
+this context anywhere else in the standard.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify the
-intended meaing of "thread safe"</font>
+<p align="left">Clarify the
+intended meaing of "thread safe"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-188</font>
+<p>UK<br>
+188
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.4</font>
+<p align="justify">18.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The function _Exit does not appear to be defined
+<p align="left" style="margin-bottom: 0in">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>
+included-by-reference to the C standard?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Depends on
-where _Exit comes from</font>
+<p align="left">Depends on
+where _Exit comes from
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-189</font>
+<p>UK<br>
+189
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">18.4,
-18.7</font>
+<p align="justify">18.4,
+18.7
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The addition
+<p align="left">The addition
of the [[noreturn]] attribute to the language will be an important
-aid for static analysis tools.</font>
+aid for static analysis tools.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The following functions should be declared in C++
+<p align="left" style="margin-bottom: 0in">The following functions should be declared in C++
with the [[noreturn]] attribute: abort exit quick_exit terminate
-unexpected rethrow_exception throw_with_nested</font>
+unexpected rethrow_exception throw_with_nested
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 27</font>
+<p>JP 27
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.4, 18.9, 18.7.2.2, 18.7.3.1</font>
+<p lang="en-GB" align="left">18.4, 18.9, 18.7.2.2, 18.7.3.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">There are Standard library functions
+<p lang="en-GB" align="left" style="margin-top: 0.04in">There are Standard library functions
that never return to the caller. They are explained so in the
-Standard but not declared explicitly.</font>
+Standard but not declared explicitly.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Consider to add the attribute
-[[noreturn]] to such functions,</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Consider to add the attribute
+[[noreturn]] to such functions,
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">15.5.2 unexpected<br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">18.7.6 rethrow_nested</font>
-<p lang="en-GB" 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>
+18.7.3.1: terminate_handler,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">18.7.6 rethrow_nested
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">18.7.6 throw_with_nested<br>
+18.9: longjmp.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-190</font>
+<p>UK<br>
+190
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.5.1</font>
+<p align="justify">18.5.1
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">various</font>
+<p align="justify">various
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">It is not
+<p align="left">It is not
entirely clear how the current specification acts in the presence
-of a garbage collected implementation.</font>
+of a garbage collected implementation.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">All deallocation functions taking a pointer
+<p align="left" style="margin-bottom: 0in">All deallocation functions taking a pointer
parameter should have a Precondition : ptr is a safely-derived
-pointer value.</font>
+pointer value.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-191</font>
+<p>UK<br>
+191
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.5.1.1</font>
+<p align="justify">18.5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">According to
+<p align="left">According to
the second bullet, behaviour becomes undefined (for lack of a
specification) if the user has not yet called
-set_new_handler.</font>
+set_new_handler.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Rephrase the second bullet in terms of a new
+<p align="left" style="margin-bottom: 0in">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>
+defined.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-192</font>
+<p>UK<br>
+192
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.5.1.2</font>
+<p align="justify">18.5.1.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The declared signature is not compatible with the
+<p align="left" style="margin-bottom: 0in">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>
+something derived from std::bad_alloc.
<p align="left"><br>
<td>
-<p 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 align="left">Fix 5.3.4p7
+by required std::bad_alloc rather than std::length_error
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-193</font>
+<p>UK<br>
+193
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.5.2.2</font>
+<p align="justify">18.5.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">quick_exit has been added as a new valid way to
+terminate a program in a well defined way
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change 3rd
-bullet: call either abort(), exit() or quick_exit();</font>
+<p align="left">Change 3rd
+bullet: call either abort(), exit() or quick_exit();
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-194</font>
+<p>UK<br>
+194
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.6</font>
+<p align="justify">18.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The inclusion of type_index and
+<p align="left" style="margin-bottom: 0in">The inclusion of type_index and
hash<type_index> in <typeinfo> brings dependencies into
<typeinfo> which are inconsistent with the definition of
-freestanding C++ in 17.6.2.4.</font>
+freestanding C++ in 17.6.2.4.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move
+<p align="left">Move
type_index and hash<type_index> out of <typeinfo> and
-into a new header, <typeindex>.</font>
+into a new header, <typeindex>.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 28</font>
+<p>JP 28
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.6, 18.7, 19.1</font>
+<p lang="en-GB" align="left">18.6, 18.7, 19.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Errors reported by Exception classes are
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Errors reported by Exception classes are
of types char or std::string only. 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>
+be used.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Consider other types.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Consider other types.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 29</font>
+<p>JP 29
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.7.6</font>
+<p lang="en-GB" align="left">18.7.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">throw_with_nested does not use
-concept.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">throw_with_nested does not use
+concept.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class T> void
-throw_with_nested(T&& t); // [[noreturn]]</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class T> void
+throw_with_nested(T&& t); // [[noreturn]]
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.06in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<CopyConstructible T> void
-throw_with_nested(T&& t); // [[noreturn]]</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<CopyConstructible T> void
+throw_with_nested(T&& t); // [[noreturn]]
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 30</font>
+<p>JP 30
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.7.6</font>
+<p lang="en-GB" align="left">18.7.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">To handle nested exceptions strictly,
+<p lang="en-GB" align="left" style="margin-top: 0.04in">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>
+insufficient as error handling.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Consider nested_exception to support
-tree structure.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Consider nested_exception to support
+tree structure.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 31</font>
+<p>JP 31
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">18.7.6</font>
+<p lang="en-GB" align="left">18.7.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">It is difficult to understand in which
+case nested_exception is applied.
<td>
<p lang="en-GB" 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>
+"margin-top: 0.04in; margin-bottom: 0.04in">Consider to add a sample program which rethrows
+exception.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-195</font>
+<p>UK<br>
+195
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.8</font>
+<p align="justify">18.8
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The class definition of std::initializer_list
+<p align="left" style="margin-bottom: 0in">The class definition of std::initializer_list
contains concept-maps to Range which should be out of the class,
and in <iterator_concepts> instead. Otherwise, it's not
possible to use initializer_lists in a freestanding C++
-implementation.</font>
+implementation.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Delete the
-two concept maps from std::initializer_list.</font>
+<p align="left">Delete the
+two concept maps from std::initializer_list.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-196</font>
+<p>UK<br>
+196
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">18.8.3</font>
+<p align="justify">18.8.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Concept maps
+<p align="left">Concept maps
for initializer_list to Range should not be in language support
-headers, but instead in iterator concepts.</font>
+headers, but instead in iterator concepts.
<td>
-<p 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
+<p align="left" style="margin-bottom: 0in">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 <iterator_concepts> instead of
-<initializer_list>.</font>
+<initializer_list>.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-197</font>
+<p>UK<br>
+197
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">19</font>
+<p align="justify">19
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">All the
+<p align="left">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>
+well.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Provide a constructor for every exception class in
+<p align="left" style="margin-bottom: 0in">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>
+semantics that the passed string may be moved.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 32</font>
+<p>JP 32
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">19.1</font>
+<p lang="en-GB" align="left">19.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Messages returned by the member function
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Messages returned by the member function
what() of standard exception classes seem difficult to
-judge.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">For example, following messages are
+judge.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">For example, following messages are
returned by what() of std::bad_alloc of existing
-implementations:</font>
+implementations:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Compiler: Message returned by
-what()</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">---------------------------------------------</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Borland C++ 5.6.4: no named exception
-thrown</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Visual C++ 8.0: bad allocation</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Code Warrior 8.0: exception</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">g++ 3.4.4: St9exception</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Compiler: Message returned by
+what()
+<p lang="en-GB" align="left" style="margin-bottom: 0in">---------------------------------------------
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Borland C++ 5.6.4: no named exception
+thrown
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Visual C++ 8.0: bad allocation
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Code Warrior 8.0: exception
+<p lang="en-GB" align="left" style="margin-bottom: 0in">g++ 3.4.4: St9exception
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">It is difficult to recognize what exception was
+thrown when using those compilers except Visual C++.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Consider to add footnote that recommends
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Consider to add footnote that recommends
what() returns message easy to recognize what exception was
-thrown.</font>
+thrown.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 64</font>
+<p>US 64
<td>
-<p><font size="2" style="font-size: 9pt">19.3</font>
+<p>19.3
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt">Ge</font>
+<p>Ge
<td>
-<p><font color="#000000">“</font> <font size="2" style=
-"font-size: 9pt">See also: ISO C 7.1.4, 7.2, Amendment 1
-4.3.</font><font size="2" style="font-size: 9pt" color=
+<p><font color="#000000">“</font> See also: ISO C 7.1.4, 7.2, Amendment 1
+4.3.<font color=
"#000000">” It is unclear why this cross reference is here.
Amendment 1 was to C89, not C99.</font>
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Delete this cross reference.
+Delete this cross reference.
If necessary, expand the main text to include the relevant
-referenced text</font>
+referenced text
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 65</font>
+<p lang="en-GB" align="left">US 65
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20</font>
+<p lang="en-GB" align="left">20
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Scoped allocators and allocator propagation traits
+<p lang="en-GB" align="left">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>
+tuple.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Sketch of proposed resolution: Eliminate
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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 lang="en-GB" 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 size="2" style="font-size: 9pt" color=
+interfaces to reflect this simplification.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Components that I propose eliminating
+include <font size=
+"2" style="font-size: 11pt"> <font color=
"#0000FF"><span style=
"background: #ffffce">HasAllocatorType</span></font><font color=
"#000080"><u><a href=
-"http://wiki.corp.google.com/twiki/bin/edit/Main/HasAllocatorType?topicparent=Main.CppStandardIssues">
-<font size="2" style=
-"font-size: 9pt">?</font></a></u></font><font size="2" style=
-"font-size: 9pt">, is_scoped_allocator, allocator_propagation_map,
-scoped_allocator_adaptor, and</font> <font size="2" style=
-"font-size: 9pt" color="#0000FF"><span style=
+"http://wiki.corp.google.com/twiki/bin/edit/Main/HasAllocatorType?topicparent=Main.CppStandardIssues"> ?</a></u></font>, is_scoped_allocator, allocator_propagation_map,
+scoped_allocator_adaptor, and <font color="#0000FF"><span style=
"background: #ffffce">ConstructibleAsElement</span></font><font color="#000080">
<u><a href=
"http://wiki.corp.google.com/twiki/bin/edit/Main/ConstructibleAsElement?topicparent=Main.CppStandardIssues">
-<font size="2" style=
-"font-size: 9pt">?</font></a></u></font><font size="2" style=
-"font-size: 9pt">.</font></font>
+?</a></u></font>.</font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-198</font>
+<p>UK<br>
+198
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">20</font>
+<p align="justify">20
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
organization of clause 20 could be improved to better group related
-items, making the standard easier to navigate.</font>
+items, making the standard easier to navigate.
<td>
-<p 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
+<p align="left" style="margin-bottom: 0in">20.6.7, 20.6.8, 20.6.9 and 20.6.10 should be
grouped under a section called "operator wrappers" 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
@@ -9906,403 +8767,356 @@
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>
+- see more general comment on this
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-199</font>
+<p>UK<br>
+199
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">20.1.1,
-20.1.2</font>
+<p align="justify">20.1.1,
+20.1.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The requirement that programs do not supply
+<p align="left" style="margin-bottom: 0in">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>
+differently to user written code.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace the
-term 'program' with 'user'.</font>
+<p align="left">Replace the
+term 'program' with 'user'.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-200</font>
+<p>UK<br>
+200
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.1.4</font>
+<p align="justify">20.1.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">All standard
+<p align="left">All standard
library use expects Predicates to be CopyConstructible, and this
should be recognised easily without reatedly stating on every
-use-case.</font>
+use-case.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Either require CopyConstructible<F> as part
+<p align="left" style="margin-bottom: 0in">Either require CopyConstructible<F> 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>
+Callable. Consider making (Std)Predicate SemiRegular.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-201</font>
+<p>UK<br>
+201
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.1.5</font>
+<p align="justify">20.1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
-Consistency axiom for LessThanComparable will not compile.</font>
+<p align="left">The
+Consistency axiom for LessThanComparable will not compile.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a requires clause to the Consistency axiomL
+<p align="left" style="margin-bottom: 0in">Add a requires clause to the Consistency axiomL
requires HasLessEquals<T> &&
HasGreaterEquals<T>, or split the Consistency axiom into two
so that 'basic' consistency can be asserted regardless of the
-<=/>= requirement.</font>
+<=/>= requirement.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 33</font>
+<p>JP 33
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.1.5</font>
+<p lang="en-GB" align="left">20.1.5
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">LessThanComparable and
-EqualityComparable don't correspond to NaN.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">LessThanComparable and
+EqualityComparable don't correspond to NaN.
<td>
<p lang="en-GB" 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>
+"margin-top: 0.04in; margin-bottom: 0.04in">Apply concept_map to these concepts at
+FloatingPointType
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 66</font>
+<p>US 66
<td>
-<p><font size="2" style="font-size: 9pt">20.1.10</font>
+<p>20.1.10
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">Application of the
+<p>Application of the
"Regular" concept to floating-point types appears to be
-controversial (see long discussion on std-lib reflector).</font>
+controversial (see long discussion on std-lib reflector).
<td>
-<p><font size="2" style="font-size: 9pt">State that the
+<p>State that the
“Regular” concept does not apply to floating-point
-types.</font>
+types.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 34</font>
+<p>JP 34
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.2</font>
+<p lang="en-GB" align="left">20.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">1<sup>st</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 4<sup>th</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Though N2672 pointed at adding
-"#include<initializer_list>", it isn't reflected.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Though N2672 pointed at adding
+"#include<initializer_list>", it isn't reflected.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">add followings</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">#include <initializer_list> // for
-concept_map</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">add followings
+<p lang="en-GB" align="left" style="margin-top: 0.04in">#include <initializer_list> // for
+concept_map
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 67</font>
+<p>US 67
<td>
-<p><font size="2" style="font-size: 9pt">20.2.1</font>
+<p>20.2.1
<td>
-<p><font size="2" style="font-size: 9pt">¶ 5 first
-sent.</font>
+<p>¶ 5 first
+sent.
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">Some connective words are
-missing.</font>
+<p>Some connective words are
+missing.
<td>
-<p><font size="2" style="font-size: 9pt">Insert
+<p>Insert
“corresponding to” before “an lvalue reference
-type.”</font>
+type.”
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 35</font>
+<p>JP 35
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.2.3</font>
+<p lang="en-GB" align="left">20.2.3
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">6<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo,</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">"stdforward" should be "std::forward"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo,
+<p lang="en-GB" align="left">"stdforward" should be "std::forward"
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Correct typo.</font>
+<p lang="en-GB" align="left">Correct typo.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-202</font>
+<p>UK<br>
+202
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.2.4</font>
+<p align="justify">20.2.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The references to pair in the tuple-like access to
+<p align="left" style="margin-bottom: 0in">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>
+a namespace std block.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the
-std:: qualification from these references to pair.</font>
+<p align="left">Remove the
+std:: qualification from these references to pair.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 68</font>
+<p>US 68
<td>
-<p><font size="2" style="font-size: 9pt">20.2.12</font>
+<p>20.2.12
<td>
-<p><font size="2" style="font-size: 9pt">IntegralLike</font>
+<p>IntegralLike
<td>
-<p><font size="2" style="font-size: 9pt">te/ed</font>
+<p>te/ed
<td>
-<p><font size="2" style="font-size: 9pt">The code defining the
-context is syntactically incorrect.</font>
+<p>The code defining the
+context is syntactically incorrect.
<td>
-<p><font size="2" style="font-size: 9pt">Insert a comma in two
+<p>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>
+of the fourth line of refinements.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-203</font>
+<p>UK<br>
+203
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.3.2</font>
+<p align="justify">20.3.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1-4</font>
+<p align="justify">1-4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The ratio_xyz types have a misplaced '}'. For
+<p align="left" style="margin-bottom: 0in">The ratio_xyz types have a misplaced '}'. For
example: template <class R1, class R2> struct ratio_add {
-typedef see below} type; ;</font>
+typedef see below} type; ;
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the '}'
+<p align="left">Move the '}'
to after the typedef: template <class R1, class R2> struct
-ratio_add { typedef see below type; };</font>
+ratio_add { typedef see below type; };
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 36</font>
+<p>JP 36
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.4.2.1</font>
+<p lang="en-GB" align="left">20.4.2.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">19<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 6<sup>th</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">"it it" should be "it is"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">"it it" should be "it is"
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Correct typo.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Correct typo.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-204</font>
+<p>UK<br>
+204
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.5</font>
+<p align="justify">20.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-41</font>
+<p align="justify">Table
+41
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is not possible to create a variant union based
+<p align="left" style="margin-bottom: 0in">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>
+discriminated union template.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Restore
-aligned_union template that was removed by LWG issue 856.</font>
+<p align="left">Restore
+aligned_union template that was removed by LWG issue 856.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 69</font>
+<p>US 69
<td>
-<p><font size="2" style="font-size: 9pt">20.5</font>
+<p>20.5
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">This section, dealing with
+<p>This section, dealing with
tuple<>, should be in the same section as the similar utility
-pair<>.</font>
+pair<>.
<td>
-<p><font size="2" style="font-size: 9pt">Restructure Clause 20 so
-as to bring these similar components together.</font>
+<p>Restructure Clause 20 so
+as to bring these similar components together.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-205</font>
+<p>UK<br>
+205
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.5.3</font>
+<p align="justify">20.5.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">integral_constant objects should be usable in
+<p align="left" style="margin-bottom: 0in">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>
+this possible.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">Add a
constexpr conversion operator to class tempalate integral_constant:
-constexpr operator value_type() { return value; }</font>
+constexpr operator value_type() { return value; }
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-206</font>
+<p>UK<br>
+206
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.5.5</font>
+<p align="justify">20.5.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">para
-4</font>
+<p align="justify">para
+4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Currently the std says: "In order to instantiate
+<p align="left" style="margin-bottom: 0in">Currently the std says: "In order to instantiate
the template is_convertible<From, To>, the following code
shall be well formed:" 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>
+on whether the template can be instantiated.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change: "In
+<p align="left">Change: "In
order to instantiate the template is_convertible<From, To>,
the following code shall be well formed:" To: "The template
is_convertible<From, To> inherits either directly or
indirectly from true_type if the following code is well
-formed:"</font>
+formed:"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-207</font>
+<p>UK<br>
+207
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.5.6.1</font>
+<p align="justify">20.5.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-36</font>
+<p align="justify">Table
+36
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">suffix
-"::type" is missing from the some of the examples.</font>
+<p align="left">suffix
+"::type" is missing from the some of the examples.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Change: Example:remove_const<const volatile
+<p align="left" style="margin-bottom: 0in">Change: Example:remove_const<const volatile
int>::type evaluates to volatile int, whereas
remove_const<const int*> is const int*. —end example
To: Example:remove_const<const volatile int>::type evaluates
@@ -10318,110 +9132,100 @@
whereas remove_cv<const volatile int*> is const volatile
int*. —end example To: Example:remove_cv<const volatile
int>::type evaluates to int, whereas remove_cv<const volatile
-int*>::type is const volatile int*. —end example</font>
+int*>::type is const volatile int*. —end example
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 37</font>
+<p>JP 37
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.5.7</font>
+<p lang="en-GB" align="left">20.5.7
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Table 41</font>
+<p lang="en-GB" align="left">Table 41
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
<p lang="en-GB" 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>
+"text-indent: 0.19in; margin-bottom: 0in">There isn't a period at the end of enable_if's
+comments.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">If B is true, the member typedef type
+<p lang="en-GB" align="left" style="margin-bottom: 0in">If B is true, the member typedef type
shall equal T; otherwise, there shall be no member typedef
-type</font>
+type
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">If B is true, the member typedef type
+<p lang="en-GB" align="left" style="margin-bottom: 0in">If B is true, the member typedef type
shall equal T; otherwise, there shall be no member typedef
-type.</font>
+type.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add ”.”</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add ”.”
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 70</font>
+<p>US 70
<td>
-<p><font size="2" style="font-size: 9pt">20.6</font>
+<p>20.6
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">Specifications now
+<p>Specifications now
expressed via narrative text are more accurately and clearly
-expressed via executable code.</font>
+expressed via executable code.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Wherever concepts are
+Wherever concepts are
available that directly match this section’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>
+two nearly-identical notions.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 71</font>
+<p>US 71
<td>
-<p><font size="2" style="font-size: 9pt">20.6.7</font>
+<p>20.6.7
<td>
-<p><font size="2" style="font-size: 9pt">Table 51, last row, column
-3</font>
+<p>Table 51, last row, column
+3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The grammar is
-incorrect.</font>
+<p>The grammar is
+incorrect.
<td>
-<p><font size="2" style="font-size: 9pt">Change “conversion
-are” to “conversion is”.</font>
+<p>Change “conversion
+are” to “conversion is”.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 38</font>
+<p>JP 38
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.6.12.1.3</font>
+<p lang="en-GB" align="left">20.6.12.1.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" 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>
+add the move requirement for
+bind's return type.<br><br>
<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><br>
+For example, assume following
+th1 and th2,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
void f(vector<int> v) { }<br>
<br>
vector<int> v{ ... };<br>
@@ -10432,408 +9236,330 @@
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 lang="en-GB" 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 lang="en-GB" 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>
+copied.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add the requirement of move to get rid
+of this useless copy.
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">And also, add the MoveConstructible as well as
+CopyConstructible.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" 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>
-"</font><font size="2" style="font-size: 9pt" color="#000000">it
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add the following requirements.<br>
+"<font color="#000000">it
has a public move constructor that performs a member-wise
-move."</font></font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add the MoveConstructible.</font>
+move."</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add the MoveConstructible.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 39</font>
+<p>JP 39
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.6.16.2</font>
+<p lang="en-GB" align="left">20.6.16.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">There are no requires corresponding to F
+of std::function.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator A>
-function(allocator_arg_t, const A&, F);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator A>
-function(allocator_arg_t, const A&, F&&);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator A>
+function(allocator_arg_t, const A&, F);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator A>
+function(allocator_arg_t, const A&, F&&);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.06in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator
-A></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">function(allocator_arg_t, const A&,
-F);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator
-A></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">function(allocator_arg_t, const A&,
-F&&);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator
+A>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">requires CopyConstructible<F>
+&& Callable<F, ArgTypes...>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">function(allocator_arg_t, const A&,
+F);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator
+A>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">requires CopyConstructible<F>
+&& Callable<F, ArgTypes...>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">function(allocator_arg_t, const A&,
+F&&);
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 40</font>
+<p>JP 40
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.6.16.2</font>
+<p lang="en-GB" align="left">20.6.16.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Thougn it's "Allocator Aloc" at other
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Thougn it's "Allocator Aloc" at other
places, it's "Allocator A" only std::function constructor template
-parameter.</font>
+parameter.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator A>
-function(allocator_arg_t, const A&, F);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator A>
-function(allocator_arg_t, const A&, F&&);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator A>
+function(allocator_arg_t, const A&, F);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator A>
+function(allocator_arg_t, const A&, F&&);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.06in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class F, Allocator
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class F, Allocator
<u>Alloc</u>> function(allocator_arg_t, const <u>Alloc</u>
-&, F);</font>
+&, F);
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">template<class F, Allocator <u>Alloc</u>>
+"margin-top: 0.04in; margin-bottom: 0.04in">template<class F, Allocator <u>Alloc</u>>
function(allocator_arg_t, const <u>Alloc</u> &,
-F&&);</font>
+F&&);
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 41</font>
+<p>JP 41
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.6.16.2</font>
+<p lang="en-GB" align="left">20.6.16.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">There are no requires corresponding to R
+and Args of UsesAllocator.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class R, class...
-Args></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">concept_map
-UsesAllocator<function<R(Args...)>, Alloc> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef Alloc allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class R, class...
+Args>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">concept_map
+UsesAllocator<function<R(Args...)>, Alloc> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef Alloc allocator_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.06in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... Args></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">concept_map
-UsesAllocator<function<R(Args...)>, Alloc> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef Alloc allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">}</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... Args>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">concept_map
+UsesAllocator<function<R(Args...)>, Alloc> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef Alloc allocator_type;
+<p lang="en-GB" align="left" style="margin-top: 0.04in">}
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 42</font>
+<p>JP 42
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.6.16.2</font>
+<p lang="en-GB" align="left">20.6.16.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">The requires are wrong.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">R require Returnable, and ArgTypes
+"margin-top: 0.04in; margin-bottom: 0.04in">The requires are wrong.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">R require Returnable, and ArgTypes
requires CopyConstructible by a definition of function, then it's a
-mistake to designate followings by MoveConstructible.</font>
+mistake to designate followings by MoveConstructible.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <MoveConstructible R,
-MoveConstructible... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(const
-function<R(ArgTypes...)>&, nullptr_t);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <MoveConstructible R,
-MoveConstructible... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(nullptr_t, const
-function<R(ArgTypes...)>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <MoveConstructible R,
-MoveConstructible... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(const
-function<R(ArgTypes...)>&, nullptr_t);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <MoveConstructible R,
-MoveConstructible... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(nullptr_t, const
-function<R(ArgTypes...)>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <MoveConstructible R,
-MoveConstructible... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <MoveConstructible R,
+MoveConstructible... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(const
+function<R(ArgTypes...)>&, nullptr_t);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <MoveConstructible R,
+MoveConstructible... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(nullptr_t, const
+function<R(ArgTypes...)>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <MoveConstructible R,
+MoveConstructible... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(const
+function<R(ArgTypes...)>&, nullptr_t);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <MoveConstructible R,
+MoveConstructible... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(nullptr_t, const
+function<R(ArgTypes...)>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <MoveConstructible R,
+MoveConstructible... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void
swap(function<R(ArgTypes...)>&,
-function<R(ArgTypes...)>&);</font>
+function<R(ArgTypes...)>&);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
+"text-indent: 0.06in; margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(const
-function<R(ArgTypes...)>&, nullptr_t);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(nullptr_t, const
-function<R(ArgTypes...)>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(const
-function<R(ArgTypes...)>&, nullptr_t);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... ArgTypes></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(nullptr_t, const
-function<R(ArgTypes...)>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <<u>Returnable</u> R,
-<u>CopyConstructible</u>... ArgTypes></font>
-<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">void swap(function<R(ArgTypes...)>&,
-function<R(ArgTypes...)>&);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(const
+function<R(ArgTypes...)>&, nullptr_t);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(nullptr_t, const
+function<R(ArgTypes...)>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(const
+function<R(ArgTypes...)>&, nullptr_t);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... ArgTypes>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(nullptr_t, const
+function<R(ArgTypes...)>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <<u>Returnable</u> R,
+<u>CopyConstructible</u>... ArgTypes>
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">void swap(function<R(ArgTypes...)>&,
+function<R(ArgTypes...)>&);
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-208</font>
+<p>UK<br>
+208
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.6.17</font>
+<p align="justify">20.6.17
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">std::hash should be implemented for much more of
+<p align="left" style="margin-bottom: 0in">std::hash should be implemented for much more of
the standard library. In particular for pair, tuple and all the
-standard containers.</font>
+standard containers.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">.</font>
+<p align="left">.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-209</font>
+<p>UK<br>
+209
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7</font>
+<p align="justify">20.7
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Smart
-pointers cannot be used in constrained templates</font>
+<p align="left">Smart
+pointers cannot be used in constrained templates
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Provide constraints for smart pointers</font>
+<p align="left" style="margin-bottom: 0in">Provide constraints for smart pointers
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-213</font>
+<p>UK<br>
+213
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7.6</font>
+<p align="justify">20.7.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">std::allocator should be constrained to simplify
+<p align="left" style="margin-bottom: 0in">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>
+the requirements of this template.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The primary
+<p align="left">The primary
allocator template should be constrained to require
ObjectType<T> and FreeStoreAllocatable<T>. Further
-operations to be constrained as required.</font>
+operations to be constrained as required.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-214</font>
+<p>UK<br>
+214
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7.8</font>
+<p align="justify">20.7.8
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">raw_storage_iterator needs constraining as an
+iterator adaptor to be safely used in constrained templates
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Constrain the
-raw_storage_iterator template</font>
+<p align="left">Constrain the
+raw_storage_iterator template
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-210</font>
+<p>UK<br>
+210
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7.11</font>
+<p align="justify">20.7.11
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Specialized
+<p align="left">Specialized
algorithms for memory managenment need requirements to be easily
-usable in constrained templates</font>
+usable in constrained templates
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Provide constraints for all algorithms in
-20.7.11</font>
+<p align="left" style="margin-bottom: 0in">Provide constraints for all algorithms in
+20.7.11
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-20</font>
+<p>DE-20
<td>
-<p><font size="2" style="font-size: 9pt">20.7.12</font>
+<p>20.7.12
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">DE-20 The section heading
+<p>DE-20 The section heading
and the first sentence use the term "template function", which is
-undefined.</font>
+undefined.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Replace "template function"
-by "function template".</font>
+Replace "template function"
+by "function template".
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 72</font>
+<p align="left">US 72
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.7.12</font>
+<p lang="en-GB" align="left">20.7.12
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bind should support move-only functors
-and bound arguments.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bind should support move-only functors
+and bound arguments.
<p lang="en-GB" align="left"><br>
<td>
<p align="left"><br>
@@ -10841,158 +9567,141 @@
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-21</font>
+<p>DE-21
<td>
-<p><font size="2" style="font-size: 9pt">20.7.12.1.3</font>
+<p>20.7.12.1.3
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-21 The specification
+<p>DE-21 The specification
for bind claims twice that "the values and types for the bound
arguments v1, v2, ..., vN are determined as specified below". No
-such specification appears to exist.</font>
+such specification appears to exist.
<td>
-<p><font size="2" style="font-size: 9pt">Add the missing
+<p>Add the missing
specification in the same section, or add a cross-reference
-indicating the section where the specification appears.</font>
+indicating the section where the specification appears.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-211</font>
+<p>UK<br>
+211
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7.12.2.3</font>
+<p align="justify">20.7.12.2.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">11</font>
+<p align="justify">11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The nullptr_t type was introduced to resolve the
+<p align="left" style="margin-bottom: 0in">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>
+library.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
+<p align="left">Change
signature here and in the synopsis to: unique_ptr&
operator=(nullptr_t); Strike the sentance an note before the
-Effects clause.</font>
+Effects clause.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-212</font>
+<p>UK<br>
+212
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.7.13.7</font>
+<p align="justify">20.7.13.7
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The pointer-safety API is nothing to do with smart
+<p align="left" style="margin-bottom: 0in">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>
+memory management.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move this
+<p align="left">Move this
specification to 18.5. Move the declarations into the header
-<new>.</font>
+<new>.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-22</font>
+<p>DE-22
<td>
-<p><font size="2" style="font-size: 9pt">20.7.16.2</font>
+<p>20.7.16.2
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">DE-22 The conditions for
+<p>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<T1>, because it (arguably) "contains" T1.</font>
+std::vector<T1>, because it (arguably) "contains" T1.
<td>
-<p><font size="2" style="font-size: 9pt">Consider stating the
+<p>Consider stating the
conditions in normative prose instead of in comments in the class
definition. Use "consists of" instead of "contains". Consider using
-"if and only if" instead of "iff".</font>
+"if and only if" instead of "iff".
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 73</font>
+<p align="left">US 73
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">20.7.18</font>
+<p align="left">20.7.18
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">The
+<p align="left" style="margin-bottom: 0in">The
std::reference_closure template is redundant with std::function and
-should be removed.</font>
+should be removed.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">std::reference_closure is
+<p align="left" style="margin-bottom: 0in">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 “parallel application
performance” benchmark used to motivate the inclusion of
-std::reference_closure was flawed in several ways:</font>
+std::reference_closure was flawed in several ways:
<ol start="3">
<li>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">it failed to enable a
+<p align="left" style="margin-bottom: 0in">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>
+instances, and
<li>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">it failed to account for
+<p align="left" style="margin-bottom: 0in">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></ol>
+realistic application.</ol>
<p align="left" style="margin-left: 0.25in"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.7.18
-[func.referenceclosure].</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.7.18
+[func.referenceclosure].
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Remove 5.1.1 paragraph 12.</font>
+<p align="left">Remove 5.1.1 paragraph 12.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 74</font>
+<p align="left">US 74
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">20.8</font>
+<p align="left">20.8
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Scoped allocators
+<p align="left" style="margin-bottom: 0in">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
@@ -11004,170 +9713,144 @@
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>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Some evidence of the
-complexity introduced by scoped allocators:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">20.3.3, 20.5: large
-increase in the number of pair and tuple constructors</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">23: confusing
-“AllocatableElement” requirements throughout.</font>
+allocators should be removed from the working paper.
+<p align="left" style="margin-bottom: 0in">Some evidence of the
+complexity introduced by scoped allocators:
+<p align="left" style="margin-bottom: 0in">20.3.3, 20.5: large
+increase in the number of pair and tuple constructors
+<p align="left" style="margin-bottom: 0in">23: confusing
+“AllocatableElement” requirements throughout.
<p align="left"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove support for scoped
+<p align="left" style="margin-bottom: 0in">Remove support for scoped
allocators from the working paper. This includes at least the
-following changes:</font>
+following changes:
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.8.3
-[allocator.element.concepts]</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.8.3
+[allocator.element.concepts]
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.8.7
-[allocator.adaptor]</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.8.7
+[allocator.adaptor]
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.8.10
-[construct.element]</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.8.10
+[construct.element]
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">In Clause 23: replace
+<p align="left" style="margin-bottom: 0in">In Clause 23: replace
requirements naming the AllocatableElement concept with
requirements naming CopyConstructible, MoveConstructible,
-DefaultConstructible, or Constructible, as appropriate.</font>
+DefaultConstructible, or Constructible, as appropriate.
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 74</font>
+<p>US 74
<td>
-<p><font size="2" style="font-size: 9pt">20.8.2.2</font>
+<p>20.8.2.2
<td>
-<p><font size="2" style="font-size: 9pt">(a) synopsis (b) after
-¶ 14</font>
+<p>(a) synopsis (b) after
+¶ 14
<td>
-<p><font size="2" style="font-size: 9pt">te/ed</font>
+<p>te/ed
<td>
-<p><font size="2" style="font-size: 9pt">A concept name is twice
-misspelled.</font>
+<p>A concept name is twice
+misspelled.
<td>
-<p><font size="2" style="font-size: 9pt">Change
+<p>Change
“Hasconstructor” to “HasConstructor”
-(twice).</font>
+(twice).
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 75</font>
+<p>US 75
<td>
-<p><font size="2" style="font-size: 9pt">20.8.2.2</font>
+<p>20.8.2.2
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">Allocator concepts are
-incomplete</font>
+<p>Allocator concepts are
+incomplete
<td>
<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>
+See paper:
+http://www.halpernwightsoftware.com/WG21/n2810_allocator_defects.pdf
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 43</font>
+<p>JP 43
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.8.3</font>
+<p lang="en-GB" align="left">20.8.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">"alloc" should be "Alloc"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">"alloc" should be "Alloc"
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">auto concept UsesAllocator<typename
-T, typename Alloc> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">requires Allocator<alloc>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typename allocator_type =
-T::allocator_type;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">auto concept UsesAllocator<typename
+T, typename Alloc> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">requires Allocator<alloc>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typename allocator_type =
+T::allocator_type;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">auto concept UsesAllocator<typename
-T, typename Alloc> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">requires
-Allocator<<u>Alloc</u>>;</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">auto concept UsesAllocator<typename
+T, typename Alloc> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">requires
+Allocator<<u>Alloc</u>>;
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">typename allocator_type =
+T::allocator_type;
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-215</font>
+<p>UK<br>
+215
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">20.8.3.3</font>
+<p align="justify">20.8.3.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6,8</font>
+<p align="justify">6,8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Extra pair of {}, presumably some formatting code
-gone awry : duration& operator-{-}();</font>
+<p align="left" style="margin-bottom: 0in">Extra pair of {}, presumably some formatting code
+gone awry : duration& operator-{-}();
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the {}
-or fix formatting</font>
+<p align="left">Remove the {}
+or fix formatting
<td>
<p><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 77</font>
+<p align="left">US 77
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">20.8.4</font>
+<p align="left">20.8.4
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Allocator-specific move
+<p align="left" style="margin-bottom: 0in">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>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">With the introduction of
+and copy behavior should be removed from the working paper.
+<p align="left" style="margin-bottom: 0in">With the introduction of
rvalue references, we are teaching programmers that moving from a
standard container (e.g., a vector<string>) is an efficient,
constant-time operation. The introduction of N2525 removed that
@@ -11175,81 +9858,59 @@
(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>
+a tiny fraction of the C++ community.
<p align="left"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.8.4.</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.8.4.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Remove 20.8.5.</font>
+<p align="left" style="margin-bottom: 0in">Remove 20.8.5.
<p align="left" style="margin-bottom: 0in"><br>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Remove all references to the facilities in
-20.8.4 and 20.8.5 from clause 23.</font>
+<p align="left">Remove all references to the facilities in
+20.8.4 and 20.8.5 from clause 23.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 78</font>
+<p lang="en-GB" align="left">US 78
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.8.12, 20.8.13.2</font>
+<p lang="en-GB" align="left">20.8.12, 20.8.13.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">shared_ptr</font></code> <font size="2" style=
-"font-size: 9pt">to a</font> <code><font size="2" style=
-"font-size: 9pt" face=
-"Arial, sans-serif">unique_ptr</font></code><font size="2" style=
-"font-size: 9pt">.</font></font>
+<p lang="en-GB" align="left">There is
+presently no way to convert directly from a <font size="2" style=
+"font-size: 11pt">
+<code>shared_ptr</code> to a <code>unique_ptr</code>.</font>
<td>
-<p lang="en-GB" 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
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add an interface that performs the conversion. See
the attached, Issues with the C++ Standard" paper under Chapter 20,
-"Conversion from</font> <code><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">shared_ptr</font></code> <font size="2"
-style="font-size: 9pt">to</font> <code><font size="2" style=
-"font-size: 9pt" face=
-"Arial, sans-serif">unique_ptr".</font></code></font>
+"Conversion from <font size=
+"2" style="font-size: 11pt"> <code>shared_ptr</code> to <code>unique_ptr".</code></font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 79</font>
+<p align="left">US 79
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.8.12.2.1</font>
+<p lang="en-GB" align="left">20.8.12.2.1
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">[unique.ptr.single.ctor]/5 no longer
+<p lang="en-GB" align="left" style="margin-bottom: 0in">[unique.ptr.single.ctor]/5 no longer
requires for D not to be a pointer type. This restriction
needs to be put back in. Otherwise we have a run time failure
-that could have been caught at compile time:</font>
+that could have been caught at compile time:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">unique_ptr<int, void(*)(void*)>
-p(malloc(sizeof(int))); // should not compile</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">unique_ptr<int, void(*)(void*)>
+p(malloc(sizeof(int))); // should not compile
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">unique_ptr<int, void(*)(void*)>
-p(malloc(sizeof(int)), free); // ok</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">unique_ptr<int, void(*)(void*)>
+p(malloc(sizeof(int)), free); // ok
<p align="left"><br>
<td>
<p align="left"><br>
@@ -11257,1315 +9918,950 @@
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 44</font>
+<p>JP 44
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.8.13.6</font>
+<p lang="en-GB" align="left">20.8.13.6
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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<T> *.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">It should be shared_ptr<T>&,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The 1st parameter p and 2nd parameter v
+is now shared_ptr<T> *.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">It should be shared_ptr<T>&,
or if these are shared_ptr<T>* then add the "p shall not be a
-null pointer" at the requires.</font>
+null pointer" at the requires.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Change shared_ptr<T>& or add
-the "p shall not be a null pionter" at the requires.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Change shared_ptr<T>& or add
+the "p shall not be a null pionter" at the requires.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 45</font>
+<p>JP 45
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.9</font>
+<p lang="en-GB" align="left">20.9
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class Rep, class Period =
-ratio<1>> class duration;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Rep, Period, Clock and Duration don't
+correspond to concept.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class Rep, class Period =
+ratio<1>> class duration;
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">template <class Clock, class Duration =
-typename Clock::duration> class time_point;</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">template <class Clock, class Duration =
+typename Clock::duration> class time_point;
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Make concept for Rep, Period, Clock and
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Make concept for Rep, Period, Clock and
Duration, and fix 20.9 and wait_until and wait_for's template
-parameter at 30.</font>
+parameter at 30.
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 80</font>
+<p>US 80
<td>
-<p><font size="2" style="font-size: 9pt">20.9.2.1</font>
+<p>20.9.2.1
<td>
-<p><font size="2" style="font-size: 9pt">Heading</font>
+<p>Heading
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The section heading does
-not describe the contents.</font>
+<p>The section heading does
+not describe the contents.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Change the heading
+Change the heading
“<span lang="en-US">is_floating_point</span>” to
“<span lang="en-US">treat_as_floating_point</span>”.
-Optionally adjust the section’s label similarly.</font>
+Optionally adjust the section’s label similarly.
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">US 81</font>
+<p align="left">US 81
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">20.9.3</font>
+<p lang="en-GB" align="left">20.9.3
<td>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">chrono::duration is missing the modulous
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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’s representation as the latter will not enforce the
-correct units of the operation.</font>
+correct units of the operation.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Ex:</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Ex:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">milliseconds ms(...);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">microseconds us(...);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">ms % us; // microseconds</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">us % ms; // microseconds</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">ms % 5; // milliseconds</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">5 % ms; // does not compile</font>
-<p lang="en-GB" align="left"><br>
-<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Add:</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class Rep, class Period =
-ratio<1>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class duration {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">...</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">duration&
-operator%(const rep&);</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">duration&
-operator%(const duration&);</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">..</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">};</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template <class Rep1,
-class Period,</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">class Rep2></font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">duration<typename
-common_type<</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">Rep1, Rep2>::type,
-Period></font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">operator%(const
-duration<Rep1, Period>& d, const Rep2& s);</font>
-<p align="left" style="margin-bottom: 0in"><br>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">template <class Rep1,
-class Period1,</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">class Rep2, class
-Period2></font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">typename
+<p lang="en-GB" align="left" style="margin-bottom: 0in">milliseconds ms(...);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">microseconds us(...);
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ms % us; // microseconds
+<p lang="en-GB" align="left" style="margin-bottom: 0in">us % ms; // microseconds
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ms % 5; // milliseconds
+<p lang="en-GB" align="left" style="margin-bottom: 0in">5 % ms; // does not compile
+<p lang="en-GB" align="left"><br>
+<td>
+<p align="left" style="margin-bottom: 0in">Add:
+<p align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class Rep, class Period =
+ratio<1>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class duration {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p align="left" style="margin-bottom: 0in">...
+<p align="left" style="margin-bottom: 0in">duration&
+operator%(const rep&);
+<p align="left" style="margin-bottom: 0in">duration&
+operator%(const duration&);
+<p align="left" style="margin-bottom: 0in">..
+<p align="left" style="margin-bottom: 0in">};
+<p align="left" style="margin-bottom: 0in"><br>
+<p align="left" style="margin-bottom: 0in">template <class Rep1,
+class Period,
+<p align="left" style="margin-bottom: 0in">class Rep2>
+<p align="left" style="margin-bottom: 0in">duration<typename
+common_type<
+<p align="left" style="margin-bottom: 0in">Rep1, Rep2>::type,
+Period>
+<p align="left" style="margin-bottom: 0in">operator%(const
+duration<Rep1, Period>& d, const Rep2& s);
+<p align="left" style="margin-bottom: 0in"><br>
+<p align="left" style="margin-bottom: 0in">template <class Rep1,
+class Period1,
+<p align="left" style="margin-bottom: 0in">class Rep2, class
+Period2>
+<p align="left" style="margin-bottom: 0in">typename
common_type<duration<Rep1, Period1>, duration<Rep2,
-Period2>>::type</font>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt" face="Arial, sans-serif">operator%(const
+Period2>>::type
+<p align="left" style="margin-bottom: 0in">operator%(const
duration<Rep1, Period1>& lhs, const duration<Rep2,
-Period2>& rhs);</font>
+Period2>& rhs);
<p align="left"><br>
<td>
<p align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 82</font>
+<p>US 82
<td>
-<p><font size="2" style="font-size: 9pt">20.9.5.3</font>
+<p>20.9.5.3
<td>
-<p><font size="2" style="font-size: 9pt">after ¶ 1</font>
+<p>after ¶ 1
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><font size="2" style="font-size: 9pt">The code synopsis has a
-minor alignment error.</font>
+<p>The code synopsis has a
+minor alignment error.
<td>
-<p><font size="2" style="font-size: 9pt">Align “rep”
-with the other symbols defined in this synopsis.</font>
+<p>Align “rep”
+with the other symbols defined in this synopsis.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-216</font>
+<p>UK<br>
+216
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">21</font>
+<p align="justify">21
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">All the
+<p align="left">All the
containers use concepts for their iterator usage, exect for
-basic_string. This needs fixing.</font>
+basic_string. This needs fixing.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Use concepts
-for iterator template parameters throughout the chapter.</font>
+<p align="left">Use concepts
+for iterator template parameters throughout the chapter.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 46</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">21.2, 21.3</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">te</font>
-<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">The basic_string does not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The "class Alloc" is changed to
-"Allocator Alloc".</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The "class InputIterator" is changed to
-"InputIterator Iter".</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3, basic_string:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator</u> Alloc =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_string;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const charT* lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const charT* lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(charT lhs, const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(charT lhs,
+<p>JP 46
+<td>
+<p lang="en-GB" align="left">21.2, 21.3
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">The basic_string does not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The "class Alloc" is changed to
+"Allocator Alloc".
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The "class InputIterator" is changed to
+"InputIterator Iter".
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3, basic_string:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator</u> Alloc =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_string;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const charT* lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const charT* lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(charT lhs, const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(charT lhs,
basic_string<charT,traits,<u>Alloc</u>>&&
-rhs);</font>
+rhs);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator+(const
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(const
basic_string<charT,traits,<u>Alloc</u>>& lhs, charT
-rhs);</font>
+rhs);
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
-lhs, charT rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(const charT* lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator==(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(const charT* lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator!=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator< (const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator< (const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator< (const charT*
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator> (const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator> (const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator> (const charT*
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator<=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator<=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator<=(const charT*
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator>=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator>=(const
-basic_string<charT,traits,<u>Alloc</u>>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const charT* rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">bool operator>=(const charT*
-lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.8.8: swap</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void
-swap(basic_string<charT,traits,Alloc>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,Alloc>&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void
-swap(basic_string<charT,traits,Alloc>&& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,Alloc>&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void
-swap(basic_string<charT,traits,Alloc>& lhs,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,Alloc>&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.8.9: inserters and
-extractors</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_istream<charT,traits>&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">operator>>(basic_istream<charT,traits>&&
-is,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&
-str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_ostream<charT,
-traits>&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">operator<<(basic_ostream<charT,
-traits>&& os,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_istream<charT,traits>&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">getline(basic_istream<charT,traits>&&
-is,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&
-str,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">charT delim);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits,
-<u>Allocator</u> <u>Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_istream<charT,traits>&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">getline(basic_istream<charT,traits>&&
-is,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>&
-str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3 Class template
-basic_string</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator Alloc</u> =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_string {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// types:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef traits traits_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::char_type
-value_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>Alloc</u>
-allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename <u>Alloc</u>::size_type
-size_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename
-<u>Alloc</u>::difference_type difference_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename <u>Alloc</u>::reference
-reference;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename
-<u>Alloc</u>::const_reference const_reference;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename <u>Alloc</u>::pointer
-pointer;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename
-<u>Alloc</u>::const_pointer const_pointer;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef implementation-defined iterator;
-// See 23.1</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef implementation-defined
-const_iterator; // See 23.1</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef
-std::reverse_iterator<iterator> reverse_iterator;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator+(basic_string<charT,traits,<u>Alloc</u>>&&
+lhs, charT rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(const charT* lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator==(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(const charT* lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator!=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator< (const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator< (const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator< (const charT*
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator> (const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator> (const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator> (const charT*
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator<=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator<=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator<=(const charT*
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator>=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator>=(const
+basic_string<charT,traits,<u>Alloc</u>>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const charT* rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">bool operator>=(const charT*
+lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.8.8: swap
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void
+swap(basic_string<charT,traits,Alloc>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,Alloc>&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void
+swap(basic_string<charT,traits,Alloc>&& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,Alloc>&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void
+swap(basic_string<charT,traits,Alloc>& lhs,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,Alloc>&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.8.9: inserters and
+extractors
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istream<charT,traits>&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator>>(basic_istream<charT,traits>&&
+is,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&
+str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostream<charT,
+traits>&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">operator<<(basic_ostream<charT,
+traits>&& os,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istream<charT,traits>&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">getline(basic_istream<charT,traits>&&
+is,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&
+str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">charT delim);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits,
+<u>Allocator</u> <u>Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istream<charT,traits>&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">getline(basic_istream<charT,traits>&&
+is,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>&
+str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3 Class template
+basic_string
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator Alloc</u> =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_string {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// types:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef traits traits_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::char_type
+value_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>Alloc</u>
+allocator_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename <u>Alloc</u>::size_type
+size_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename
+<u>Alloc</u>::difference_type difference_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename <u>Alloc</u>::reference
+reference;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename
+<u>Alloc</u>::const_reference const_reference;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename <u>Alloc</u>::pointer
+pointer;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename
+<u>Alloc</u>::const_pointer const_pointer;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef implementation-defined iterator;
+// See 23.1
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef implementation-defined
+const_iterator; // See 23.1
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef
+std::reverse_iterator<iterator> reverse_iterator;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef
std::reverse_iterator<const_iterator>
-const_reverse_iterator;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">static const size_type npos = -1;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.2 construct/copy/destroy:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_string(const
-<u>Alloc</u>& a = <u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(const basic_string&
-str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(basic_string&&
-str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(const basic_string&
-str, size_type pos, size_type n = npos,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const <u>Alloc</u>& a =
-<u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(const charT* s,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n, const <u>Alloc</u>& a =
-<u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(const charT* s, const
-<u>Alloc</u>& a = <u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(size_type n, charT c, const
-<u>Alloc</u>& a = <u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>InputIterator</u>
-<u>Iter</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(<u>Iter</u> begin,
-<u>Iter</u> end,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const <u>Alloc</u>& a =
-<u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string(initializer_list<charT>, const
-<u>Alloc</u>& = <u>Alloc</u>());</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(const basic_string&,
-const <u>Alloc</u>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string(basic_string&&,
-const <u>Alloc</u>&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">~basic_string();</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& operator=(const
-basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string&
-operator=(basic_string&& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& operator=(const charT*
-s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& operator=(charT
-c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string&
-operator=(initializer_list<charT>);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.3 iterators:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.4 capacity:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.5 element access:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.6 modifiers:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(const
-basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(const
-basic_string& str, size_type pos,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(const charT* s,
-size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(const charT*
-s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(size_type n,
-charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>InputIterator</u>
-<u>Iter</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& append(<u>Iter</u>
-first, <u>Iter</u> last);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string&
-append(initializer_list<charT>);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void push_back(charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(const
-basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string&
-assign(basic_string&& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(const
-basic_string& str, size_type pos,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(const charT* s,
-size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(const charT*
-s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(size_type n,
-charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>InputIterator</u>
-<u>Iter</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& assign(<u>Iter</u>
-first, <u>Iter</u> last);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string&
-assign(initializer_list<charT>);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& insert(size_type pos1,
-const basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& insert(size_type pos1,
-const basic_string& str,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type pos2, size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& insert(size_type pos,
-const charT* s, size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& insert(size_type pos,
-const charT* s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& insert(size_type pos,
-size_type n, charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">iterator insert(const_iterator p, charT
-c);</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>InputIterator</u>
-<u>Iter</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void insert(const_iterator p,
-<u>Iter</u> first, <u>Iter</u> last);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void insert(const_iterator p,
-initializer_list<charT>);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(size_type
-pos1, size_type n1,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(size_type
-pos1, size_type n1,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const basic_string& str,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type pos2, size_type n2);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(size_type pos,
-size_type n1, const charT* s,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n2);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(size_type pos,
-size_type n1, const charT* s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(size_type pos,
-size_type n1, size_type n2,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator i1,
-iterator i2,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const basic_string& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator i1,
-iterator i2, const charT* s,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator i1,
-iterator i2, const charT* s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator i1,
-iterator i2,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">size_type n, charT c);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<<u>InputIterator</u>
-<u>Iter</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator i1,
-iterator i2,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Iter</u> j1, <u>Iter</u> j2);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_string& replace(iterator,
-iterator, initializer_list<charT>);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 21.3.7 string operations:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator</u> <u>Alloc></u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct
-constructible_with_allocator_suffix<</font>
-<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">basic_string<charT, traits, <u>Alloc</u>>
-> : true_type { };</font>
+const_reverse_iterator;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">static const size_type npos = -1;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.2 construct/copy/destroy:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_string(const
+<u>Alloc</u>& a = <u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(const basic_string&
+str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(basic_string&&
+str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(const basic_string&
+str, size_type pos, size_type n = npos,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const <u>Alloc</u>& a =
+<u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(const charT* s,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n, const <u>Alloc</u>& a =
+<u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(const charT* s, const
+<u>Alloc</u>& a = <u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(size_type n, charT c, const
+<u>Alloc</u>& a = <u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>InputIterator</u>
+<u>Iter</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(<u>Iter</u> begin,
+<u>Iter</u> end,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const <u>Alloc</u>& a =
+<u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(initializer_list<charT>, const
+<u>Alloc</u>& = <u>Alloc</u>());
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(const basic_string&,
+const <u>Alloc</u>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string(basic_string&&,
+const <u>Alloc</u>&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">~basic_string();
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& operator=(const
+basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string&
+operator=(basic_string&& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& operator=(const charT*
+s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& operator=(charT
+c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string&
+operator=(initializer_list<charT>);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.3 iterators:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.4 capacity:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.5 element access:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.6 modifiers:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(const
+basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(const
+basic_string& str, size_type pos,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(const charT* s,
+size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(const charT*
+s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(size_type n,
+charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>InputIterator</u>
+<u>Iter</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& append(<u>Iter</u>
+first, <u>Iter</u> last);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string&
+append(initializer_list<charT>);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void push_back(charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(const
+basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string&
+assign(basic_string&& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(const
+basic_string& str, size_type pos,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(const charT* s,
+size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(const charT*
+s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(size_type n,
+charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>InputIterator</u>
+<u>Iter</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& assign(<u>Iter</u>
+first, <u>Iter</u> last);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string&
+assign(initializer_list<charT>);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& insert(size_type pos1,
+const basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& insert(size_type pos1,
+const basic_string& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type pos2, size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& insert(size_type pos,
+const charT* s, size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& insert(size_type pos,
+const charT* s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& insert(size_type pos,
+size_type n, charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">iterator insert(const_iterator p, charT
+c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void insert(const_iterator p, size_type
+n, charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>InputIterator</u>
+<u>Iter</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void insert(const_iterator p,
+<u>Iter</u> first, <u>Iter</u> last);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void insert(const_iterator p,
+initializer_list<charT>);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(size_type
+pos1, size_type n1,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(size_type
+pos1, size_type n1,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const basic_string& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type pos2, size_type n2);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(size_type pos,
+size_type n1, const charT* s,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n2);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(size_type pos,
+size_type n1, const charT* s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(size_type pos,
+size_type n1, size_type n2,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator i1,
+iterator i2,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const basic_string& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator i1,
+iterator i2, const charT* s,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator i1,
+iterator i2, const charT* s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator i1,
+iterator i2,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">size_type n, charT c);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<<u>InputIterator</u>
+<u>Iter</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator i1,
+iterator i2,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Iter</u> j1, <u>Iter</u> j2);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string& replace(iterator,
+iterator, initializer_list<charT>);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 21.3.7 string operations:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator</u> <u>Alloc></u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct
+constructible_with_allocator_suffix<
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">basic_string<charT, traits, <u>Alloc</u>>
+> : true_type { };
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 47</font>
+<p>JP 47
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">21.3</font>
+<p lang="en-GB" align="left">21.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo. Missing ”>”</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-Allocator Alloc</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo. Missing ”>”
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+Allocator Alloc
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-Allocator Alloc></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+Allocator Alloc>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Correct typo.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Correct typo.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 48</font>
+<p>JP 48
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">21.3</font>
+<p lang="en-GB" align="left">21.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">char_traits does not use concept.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">For example, create CharTraits concept
-and change as follows:</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">char_traits does not use concept.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">For example, create CharTraits concept
+and change as follows:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class charT,
-<u>CharTraits</u> traits = char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class Allocator = allocator<charT>
-></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class charT,
+<u>CharTraits</u> traits = char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class Allocator = allocator<charT>
+>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">class basic_string {</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">class basic_string {
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add a concept for char_traits.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add a concept for char_traits.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-217</font>
+<p>UK<br>
+217
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">21.3</font>
+<p align="justify">21.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">basic_string
+<p align="left">basic_string
refers to constructible_with_allocator_suffix, which I thought was
-removed?</font>
+removed?
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Remove the lines: template <class charT, class
+<p align="left" style="margin-bottom: 0in">Remove the lines: template <class charT, class
traits, class Alloc struct constructible_with_allocator_suffix<
basic_string<charT, traits, Alloc> > : true_type {
-};</font>
+};
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-218</font>
+<p>UK<br>
+218
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">21.3.1</font>
+<p align="justify">21.3.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The identity "&*(s.begin() + n) ==
+<p align="left" style="margin-bottom: 0in">The identity "&*(s.begin() + n) ==
&*s.begin() + n" relies on operator& doing the "right
thing", which (AFAICS) there is no requirement for. See my comment
under clauses "23.2.1, 23.2.6" (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>
+because it is in a different chapter.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">See my
-recommendations for "23.2.1, 23.2.6".</font>
+<p align="left">See my
+recommendations for "23.2.1, 23.2.6".
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-219</font>
+<p>UK<br>
+219
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">21.3.6.6
-[string.replace]</font>
+<p align="justify">21.3.6.6
+[string.replace]
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">11</font>
+<p align="justify">11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Effects
+<p align="left">Effects
refers to "whose first begin() - i1 elements" However i1 is greater
-than begin()...</font>
+than begin()...
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Effects
-refers to "whose first i1 - begin() elements"</font>
+<p align="left">Effects
+refers to "whose first i1 - begin() elements"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-220</font>
+<p>UK<br>
+220
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">21.3.8.9</font>
+<p align="justify">21.3.8.9
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The operator<< for basic_string takes the
+<p align="left" style="margin-bottom: 0in">The operator<< 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>
+(20.7.13.2.8), complex (26.3.6) and sub_match (28.4)
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Use the same
+<p align="left">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>
+TR1, and new classes, did not receive an 'R-value' update.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 33</font>
+<p>FR 33
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">22.1.1 [locale]</font>
+<p>22.1.1 [locale]
<td>
-<p><font size="2" style="font-size: 9pt">3</font>
+<p>3
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">ios_base::iostate err = 0;</font>
+<p style="margin-bottom: 0in">ios_base::iostate err = 0;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">iostate is a bitmask type and so could be
-an enumeration. Probably using</font>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">goodbit is the solution.</font>
+<p style="margin-bottom: 0in">iostate is a bitmask type and so could be
+an enumeration. Probably using
+<p>goodbit is the solution.
<td>
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 49</font>
+<p>JP 49
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">22.1.3.2.2</font>
+<p lang="en-GB" align="left">22.1.3.2.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">codecvt does not use concept. For
-example, create CodeConvert concept and change as follows.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">template<<u>CodeConvert</u> Codecvt,
-class Elem = wchar_t> class wstring_convert {</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">codecvt does not use concept. For
+example, create CodeConvert concept and change as follows.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">template<<u>CodeConvert</u> Codecvt,
+class Elem = wchar_t> class wstring_convert {
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add a concept for codecvt.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add a concept for codecvt.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 50</font>
+<p>JP 50
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">22.1.3.2.2</font>
+<p lang="en-GB" align="left">22.1.3.2.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add custom allocator parameter to
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add custom allocator parameter to
wstring_convert, since we cannot allocate memory for strings from a
-custom allocator.</font>
+custom allocator.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class Codecvt, class Elem =
-wchar_t> class wstring_convert {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef std::basic_string<char>
-byte_string;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef std::basic_string<Elem>
-wide_string;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style=
-"text-indent: 0.06in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class Codecvt, class Elem =
-wchar_t<u>,</u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator WideAllocator =
-allocator<Elem>,</u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator ByteAllocator =
-allocator<char></u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class wstring_convert {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef std::basic_string<char,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class Codecvt, class Elem =
+wchar_t> class wstring_convert {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef std::basic_string<char>
+byte_string;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef std::basic_string<Elem>
+wide_string;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style=
+"text-indent: 0.06in; margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class Codecvt, class Elem =
+wchar_t<u>,</u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator WideAllocator =
+allocator<Elem>,</u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator ByteAllocator =
+allocator<char></u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class wstring_convert {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef std::basic_string<char,
<u>char_traits<char>, ByteAllocator</u>>
-byte_string;</font>
+byte_string;
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">typedef std::basic_string<Elem,
+"margin-top: 0.04in; margin-bottom: 0.04in">typedef std::basic_string<Elem,
<u>char_traits<Elem>, WideAllocator</u>>
-wide_string;</font>
+wide_string;
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 4</font>
+<p>FI 4
<td>
<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><font size="2" style="font-size: 9pt">22.2.1.4.2</font>
+22.2.1.4.1
+<p>22.2.1.4.2
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p><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><tt>to_end and to_limit are both used. Only one is
+needed.</tt>
<td>
-<p><font size="2" style="font-size: 9pt">Change to_limit to
-to_end.</font>
+<p>Change to_limit to
+to_end.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 5</font>
+<p>FI 5
<td>
-<p><font size="2" style="font-size: 9pt"><tt><font face=
-"Arial, sans-serif">22.2.1.4.2</font></tt></font>
+<p><tt>22.2.1.4.2</tt>
<td>
-<p><font size="2" style="font-size: 9pt">#3</font>
+<p>#3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
<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
+<tt>[ Note: As a result of operations on state, it
can return ok or partial and set next == from and to_next != to.
-—end note ]</font></tt><br></font><br>
+—end note ]</tt><br><br>
<br>
<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">"next" should be
-"from_next."</font></tt></font>
+<tt>"next" should be
+"from_next."</tt>
<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><font size="2" style="font-size: 9pt"><tt><font face=
-"Arial, sans-serif">Reasoning: When reading one element of
+<tt>Also, the sentence applies to all the examples,
+including do_in and do_out.</tt>
+<p><tt>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>
+is partial.</tt>
<td>
-<p><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. —end</font></tt><br>
-<tt><font face="Arial, sans-serif">note ]</font></tt></font>
+<p><tt>[ Note: As a result of operations on state,
+do_in and do_out can return</tt><br>
+<tt>ok or partial and set from_next
+== from and/or to_next != to. —end</tt><br>
+<tt>note ]</tt>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 6</font>
+<p>FI 6
<td>
<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><font size="2" style="font-size: 9pt">See also 22.2.1.4
-(1,2,3)</font>
+22.2.1.5
+<p>See also 22.2.1.4
+(1,2,3)
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+<tt>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
@@ -12575,365 +10871,272 @@
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>
+known.</tt>
<p><br>
<td>
-<p><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><tt>There should be a built-in means to find a
+codecvt with a pair of character set names.</tt>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FI 7</font>
+<p>FI 7
<td>
-<p><font size="2" style="font-size: 9pt">22.2.1.4</font>
+<p>22.2.1.4
<td>
-<p><font size="2" style="font-size: 9pt">1,2,3</font>
+<p>1,2,3
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">The word "codeset" is used,
+The word "codeset" is used,
whereas the word "character set" 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>
+be used (or always both together).
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Change "codeset" to
-"character set."</font>
+<p>Change "codeset" to
+"character set."
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 51</font>
+<p>JP 51
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">22.2.5.1.1</font>
+<p lang="en-GB" align="left">22.2.5.1.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">7<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">A parameter `end’ should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in">A parameter `end’ should be
`fmtend’.<br>
-get() function had two `end’ parameters at N2321.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">iter_type get (iter_type s, iter_type
+get() function had two `end’ parameters at N2321.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">iter_type get (iter_type s, iter_type
end, ios_base& f, ios_base::iostate& err, tm* t, const
-char_type* fmt, const char_type *end) const;</font>
+char_type* fmt, const char_type *end) const;
<p lang="en-GB" 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
+"margin-top: 0.04in; margin-bottom: 0.04in">The function prototype of get() has been corrected
at N2800, but a Requires statement still refers `end’
-parameter.</font>
+parameter.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Requires: [fmt,end) shall be a valid
-range.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Requires: [fmt,end) shall be a valid
+range.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in"><br>
<br>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Requires: [fmt,fmtend) shall be a valid
-range.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Requires: [fmt,fmtend) shall be a valid
+range.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 52</font>
+<p>JP 52
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">22.2.5.1, 22.2.5.2, 22.2.6.1</font>
+<p lang="en-GB" align="left">22.2.5.1, 22.2.5.2, 22.2.6.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">InputIterator does not use
-concept.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">InputIterator does not use
+concept.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">22.2.5.1</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">22.2.5.1
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class
-InputIterator = istreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_get : public locale::facet,
-public time_base {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef InputIterator iter_type;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class
+InputIterator = istreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_get : public locale::facet,
+public time_base {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef InputIterator iter_type;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
<u>InputIterator InputIter</u> = istreambuf_iterator<charT>
-></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_get : public locale::facet,
-public time_base {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>InputIter</u>
-iter_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">22.2.5.2</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class
-InputIterator = istreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_get_byname : public
-time_get<charT, InputIterator> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef time_base::dateorder
-dateorder;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef InputIterator iter_type;</font>
+>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_get : public locale::facet,
+public time_base {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>InputIter</u>
+iter_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">22.2.5.2
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class
+InputIterator = istreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_get_byname : public
+time_get<charT, InputIterator> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef time_base::dateorder
+dateorder;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef InputIterator iter_type;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
<u>InputIterator InputIter</u> = istreambuf_iterator<charT>
-></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_get_byname : public
-time_get<charT, InputIter> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef time_base::dateorder
-dateorder;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>InputIter</u>
-iter_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">22.2.6.1</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class InputIterator =
-istreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class money_get : public locale::facet
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef InputIterator iter_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>InputIterator InputIter</u> =
-istreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class money_get : public locale::facet
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>InputIter</u>
-iter_type;</font>
+>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_get_byname : public
+time_get<charT, InputIter> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef time_base::dateorder
+dateorder;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>InputIter</u>
+iter_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">22.2.6.1
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class InputIterator =
+istreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class money_get : public locale::facet
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef InputIterator iter_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>InputIterator InputIter</u> =
+istreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class money_get : public locale::facet
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>InputIter</u>
+iter_type;
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 53</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">22.2.5.3 , 22.2.5.4</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">te</font>
-<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">OutputIterator does not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">22.2.5.3</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class
-OutputIterator = ostreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_put : public locale::facet
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef OutputIterator iter_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt" face="Arial, sans-serif"><span lang=
-"zxx"> </span></font><font size="2" style=
-"font-size: 9pt">should be</font>
+<p>JP 53
+<td>
+<p lang="en-GB" align="left">22.2.5.3 , 22.2.5.4
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">OutputIterator does not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">22.2.5.3
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class
+OutputIterator = ostreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_put : public locale::facet
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef OutputIterator iter_type;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><span lang=
+"zxx"> </span>should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
<u>OutputIterator OutputIter</u> = ostreambuf_iterator<charT>
-></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_put : public locale::facet
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>OutputIter</u>
-iter_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">22.2.5.4</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class
-OutputIterator = ostreambuf_iterator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_put_byname : public
-time_put<charT, OutputIterator></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef OutputIterator iter_type;</font>
+>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_put : public locale::facet
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>OutputIter</u>
+iter_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">22.2.5.4
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class
+OutputIterator = ostreambuf_iterator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_put_byname : public
+time_put<charT, OutputIterator>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef OutputIterator iter_type;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT,
<u>OutputIterator OutputIter</u> = ostreambuf_iterator<charT>
-></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class time_put_byname : public
-time_put<charT, OutputIter></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">typedef <u>OutputIter</u> iter_type;</font>
+>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class time_put_byname : public
+time_put<charT, OutputIter>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left">typedef <u>OutputIter</u> iter_type;
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 54</font>
+<p>JP 54
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23</font>
+<p lang="en-GB" align="left">23
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">2<sup>nd</sup><font size=
+"2" style="font-size: 11pt"> paragraph, Table 79</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">There is not <forward_list> in
-Table 79.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">There is not <forward_list> in
+Table 79.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add <forward_list> between
-<deque> and <list>.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add <forward_list> between
+<deque> and <list>.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-221</font>
+<p>UK<br>
+221
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">23</font>
+<p align="justify">23
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-79</font>
+<p align="justify">Table
+79
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The table is
-missing the new <forward_list> header.</font>
+<p align="left">The table is
+missing the new <forward_list> header.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add <forward_list> to the table for sequence
+<p align="left" style="margin-bottom: 0in">Add <forward_list> to the table for sequence
containers. Alternative (technical) solution might be to merge
-<forward_list> into <list>.</font>
+<forward_list> into <list>.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-222</font>
+<p>UK<br>
+222
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">23</font>
+<p align="justify">23
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is not clear what purpose the Requirement
+<p align="left" style="margin-bottom: 0in">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
@@ -12943,10 +11146,10 @@
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>
+design decision?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify all
+<p align="left">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
@@ -12954,404 +11157,356 @@
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>
+efficiently.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 55</font>
+<p>JP 55
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p lang="en-GB" align="left">23.1.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">3<sup>rd</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 4<sup>th</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">It seems that “the
+<p lang="en-GB" align="left" style="margin-top: 0.04in">It seems that “the
MinimalAllocator concep” is the typo of “the
-MinimalAllocator concept”.</font>
+MinimalAllocator concept”.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">Change to … models the MinimalAllocator
-concep</font><font size="2" style="font-size: 9pt" color=
-"#339966">t</font><font size="2" style=
-"font-size: 9pt">.</font></font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Change to … models the MinimalAllocator
+concep<font color=
+"#339966">t</font><font size=
+"2" style="font-size: 11pt">.</font>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-223</font>
+<p>UK<br>
+223
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The library does not define the MinimalAllocator
+<p align="left" style="margin-bottom: 0in">The library does not define the MinimalAllocator
or ScopedAllocator concepts, these were part of an earlier
-Allocators proposal that was rejected.</font>
+Allocators proposal that was rejected.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the
+<p align="left">Remove the
references to MinimalAllocator and ScopedAllocator, or add
-definitions for these concepts to clause 20.7.</font>
+definitions for these concepts to clause 20.7.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-224</font>
+<p>UK<br>
+224
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">This
paragraph implicitly requires all containers in clause 23 to
-support allocators, which std::array does not.</font>
+support allocators, which std::array does not.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add an 'unless otherwise specified' rider
+<p align="left" style="margin-bottom: 0in">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>
+tuple.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-225</font>
+<p>UK<br>
+225
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-81</font>
+<p align="justify">Table
+81
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Inconsistent words used to say the same thing.
+<p align="left" style="margin-bottom: 0in">Inconsistent words used to say the same thing.
Table 80 describes iterator/const_iterator typedef as returning an
"iterator type whose value type is T". Table 81 expresses the same
idea as an "iterator type pointing to T". Express identical ideas
with the same words to avoid accidentally introducing subtlety and
-confusion</font>
+confusion
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change return
+<p align="left">Change return
types for X::(const)_reverse_iterator to say "iterator type whose
-value type is (const) T".</font>
+value type is (const) T".
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-226</font>
+<p>UK<br>
+226
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">10</font>
+<p align="justify">10
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt"><array> must be added to this list. In
+<p align="left" style="margin-bottom: 0in"><array> 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: — no
-swap() function throws an exception.</font>
+swap() function throws an exception.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">If
+<p align="left">If
<array> remains a container, this will have to also reference
array, which will then have to say which of these points it
-satisfies.</font>
+satisfies.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-227</font>
+<p>UK<br>
+227
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-80</font>
+<p align="justify">Table
+80
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
post-condition for a = rv uses the word “construction”
-when it means “assignment”</font>
+when it means “assignment”
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace the word “construction” with
-the word “assignment”</font>
+<p align="left" style="margin-bottom: 0in">Replace the word “construction” with
+the word “assignment”
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-228</font>
+<p>UK<br>
+228
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Line 4 contains a spelling mistake in the fragment
-"MinimalAllocator concep."</font>
+<p align="left" style="margin-bottom: 0in">Line 4 contains a spelling mistake in the fragment
+"MinimalAllocator concep."
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
-"concep" with "concept"</font>
+<p align="left">Replace
+"concep" with "concept"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-229</font>
+<p>UK<br>
+229
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.1</font>
+<p align="justify">23.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The fragment
+<p align="left">The fragment
"A container may directly call constructors" is not technically
-correct as constructors are not callable.</font>
+correct as constructors are not callable.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace "A container may directly call
+<p align="left" style="margin-bottom: 0in">Replace "A container may directly call
constructors and destructors for its stored objects" with something
similar to "A container may directly construct its stored objects
-and call destructors for its stored objects"</font>
+and call destructors for its stored objects"
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-230</font>
+<p>UK<br>
+230
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.2</font>
+<p align="justify">23.1.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in">“<font size="2"
-style="font-size: 9pt">implementations shall consider the following
+<p align="left" style="margin-bottom: 0in">“implementations shall consider the following
functions to be const” - what does this mean? I don't
understand what it means by implementations considering the
functions to be const – surely they are either declared const
-or not?</font>
+or not?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clarify what
+<p align="left">Clarify what
is meant and what requirements an implementation must
-satisfy.</font>
+satisfy.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 56</font>
+<p>JP 56
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p lang="en-GB" align="left">23.1.3
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">12<sup>th</sup><font size="2" style=
+"font-size: 11pt"> paragraph, Table 84</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">`array’ is unstated in Table 84 -
-Optional sequence container operations.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">`array’ is unstated in Table 84 -
+Optional sequence container operations.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add `array’ to Container field for
-the following Expression.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add `array’ to Container field for
+the following Expression.
<p lang="en-GB" align="left" style=
-"text-indent: 0.15in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">a.front()</font>
+"text-indent: 0.15in; margin-bottom: 0in">a.front()
<p lang="en-GB" align="left" style=
-"text-indent: 0.15in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">a.back()</font>
+"text-indent: 0.15in; margin-bottom: 0in">a.back()
<p lang="en-GB" align="left" style=
-"text-indent: 0.15in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">a[n]</font>
+"text-indent: 0.15in; margin-bottom: 0in">a[n]
<p lang="en-GB" align="left" style=
-"text-indent: 0.15in; margin-top: 0.04in"><font size="2" style=
-"font-size: 9pt">a.at(n)</font>
+"text-indent: 0.15in; margin-top: 0.04in">a.at(n)
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-231</font>
+<p>UK<br>
+231
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">9-11</font>
+<p align="justify">9-11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">These paragraphs are redundant now that Concepts
+<p align="left" style="margin-bottom: 0in">These paragraphs are redundant now that Concepts
define what it means to be an Iterator and guide overload
-resolution accordingly.</font>
+resolution accordingly.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike
+<p align="left">Strike
23.1.3p9-11. Make sure std::basic_string has constraints similar to
-std::vector to meet this old guarantee.</font>
+std::vector to meet this old guarantee.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-232</font>
+<p>UK<br>
+232
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-84</font>
+<p align="justify">Table
+84
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">match_results may follow the requirements but is
+not listed a general purpose library container.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove
-reference to match_results against a[n] operation</font>
+<p align="left">Remove
+reference to match_results against a[n] operation
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-233</font>
+<p>UK<br>
+233
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-84</font>
+<p align="justify">Table
+84
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
-references to the new containers.</font>
+<p align="left">Add
+references to the new containers.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add reference to array to the rows for: a.front(),
+<p align="left" style="margin-bottom: 0in">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>
+the row for: a.at(n).
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-234</font>
+<p>UK<br>
+234
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Table
-84</font>
+<p align="justify">Table
+84
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Ther reference to iterator in semantics for back
+<p align="left" style="margin-bottom: 0in">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>
+standard.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
+<p align="left">Replace
iterator with auto in semantics for back: { auto tmp = a.end();
---tmp; return *tmp; }</font>
+--tmp; return *tmp; }
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-235</font>
+<p>UK<br>
+235
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left">“<font size="2" style="font-size: 9pt">The
+<p align="left">“The
library provides three basic kinds of sequence containers: vector,
list, and deque” - text appears to be out of date re addition
-of array and forward_list</font>
+of array and forward_list
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Change the text to read: “The library
+<p align="left" style="margin-bottom: 0in">Change the text to read: “The library
provides five basic kinds of sequence containers: array, deque,
-forward_list, list and vector”.</font>
+forward_list, list and vector”.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-236</font>
+<p>UK<br>
+236
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">[ I've moved (1) into a separate comment because I
+<p align="left" style="margin-bottom: 0in">[ 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) “vector is the type of
sequence container that should be used by default” -- As I
@@ -13361,110 +11516,102 @@
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>
+containers and should not be normative text
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove this
-paragraph</font>
+<p align="left">Remove this
+paragraph
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-237</font>
+<p>UK<br>
+237
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.3</font>
+<p align="justify">23.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">vector, list,
+<p align="left">vector, list,
and deque offer the programmer different complexity trade-offs and
should be used accordingly - this ignores array and
-forward_list</font>
+forward_list
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Modify the text to read: "array, deque,
+<p align="left" style="margin-bottom: 0in">Modify the text to read: "array, deque,
forward_list, list and vector offer the programmer different
-complexity trade-offs and should be used accordingly"</font>
+complexity trade-offs and should be used accordingly"
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-238</font>
+<p>UK<br>
+238
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.4</font>
+<p align="justify">23.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Leaving it unspecified whether or not iterator and
+<p align="left" style="margin-bottom: 0in">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>
+const_iterator, add a note to that effect.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
+<p align="left">Change
'unspecified' to 'implementation defined'. Add "[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>
+note]
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-239</font>
+<p>UK<br>
+239
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.4</font>
+<p align="justify">23.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">85</font>
+<p align="justify">85
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">It is not
+<p align="left">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>
+containers.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add below a.erase(q), a.extract(q), with the
+<p align="left" style="margin-bottom: 0in">Add below a.erase(q), a.extract(q), with the
following notation: a.extract(q), Return type pair<key,
iterator> 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>
+exists,returns a.end().
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-240</font>
+<p>UK<br>
+240
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.1.6.1</font>
+<p align="justify">23.1.6.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The axiom EmplacePushEquivalence should be
+<p align="left" style="margin-bottom: 0in">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
@@ -13472,165 +11619,147 @@
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>
+rather than push_front/push_back,
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove the *
+<p align="left">Remove the *
to deference the returned iterator either side of the == in the
EmplacePushEquivalence axiom, rename the axiom
EmplacementInsertionEquivalence : requires
InsertionContainer<C> && Constructible<value_type,
Args...> axiom EmplacementInsertionEquivalence(C c,
const_iterator position, Args... args) { emplace(c, position,
-args...) == insert(c, position, value_type(args...)); }</font>
+args...) == insert(c, position, value_type(args...)); }
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 57</font>
+<p>JP 57
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.1.6.3</font>
+<p lang="en-GB" align="left">23.1.6.3
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">1<sup>st</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 4<sup>th</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo, duplicated "to"</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">"<u>to to</u> model insertion container
-concepts."</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo, duplicated "to"
+<p lang="en-GB" align="left" style="margin-top: 0.04in">"<u>to to</u> model insertion container
+concepts."
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Remove one.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Remove one.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-241</font>
+<p>UK<br>
+241
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.2.1</font>
+<p align="justify">23.2.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">std::array does not have an allocator, so need to
+document an exception to the requirements of 23.1.1p3
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">add exception
-to 23.1.1p3</font>
+<p align="left">add exception
+to 23.1.1p3
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-242</font>
+<p>UK<br>
+242
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.2.1</font>
+<p align="justify">23.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">std::
-qualification no longer needed for reverse_iterator.</font>
+<p align="left">std::
+qualification no longer needed for reverse_iterator.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">remove std:: qualification from
+<p align="left" style="margin-bottom: 0in">remove std:: qualification from
std::reverse_iterator<iterator> and
-std::reverse_iterator<const_iterator></font>
+std::reverse_iterator<const_iterator>
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-243</font>
+<p>UK<br>
+243
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.2.1</font>
+<p align="justify">23.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Most containers, and types in general have 3
+<p align="left" style="margin-bottom: 0in">Most containers, and types in general have 3
swaps: swap(T&, T&) swap(T&&, T&) swap(T&,
-T&&) But array only has swap(T&, T&).</font>
+T&&) But array only has swap(T&, T&).
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">add the other
-two swaps.</font>
+<p align="left">add the other
+two swaps.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-244</font>
+<p>UK<br>
+244
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">23.2.1,
-23.2.6</font>
+<p align="justify">23.2.1,
+23.2.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The validity of the expression &a[n] ==
+<p align="left" style="margin-bottom: 0in">The validity of the expression &a[n] ==
&a[0] + n is contingent on operator& doing the “right
thing” (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>
+file a separate comment there and cross-reference).
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Define a
+<p align="left">Define a
ContiguousStrorage and apply it to vector,array and string. The
Concept (supplied by Alisdair M) looks like this: Concept<
typename C > ContiguousStrorage { requires Container<C>;
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>
+begin(c)); } };
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-245</font>
+<p>UK<br>
+245
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.2.3</font>
+<p align="justify">23.2.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The predicate
+<p align="left">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>
+would render this one redundant.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add CopyConstructible requirement to the following
+<p align="left" style="margin-bottom: 0in">Add CopyConstructible requirement to the following
signatures: template <Predicate<auto, T> Pred> requires
CopyConstructible<Pred> void remove_if(Pred pred); template
<EquivalenceRelation<auto, T> BinaryPredicate> requires
@@ -13640,97 +11769,74 @@
CopyConstructible<Compare> void
merge(forward_list<T,Alloc>&& x, Compare comp);
template <StrictWeakOrder<auto, T> Compare> requires
-CopyConstructible<Compare> void sort(Compare comp);</font>
+CopyConstructible<Compare> void sort(Compare comp);
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 58</font>
+<p>JP 58
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.2.3.2</font>
+<p lang="en-GB" align="left">23.2.3.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">1<sup>st</sup><font size=
+"2" style="font-size: 11pt"> line before 1<sup>st</sup> paragraph</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Unnecessary "{" exists before a word
-iterator like "{iterator before_begin()".</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Unnecessary "{" exists before a word
+iterator like "{iterator before_begin()".
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Remove "{"</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Remove "{"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 59</font>
+<p>JP 59
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.2.4.4</font>
+<p lang="en-GB" align="left">23.2.4.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Types of the third and forth parameter
+<p lang="en-GB" align="left" style="margin-top: 0.04in">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>
+N2350)
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void splice(const_iterator position,
-list<T,Allocator>&& x, iterator i);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void splice(const_iterator position,
-list<T,Allocator>&& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">iterator first, iterator last);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void splice(const_iterator position,
-list<T,Allocator>&& x, const_iterator i);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void splice(const_iterator position,
-list<T,Allocator>&& x,</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void splice(const_iterator position,
+list<T,Allocator>&& x, iterator i);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void splice(const_iterator position,
+list<T,Allocator>&& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">iterator first, iterator last);
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void splice(const_iterator position,
+list<T,Allocator>&& x, const_iterator i);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void splice(const_iterator position,
+list<T,Allocator>&& x,
<p lang="en-GB" 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>
+"margin-top: 0.04in; margin-bottom: 0.04in">const_iterator first, const_iterator last);
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 83</font>
+<p lang="en-GB" align="left">US 83
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">23.2.6.2</font>
+<p lang="en-GB" align="left">23.2.6.2
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">7</font>
+<p lang="en-GB" align="left">7
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ed</font>
+<p lang="en-GB" align="left">ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">"shrink_to_fint" should be
-"shrink_to_fit".</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">"shrink_to_fint" should be
+"shrink_to_fit".
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" align="left"><br>
<td>
@@ -13739,770 +11845,672 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-246</font>
+<p>UK<br>
+246
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">23.3.2.2</font>
+<p align="justify">23.3.2.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The content of this sub-clause is purely trying to
+<p align="left" style="margin-bottom: 0in">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>
+23.1.4.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike
+<p align="left">Strike
23.3.2.2 entirely. (but do NOT strike these signatures from the
-class template definition!)</font>
+class template definition!)
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-247</font>
+<p>UK<br>
+247
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1</font>
+<p align="justify">24.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Iterator concepts are not extensive enough to
+<p align="left" style="margin-bottom: 0in">Iterator concepts are not extensive enough to
merit a whole new header, and should be merged into
<concpts>. 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 <concepts>, rather than something awkward to type like
-<iterator_concepts>.</font>
+<iterator_concepts>.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the
+<p align="left">Move the
concepts of <iterator_concepts> into the <concepts>
header. We take no position on moving the text from Clause 24 to
-Clause 20 though.</font>
+Clause 20 though.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-248</font>
+<p>UK<br>
+248
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1</font>
+<p align="justify">24.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The text "so for any iterator type there is an
+<p align="left" style="margin-bottom: 0in">The text "so for any iterator type there is an
iterator value that points past the last element of a corresponding
container" is slightly misleading. Iterators can refer into
generalised ranges and sequences, not just containers. A broader
-term than 'container' should be used.</font>
+term than 'container' should be used.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace the
-reference to container with a more appropriate concept</font>
+<p align="left">Replace the
+reference to container with a more appropriate concept
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-250</font>
+<p>UK<br>
+250
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.1</font>
+<p align="justify">24.1.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">A default
+<p align="left">A default
implementation should be supplied for the post-increment operator
-to simplify implementation of iterators by users.</font>
+to simplify implementation of iterators by users.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Copy the
+<p align="left">Copy the
Effects clause into the concept description as the default
implementation. Assumes a default value for
-postincrement_result</font>
+postincrement_result
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-251</font>
+<p>UK<br>
+251
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.1</font>
+<p align="justify">24.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The post-increment operator is dangerous for a
+<p align="left" style="margin-bottom: 0in">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>
+for the post-increment operator in this case either.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move
+<p align="left">Move
declaration of postincrement operator and postincrement_result type
-from Interator concept to the ForwardIterator concept</font>
+from Interator concept to the ForwardIterator concept
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK<br>
-252</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK<br>
+252
<p><br>
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.2</font>
+<p align="justify">24.1.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style=
-"font-size: 9pt">istream_iterator is not a class, but a class
-template</font>
+<p align="left">istream_iterator is not a class, but a class
+template
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
-'class' to 'class template' in the note.</font>
+<p align="left">Change
+'class' to 'class template' in the note.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-253</font>
+<p>UK<br>
+253
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.3</font>
+<p align="justify">24.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">First sentance does not make gramatical sense,
+<p align="left" style="margin-bottom: 0in">First sentance does not make gramatical sense,
Seems to be missing the words 'if it' by comparison with similar
-sentance in other subsections</font>
+sentance in other subsections
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the words
+<p align="left">Add the words
'if it' : "X satisfies the requirements of an output iterator IF IT
-meets the syntactic and semantic requirements"</font>
+meets the syntactic and semantic requirements"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-254</font>
+<p>UK<br>
+254
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.3</font>
+<p align="justify">24.1.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">This postcondition for pre-increment operator
+should be written as an axiom
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the
-postcondition into the concept definition as an axiom</font>
+<p align="left">Move the
+postcondition into the concept definition as an axiom
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-255</font>
+<p>UK<br>
+255
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.4</font>
+<p align="justify">24.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">This postcondition for pre-increment operator
+should be written as an axiom
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move the
-postcondition into the concept definition as an axiom</font>
+<p align="left">Move the
+postcondition into the concept definition as an axiom
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-256</font>
+<p>UK<br>
+256
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.5</font>
+<p align="justify">24.1.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3, 4,
-5</font>
+<p align="justify">3, 4,
+5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
relationship between pre- and post- decrement should be expressed
-as an axiom.</font>
+as an axiom.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move the text specification of pre/post-conditions
+<p align="left" style="margin-bottom: 0in">Move the text specification of pre/post-conditions
and behaviour into an axiom within the BidirectionalIterator
-concept</font>
+concept
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-257</font>
+<p>UK<br>
+257
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.5</font>
+<p align="justify">24.1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is a reasonable default for
+<p align="left" style="margin-bottom: 0in">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>
+implentations
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the
-default : typename postincrement_result = X;</font>
+<p align="left">Add the
+default : typename postincrement_result = X;
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-258</font>
+<p>UK<br>
+258
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.5</font>
+<p align="justify">24.1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">A default implementation should be supplied for
+<p align="left" style="margin-bottom: 0in">A default implementation should be supplied for
the post-decrement operator to simplify implementation of iterators
-by users.</font>
+by users.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Copy the
+<p align="left">Copy the
Effects clause into the concept description as the default
implementation. Assumes a default value for
-postincrement_result</font>
+postincrement_result
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-259</font>
+<p>UK<br>
+259
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.5</font>
+<p align="justify">24.1.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">postdecrement_result is effectively returning a
+<p align="left" style="margin-bottom: 0in">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>
+feature may want a little more work
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the
+<p align="left">Add the
requirement: requires Iterator< postdecrement_result
->;</font>
+>;
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-260</font>
+<p>UK<br>
+260
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.5</font>
+<p align="justify">24.1.5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The effects
+<p align="left">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>
+use of it.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move the Effects clause into the
+<p align="left" style="margin-bottom: 0in">Move the Effects clause into the
BidirectionalIterator concept definition as an axiom, and as the
-default implementation for the operation.</font>
+default implementation for the operation.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-249</font>
+<p>UK<br>
+249
<td>
-<p lang="en-GB" align="justify"><font size="2" style=
-"font-size: 9pt"><span lang="en-US">24.1.6</span></font>
+<p lang="en-GB" align="justify"><span lang="en-US">24.1.6</span>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The semantic for operator+= should also be
+<p align="left" style="margin-bottom: 0in">The semantic for operator+= should also be
provided as a default implementation to simplify implementation of
-user-defined iterators</font>
+user-defined iterators
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Copy the text
+<p align="left">Copy the text
from the effects clause into the RandomAccessIterator concept as
-the default implementaiton.</font>
+the default implementaiton.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-261</font>
+<p>UK<br>
+261
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">To simplify user defined random access iterator
+<p align="left" style="margin-bottom: 0in">To simplify user defined random access iterator
types, the subscript_reference type should default to
-reference</font>
+reference
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">typename
-subscript_reference = reference;</font>
+<p align="left">typename
+subscript_reference = reference;
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-262</font>
+<p>UK<br>
+262
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3,
-4</font>
+<p align="justify">3,
+4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Effects and
+<p align="left">Effects and
post-conditions for operator+ are more useful if expressed as
-axioms, and supplied as default implementations.</font>
+axioms, and supplied as default implementations.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move the effects and Postcondition definitions
+<p align="left" style="margin-bottom: 0in">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>
+operations.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-263</font>
+<p>UK<br>
+263
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
+<p align="left">This
requirement on operator-= would be better expressed as a default
-implementation in the concept, with a matching axiom</font>
+implementation in the concept, with a matching axiom
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move the specification for operator-= from the
+<p align="left" style="margin-bottom: 0in">Move the specification for operator-= from the
returns clause into an axiom and default implementation within the
-RandomAccessIterator concept</font>
+RandomAccessIterator concept
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-264</font>
+<p>UK<br>
+264
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Effects
-clauses are better expressed as axioms where possible.</font>
+<p align="left">Effects
+clauses are better expressed as axioms where possible.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move code in operator- effects clause into
+<p align="left" style="margin-bottom: 0in">Move code in operator- effects clause into
RandomAccessIterator concept as both a default implementation and
-an axiom</font>
+an axiom
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-265</font>
+<p>UK<br>
+265
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">8</font>
+<p align="justify">8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This effects clause is nonesense. It looks more
+<p align="left" style="margin-bottom: 0in">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>
+reference
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
-Effects clause</font>
+<p align="left">Strike the
+Effects clause
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-266</font>
+<p>UK<br>
+266
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">9</font>
+<p align="justify">9
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This sentance
+<p align="left">This sentance
should be provided as a default definition, along with a matching
-axiom</font>
+axiom
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Move the Returns clause into the spefication for
+<p align="left" style="margin-bottom: 0in">Move the Returns clause into the spefication for
RandomAccessIterator operator- as a default implementation. Move
-the Effects clause as the matching axiom.</font>
+the Effects clause as the matching axiom.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-267</font>
+<p>UK<br>
+267
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The code in the Requires clause for
+<p align="left" style="margin-bottom: 0in">The code in the Requires clause for
RandomAccessIterator operator[] would be better expressed as an
-axiom.</font>
+axiom.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Rewrite the
+<p align="left">Rewrite the
Requires clause as an axiom in the RandomAccessIterator
-concept</font>
+concept
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-268</font>
+<p>UK<br>
+268
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.1.6</font>
+<p align="justify">24.1.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">12</font>
+<p align="justify">12
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">This note is potentialy confusing as __far enters
+<p align="left" style="margin-bottom: 0in">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>
+attributes in the current wording.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Clean up the
+<p align="left">Clean up the
note to either avoid using language extension, or spell out this is
-a constraint to support extensions.</font>
+a constraint to support extensions.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 60</font>
+<p>JP 60
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">24.1.8</font>
+<p lang="en-GB" align="left">24.1.8
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">1<sup>st</sup><font size="2" style=
+"font-size: 11pt"> paragraph</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">Capability of an iterator is too much
+restricted by concept.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Concept of std::Range is defined
-as:</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Concept of std::Range is defined
+as:
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">concept Range<typename T> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">InputIterator iterator;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">iterator begin(T&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">iterator end(T&);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">concept Range<typename T> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">InputIterator iterator;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">iterator begin(T&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">iterator end(T&);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">So the following code generates an
-error.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">So the following code generates an
+error.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <std::Range Rng></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void sort(Rng& r)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <std::Range Rng>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void sort(Rng& r)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
<p lang="en-GB" 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>
+// error! Rng::iterator does
+not satisfy requirements of a random
<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::sort(begin(r), end(r));</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::vector<int> v; //
-vector::iterator is a random access iterator.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">sort(v);</font>
+// access iterator.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::sort(begin(r), end(r));
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::vector<int> v; //
+vector::iterator is a random access iterator.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">sort(v);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">This is because the concept of an
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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>
+parameter.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">To be able to work the above code, we
+need to write as follows:
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <std::Range T>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">requires
+std::RandomAccessIterator<T::iterator> &&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::ShuffleIterator<T::iterator>
+&&
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::LessThanComparable<T::iterator::value_type>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void sort(T& r)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">sort(begin(r), end(r));
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <std::Range T></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">requires
-std::RandomAccessIterator<T::iterator> &&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::ShuffleIterator<T::iterator>
-&&</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">std::LessThanComparable<T::iterator::value_type></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void sort(T& r)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">sort(begin(r), end(r));</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::vector<int> v;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">sort(v);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::vector<int> v;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">sort(v);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">It needs quiet a few amount of codes
+<p lang="en-GB" align="left" style="margin-bottom: 0in">It needs quiet a few amount of codes
like this only to recover random access capability from
-InputIterator concept.</font>
+InputIterator concept.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">We can write the following valid code
+<p lang="en-GB" align="left" style="margin-bottom: 0in">We can write the following valid code
with Boost.Range, which is implemented with using C++03
-SFINAE.</font>
+SFINAE.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class Range></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void sort(Range& r)</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::sort(boost::begin(r),
-boost::end(r));</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">std::vector<int> v;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">sort(v); // OK</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class Range>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void sort(Range& r)
+<p lang="en-GB" align="left" style="margin-bottom: 0in">{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::sort(boost::begin(r),
+boost::end(r));
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">std::vector<int> v;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">sort(v); // OK
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" 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
+"margin-top: 0.04in; margin-bottom: 0.04in">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>
+amount of codes without using SFAINAE.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add InputRange, OutputRange,
-ForwardRange, BidirectionalRange and RandomAccessRange.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add InputRange, OutputRange,
+ForwardRange, BidirectionalRange and RandomAccessRange.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-269</font>
+<p>UK<br>
+269
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.3</font>
+<p align="justify">24.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">'decrements for negative n' seems to imply a
+negative number of decrement operations, which is odd.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Need simple,
-clearer wording</font>
+<p align="left">Need simple,
+clearer wording
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-270</font>
+<p>UK<br>
+270
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.3</font>
+<p align="justify">24.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The reachability constraint in p5 means that a
+<p align="left" style="margin-bottom: 0in">The reachability constraint in p5 means that a
negavite result, implying decrements operations in p4, is not
-possible</font>
+possible
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Split the two
+<p align="left">Split the two
overloads into separate descriptions, where reachability is
-permitted to be in either direction for RandomAccessIterator</font>
+permitted to be in either direction for RandomAccessIterator
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-271</font>
+<p>UK<br>
+271
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.3</font>
+<p align="justify">24.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6,7</font>
+<p align="justify">6,7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">next/prev return an incremented iterator without
+<p align="left" style="margin-bottom: 0in">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>
+guarantee the 'multipass' property.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace
+<p align="left">Replace
InputIterator constraint with FOrwardIterator in next and prev
-function templates.</font>
+function templates.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-272</font>
+<p>UK<br>
+272
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4</font>
+<p align="justify">24.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">reverse_iterator and move_iterator use different
+<p align="left" style="margin-bottom: 0in">reverse_iterator and move_iterator use different
formulations for their comparison operations. move_iterator merely
requires the minimal set of operations, < and ==, from its
underlying iterator and synthesizes all oprations from these two.
@@ -14514,496 +12522,452 @@
change of semantic could change behaviour of conforming programs
today - although an iterator that yields different results for (a
> b) than (b < a) may fall foul of some semantic consistency
-requirements, even if the syntax is met.</font>
+requirements, even if the syntax is met.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Rephrase the
+<p align="left">Rephrase the
reverse_iterator comparison operations using only operators <
-and ==, as per the move_iterator specification.</font>
+and ==, as per the move_iterator specification.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-274</font>
+<p>UK<br>
+274
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">24.4,
-24.5</font>
+<p align="justify">24.4,
+24.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The subclauses for standard iterator adaptors
+<p align="left" style="margin-bottom: 0in">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>
+iterators
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Promote
+<p align="left">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>
+iterators.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-275</font>
+<p>UK<br>
+275
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.1</font>
+<p align="justify">24.4.1.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The constructor template taking a single Iterator
+<p align="left" style="margin-bottom: 0in">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>
+by Direct Initialization.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The
+<p align="left">The
reverse_iterator template constructor taking a single Iterator
-argument should be explicit.</font>
+argument should be explicit.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-276</font>
+<p>UK<br>
+276
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.1</font>
+<p align="justify">24.4.1.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is odd to have a mix of declaration stlyes for
+<p align="left" style="margin-bottom: 0in">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>
+all are 'free' functions.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Make the
+<p align="left">Make the
member operators taking a difference_type argument non-member
-operators</font>
+operators
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-277</font>
+<p>UK<br>
+277
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.2.1</font>
+<p align="justify">24.4.1.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The default constructor default-initializes
+<p align="left" style="margin-bottom: 0in">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>
+definition of a singular iterator.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">i/ Specify
+<p align="left">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>
+the singular nature of a value-initialized reserve iterator.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-278</font>
+<p>UK<br>
+278
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.2.1</font>
+<p align="justify">24.4.1.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is an inconsistency between the constructor
+<p align="left" style="margin-bottom: 0in">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>
+efficient moving when copy elision fails to kick in.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change the
+<p align="left">Change the
const reverse_iterator<U> & parameter to
-pass-by-value</font>
+pass-by-value
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-279</font>
+<p>UK<br>
+279
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.2.12, 24.4.3.2.12</font>
+<p align="justify">24.4.1.2.12, 24.4.3.2.12
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The reason the return type became unspecified is
+<p align="left" style="margin-bottom: 0in">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>
+facilities added since the previous standard.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Specify the
-return type using either decltype or the Iter concept map</font>
+<p align="left">Specify the
+return type using either decltype or the Iter concept map
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-280</font>
+<p>UK<br>
+280
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.2.4</font>
+<p align="justify">24.4.1.2.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The presence of the second iterator value is
+<p align="left" style="margin-bottom: 0in">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>
+required by the semantic will reduce confusion.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add
+<p align="left">Add
reverse_iterator expsoition only member tmp as a comment to class
-declaration, as a private member</font>
+declaration, as a private member
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-281</font>
+<p>UK<br>
+281
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.4.1.2.5</font>
+<p align="justify">24.4.1.2.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The current specification for return value will
+<p align="left" style="margin-bottom: 0in">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>
+pointer'
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace the
+<p align="left">Replace the
existing returns specification with a copy of the operator*
-specification that returns this->tmp.operator-></font>
+specification that returns this->tmp.operator->
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-282</font>
+<p>UK<br>
+282
<td>
-<p 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 align="justify">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
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">n/a</font>
+<p align="justify">n/a
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Insert
-iterators of move-only types will move from lvalues</font>
+<p align="left">Insert
+iterators of move-only types will move from lvalues
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add an
+<p align="left">Add an
additional constrained overload for operator= that requires
!CopyConstructible<Cont::value_type> and mark it
-=delete.</font>
+=delete.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-283</font>
+<p>UK<br>
+283
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">24.4.2.5,
-24.4.2.6.4</font>
+<p align="justify">24.4.2.5,
+24.4.2.6.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">postincrement
+<p align="left">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>
+return-by-value
<td>
-<p align="left"><font size="2" style="font-size: 9pt">change
+<p align="left">change
operator++(int) overload to return by value, not reference. Affects
-both class summary and operator definition in p</font>
+both class summary and operator definition in p
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 61</font>
+<p>JP 61
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">24.4.3.2.1</font>
+<p lang="en-GB" align="left">24.4.3.2.1
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">2<sup>nd</sup><font size="2" style=
+"font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">"intializing" should be
-"in<u>i</u>tializing"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">"intializing" should be
+"in<u>i</u>tializing"
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add "i"</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add "i"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-284</font>
+<p>UK<br>
+284
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5</font>
+<p align="justify">24.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The stream iterators need constraining with
-concepts/requrires clauses.</font>
+<p align="left" style="margin-bottom: 0in">The stream iterators need constraining with
+concepts/requrires clauses.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints</font>
+<p align="left">Provide
+constraints
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-285</font>
+<p>UK<br>
+285
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.1</font>
+<p align="justify">24.5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1,2</font>
+<p align="justify">1,2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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
+<p align="left" style="margin-bottom: 0in">Much of the content of p1 and the whole of p2 is a
redundant redefinition of InputIterator. It should be
-simplified</font>
+simplified
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike p2.
+<p align="left">Strike p2.
Simplify p1 and add a cross-reference to the definition of
-InputIterator concept.</font>
+InputIterator concept.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-286</font>
+<p>UK<br>
+286
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.1</font>
+<p align="justify">24.5.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">To the casual reader it is not clear if it is
+<p align="left" style="margin-bottom: 0in">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>
+copy-assign operator is confusing.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Either
+<p align="left">Either
provide a similar definition to the copy-assign operator as for the
-copy constructor, or strike the copy constructor</font>
+copy constructor, or strike the copy constructor
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-287</font>
+<p>UK<br>
+287
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.1.1</font>
+<p align="justify">24.5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is not clear what the intial state of an
+<p align="left" style="margin-bottom: 0in">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>
+dereferencable?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Specify
+<p align="left">Specify
_value_ is initialized by reading the stream, or the iterator takes
-on the end-of-stream value if the stream is empty</font>
+on the end-of-stream value if the stream is empty
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-288</font>
+<p>UK<br>
+288
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.1.1</font>
+<p align="justify">24.5.1.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The provided
-specification is vacuous, offering no useful information.</font>
+<p align="left">The provided
+specification is vacuous, offering no useful information.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Either strike the specification of the copy
+<p align="left" style="margin-bottom: 0in">Either strike the specification of the copy
constructor, or simply replace it with an = default
-definition.</font>
+definition.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-289</font>
+<p>UK<br>
+289
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.1.2</font>
+<p align="justify">24.5.1.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is very hard to pick up the correct
+<p align="left" style="margin-bottom: 0in">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>
+dangerous misreading.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Merge
+<p align="left">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>
+istream_iterator.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-290</font>
+<p>UK<br>
+290
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.2</font>
+<p align="justify">24.5.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The character type of a string delimiter for an
+<p align="left" style="margin-bottom: 0in">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>
+not char *, a narrow character string.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Replace char
-* with const charT *</font>
+<p align="left">Replace char
+* with const charT *
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-291</font>
+<p>UK<br>
+291
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.2.2</font>
+<p align="justify">24.5.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">ostream_iterator postincrement operator returns by
+<p align="left" style="margin-bottom: 0in">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>
+return-by-value.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style=
-"font-size: 9pt">ostream_iterator operator++(int);</font>
+<p align="left">ostream_iterator operator++(int);
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 34</font>
+<p>FR 34
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">24.5.3 [istreambuf.iterator]</font>
+<p>24.5.3 [istreambuf.iterator]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">There are two public sections, and the
+<p style="margin-bottom: 0in">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>
+don't it should be.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15011,241 +12975,221 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-292</font>
+<p>UK<br>
+292
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.3</font>
+<p align="justify">24.5.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Prefer the use of the new nullptr constant to the
+zero literal when using a null pointer in text.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
-istreambuf_iterator(0) to istreambuf_iterator(nullptr)</font>
+<p align="left">Change
+istreambuf_iterator(0) to istreambuf_iterator(nullptr)
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-293</font>
+<p>UK<br>
+293
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.3</font>
+<p align="justify">24.5.3
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">2,3,4</font>
+<p align="justify">2,3,4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The listed
+<p align="left">The listed
paragraphs redundantly redefine an input iterator, and redundancy
can be a dangerous thing in a specification. Suggest a simpler
-phrasing below.</font>
+phrasing below.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">2. The result of operator*() on an end of stream
+<p align="left" style="margin-bottom: 0in">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>
+an input iterator.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-294</font>
+<p>UK<br>
+294
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">24.5.3.2</font>
+<p align="justify">24.5.3.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Implicit
+<p align="left">Implicit
converting constructors can be invoked at surprising times, so
-there should always be a good reason for declaring one.</font>
+there should always be a good reason for declaring one.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Mark the two single-argument constructors take a
+<p align="left" style="margin-bottom: 0in">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<charT,traits>& s)
throw(); explicit
istreambuf_iterator(basic_streambuf<charT,traits>* s)
-throw();</font>
+throw();
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-295</font>
+<p>UK<br>
+295
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">25</font>
+<p align="justify">25
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">THere is a level of redundancy in the library
+<p align="left" style="margin-bottom: 0in">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>
+reduces the risk of inttroducing accidental inconsistencies.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Adopt n2743,
-or an update of that paper.</font>
+<p align="left">Adopt n2743,
+or an update of that paper.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 62</font>
+<p>JP 62
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">25, 25.3.1.5, 26.3.6.5</font>
+<p lang="en-GB" align="left">25, 25.3.1.5, 26.3.6.5
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" 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
+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>
+iterator.
<p lang="en-GB" 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>
+So we think that it is
+reasonable to change those two functions.
<p lang="en-GB" align="left" style=
"text-indent: 0.2in; margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Change "is_sorted_until" to
-"sorted_bound"</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Change "is_heap" to "heap_bound"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Change "is_sorted_until" to
+"sorted_bound"
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Change "is_heap" to "heap_bound"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-296</font>
+<p>UK<br>
+296
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.1.8</font>
+<p align="justify">25.1.8
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The 'Returns' of adjacent_find requires only
+<p align="left" style="margin-bottom: 0in">The 'Returns' of adjacent_find requires only
HasEqualTo, or a Predicate. Requiring EqualityComparable or
-EquivalenceRelation seems too strong and not useful.</font>
+EquivalenceRelation seems too strong and not useful.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
+<p align="left">Change
EqualityComparable to HasEqualTo and EquivalnceRelation to
-Predicate</font>
+Predicate
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-297</font>
+<p>UK<br>
+297
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.2.11</font>
+<p align="justify">25.2.11
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The definition of rotate_copy is very complicated.
+<p align="left" style="margin-bottom: 0in">The definition of rotate_copy is very complicated.
It is equivalent to: return copy(first, middle, copy(middle, last,
-result));</font>
+result));
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
+<p align="left">Change
'effects' to, returns, requires, complexity to: effects: equivalent
-to: return copy(first, middle, copy(middle, last, result));</font>
+to: return copy(first, middle, copy(middle, last, result));
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-298</font>
+<p>UK<br>
+298
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.2.13</font>
+<p align="justify">25.2.13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">13</font>
+<p align="justify">13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style=
-"font-size: 9pt">partition_point requires a partitioned
-array</font>
+<p align="left">partition_point requires a partitioned
+array
<td>
-<p align="left"><font size="2" style="font-size: 9pt">requires:
-is_partitioned(first, last, pred) != false;</font>
+<p align="left">requires:
+is_partitioned(first, last, pred) != false;
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-299</font>
+<p>UK<br>
+299
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.2.2</font>
+<p align="justify">25.2.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Should be
+<p align="left">Should be
consistent in style use of concepts in template parameter lists.
The auto-OutputIterator sytle used in std::copy is probably
-preferred.</font>
+preferred.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change way
+<p align="left">Change way
signature is declared: template<InputIterator InIter,
OutputIterator<auto, RvalueOf<InIter::reference>::type>
OutIter> OutIter move(InIter first, InIter last, OutIter
-result);</font>
+result);
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-300</font>
+<p>UK<br>
+300
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.2.3</font>
+<p align="justify">25.2.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Since publishing the original standard, we have
+<p align="left" style="margin-bottom: 0in">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 <utility> header rather than
@@ -15254,146 +13198,133 @@
be required to #include <utility>, which would be covered in
the resolution of LWG issue 343. There are already dependencies in
<algorithm> on types declared in this header, so this comment
-does not create a new dependency.</font>
+does not create a new dependency.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move primary
+<p align="left">Move primary
swap template from <algorithm> into <utility>. Move
25.2.3 to somewhere under 20.2. Require <algorithm> to
#include <utility> to access pair and provide legacy support
-for finding swap.</font>
+for finding swap.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-301</font>
+<p>UK<br>
+301
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.2.5</font>
+<p align="justify">25.2.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">replace and replace_if have the requirement:
+<p align="left" style="margin-bottom: 0in">replace and replace_if have the requirement:
OutputIterator<Iter, Iter::reference> 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&s might be copied over existing elements (hence the
-OutputIterator<Iter, const T&></font>
+OutputIterator<Iter, const T&>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove
+<p align="left">Remove
OutputIterator<Iter, Iter::reference> from replace and
-replace_if</font>
+replace_if
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-302</font>
+<p>UK<br>
+302
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.3</font>
+<p align="justify">25.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4</font>
+<p align="justify">4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">the concept StrictWeakOrder covers the definition
+of a strict weak ordering, described in paragraph 4.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove 4, and
-mention StrictWeakOrder in paragraph 1.</font>
+<p align="left">Remove 4, and
+mention StrictWeakOrder in paragraph 1.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-303</font>
+<p>UK<br>
+303
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.3</font>
+<p align="justify">25.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6</font>
+<p align="justify">6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">This
-paragraph just describes is_partitioned</font>
+<p align="left">This
+paragraph just describes is_partitioned
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">6 A sequence [start,finish) is partitioned with
+<p align="left" style="margin-bottom: 0in">6 A sequence [start,finish) is partitioned with
respect to an expression f(e) if is_partitioned(start, finish, e)
-!= false</font>
+!= false
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-304</font>
+<p>UK<br>
+304
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.3.6</font>
+<p align="justify">25.3.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The requires clauses of push_heap, pop_heap and
+<p align="left" style="margin-bottom: 0in">The requires clauses of push_heap, pop_heap and
make_heap are inconsistently formatted, dispite being
-identical</font>
+identical
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Format them
-identically.</font>
+<p align="left">Format them
+identically.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-305</font>
+<p>UK<br>
+305
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">25.3.7</font>
+<p align="justify">25.3.7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1, 9,
-17</font>
+<p align="justify">1, 9,
+17
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The negative
+<p align="left">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>
+necessary.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike the
+<p align="left">Strike the
!IsSameType<T, Compare> constraint on min/max/minmax
-algorithms</font>
+algorithms
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 84</font>
+<p lang="en-GB" align="left">US 84
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">26</font>
+<p lang="en-GB" align="left">26
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Parts of the numerics chapter are not
-concept enabled.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Parts of the numerics chapter are not
+concept enabled.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15401,20 +13332,17 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 35</font>
+<p>FR 35
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">26.3 [Complex numbers]</font>
+<p>26.3 [Complex numbers]
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">te</font>
+<p>te
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Instantiations of the class template
+<p style="margin-bottom: 0in">Instantiations of the class template
complex<> have to be allowed for integral types, to reflect
-existing practice and ISO standards (LIA-III).</font>
+existing practice and ISO standards (LIA-III).
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15422,126 +13350,106 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-306</font>
+<p>UK<br>
+306
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">26.4</font>
+<p align="justify">26.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Random number library component cannot be used in
+constrained templates
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints for the random number library</font>
+<p align="left">Provide
+constraints for the random number library
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 63</font>
+<p>JP 63
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">26.4.8.5.1</font>
+<p lang="en-GB" align="left">26.4.8.5.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">No constructor of discrete_distribution
-that accepts initializer_list.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">discrete_distribution initialize
+<p lang="en-GB" align="left" style="margin-bottom: 0in">No constructor of discrete_distribution
+that accepts initializer_list.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">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>
+of a container or an array is needed in the following case.
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">int ar[] = {1, 2, 3};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">discrete_distribution<> dist(ar,
-ar+3);</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">int ar[] = {1, 2, 3};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">discrete_distribution<> dist(ar,
+ar+3);
<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
<p lang="en-GB" 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
+"margin-top: 0.04in; margin-bottom: 0.04in">Other libraries also accept initializer_list, so
change discrete_distribution library to accept initializer_list
-too.</font>
+too.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add the following constructer.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style=
-"font-size: 9pt"><u>discrete_distribution(initializer_list<result_type>);</u></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add the following constructer.
+<p lang="en-GB" align="left" style="margin-top: 0.04in"><u>discrete_distribution(initializer_list<result_type>);</u>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 64</font>
+<p>JP 64
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">26.5.2</font>
+<p lang="en-GB" align="left">26.5.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in">“<font size="2"
-style="font-size: 9pt">valarray<T>& operator+=
-(initializer_list<T>);” is not defined.</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">“valarray<T>& operator+=
+(initializer_list<T>);” is not defined.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add valarray<T>& operator+=
-(initializer_list<T>);</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add valarray<T>& operator+=
+(initializer_list<T>);
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-307</font>
+<p>UK<br>
+307
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">26.7</font>
+<p align="justify">26.7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Footnote
-288</font>
+<p align="justify">Footnote
+288
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The footnote refers to TR1, which is not a defined
+<p align="left" style="margin-bottom: 0in">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>
+is no longer relevant.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Drop the
-reference to TR1.</font>
+<p align="left">Drop the
+reference to TR1.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 85</font>
+<p lang="en-GB" align="left">US 85
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27</font>
+<p lang="en-GB" align="left">27
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The input/output chapter is not concept
-enabled.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The input/output chapter is not concept
+enabled.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15549,102 +13457,82 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-308</font>
+<p>UK<br>
+308
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">27</font>
+<p align="justify">27
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><span lang="en-US">iostreams library
-cannot be used from constrained templates</span></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><span lang="en-US">iostreams library
+cannot be used from constrained templates</span>
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints for the iostreams library, clause 27</font>
+<p align="left">Provide
+constraints for the iostreams library, clause 27
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 65</font>
+<p>JP 65
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.4.4</font>
+<p lang="en-GB" align="left">27.4.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">Switch from “unspecified-bool-type”
-to</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang=
-"zxx"> “</span></font><font size="2" style=
-"font-size: 9pt">explicit operator bool() const”.</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">Switch from “unspecified-bool-type”
+to<span lang=
+"zxx"> “</span>explicit operator bool() const”.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Replace "operator
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Replace "operator
<i>unspecified-bool-type</i>() const;" with "explicit operator
-bool() const;"</font>
+bool() const;"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 66</font>
+<p>JP 66
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.4.4.3</font>
+<p lang="en-GB" align="left">27.4.4.3
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">1<sup>st</sup><font size="2" style=
+"font-size: 11pt"> paragraph</font>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">Switch from “unspecified-bool-type”
-to</font><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif"><span lang=
-"zxx"> “</span></font><font size="2" style=
-"font-size: 9pt">explicit operator bool() const”</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">Switch from “unspecified-bool-type”
+to<span lang=
+"zxx"> “</span>explicit operator bool() const”
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Replace "operator
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Replace "operator
<i>unspecified-bool-type</i>() const;" with "explicit operator
-bool() const;"</font>
+bool() const;"
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 36</font>
+<p>FR 36
<td>
-<p><font size="2" style="font-size: 10pt" face=
-"Consolas, monospace"><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">27.6.1.2.2
-[istream.formatted.arithmetic]</font></font>
+<p>27.6.1.2.2
+[istream.formatted.arithmetic]
<td>
-<p><font size="2" style="font-size: 9pt">1, 2, and 3</font>
+<p>1, 2, and 3
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">iostate err = 0;</font>
+<p style="margin-bottom: 0in">iostate err = 0;
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">iostate is a bitmask type and so could be
-an enumeration. Probably using</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">goodbit is the solution.</font>
+<p style="margin-bottom: 0in">iostate is a bitmask type and so could be
+an enumeration. Probably using
+<p style="margin-bottom: 0in">goodbit is the solution.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15652,26 +13540,21 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 37</font>
+<p>FR 37
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">27.6.1.2.2
-[istream.formatted.arithmetic]</font>
+<p>27.6.1.2.2
+[istream.formatted.arithmetic]
<td>
-<p><font size="2" style="font-size: 9pt">3</font>
+<p>3
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">else if (lval <
-numeric_limits<int>::min()</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">|| numeric_limits<int>::max() <
-lval))</font>
+<p style="margin-bottom: 0in">else if (lval <
+numeric_limits<int>::min()
+<p style="margin-bottom: 0in">|| numeric_limits<int>::max() <
+lval))
<p style="margin-bottom: 0in"><br>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">The parentheses aren't balanced.</font>
+<p style="margin-bottom: 0in">The parentheses aren't balanced.
<p><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -15679,595 +13562,407 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 67</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.1</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">te</font>
-<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">basic_stringbuf dose not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Replace “class Allocator” to
-“Allocator Alloc”.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font size="2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator Alloc</u> =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_stringbuf : public
-basic_streambuf<charT,traits> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.1.1 Constructors:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit
-basic_stringbuf(ios_base::openmode which</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">= ios_base::in | ios_base::out);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_stringbuf</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">(const
-basic_string<charT,traits,<u>Alloc</u>>& str,</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_stringbuf(basic_stringbuf&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.1.3 Get and set:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>
-str() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void str(const
-basic_string<charT,traits,<u>Alloc</u>>& s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringbuf<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringbuf<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringbuf<charT,
-traits, <u>Alloc</u>>&& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringbuf<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringbuf<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringbuf<charT, traits,
-<u>Alloc</u>>&& y);</font>
+<p>JP 67
+<td>
+<p lang="en-GB" align="left">27.7.1
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">basic_stringbuf dose not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Replace “class Allocator” to
+“Allocator Alloc”.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"> Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator Alloc</u> =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_stringbuf : public
+basic_streambuf<charT,traits> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.1.1 Constructors:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit
+basic_stringbuf(ios_base::openmode which
+<p lang="en-GB" align="left" style="margin-bottom: 0in">= ios_base::in | ios_base::out);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_stringbuf
+<p lang="en-GB" align="left" style="margin-bottom: 0in">(const
+basic_string<charT,traits,<u>Alloc</u>>& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ios_base::openmode which = ios_base::in
+| ios_base::out);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf(basic_stringbuf&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.1.3 Get and set:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+str() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void str(const
+basic_string<charT,traits,<u>Alloc</u>>& s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringbuf<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringbuf<charT,
+traits, <u>Alloc</u>>&& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringbuf<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT, traits,
+<u>Alloc</u>>&& y);
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">}
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 68</font>
+<p>JP 68
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.2</font>
+<p lang="en-GB" align="left">27.7.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">basic_istringstream dose not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Replace “class Allocator” to
-“Allocator Alloc”.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font size="2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator Alloc</u> =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_istringstream : public
-basic_istream<charT,traits> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::int_type
-int_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::pos_type
-pos_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::off_type
-off_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef traits traits_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>Alloc</u>
-allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.2.1 Constructors:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit
+<p lang="en-GB" align="left" style="margin-top: 0.04in">basic_istringstream dose not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Replace “class Allocator” to
+“Allocator Alloc”.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"> Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator Alloc</u> =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_istringstream : public
+basic_istream<charT,traits> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::int_type
+int_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::pos_type
+pos_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::off_type
+off_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef traits traits_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>Alloc</u>
+allocator_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.2.1 Constructors:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit
basic_istringstream(ios_base::openmode which =
-ios_base::in);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_istringstream(</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& str,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">ios_base::openmode which =
-ios_base::in);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_istringstream(basic_istringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.2.2 Assign and swap:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_istringstream&
-operator=(basic_istringstream&& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_istringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.2.3 Members:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_stringbuf<charT,traits,<u>Alloc</u>>*
-rdbuf() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>
-str() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void str(const
-basic_string<charT,traits,<u>Alloc</u>>& s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">private:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">//
+ios_base::in);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_istringstream(
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ios_base::openmode which =
+ios_base::in);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istringstream(basic_istringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.2.2 Assign and swap:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istringstream&
+operator=(basic_istringstream&& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_istringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.2.3 Members:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT,traits,<u>Alloc</u>>*
+rdbuf() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+str() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void str(const
+basic_string<charT,traits,<u>Alloc</u>>& s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">private:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">//
basic_stringbuf<charT,traits,<u>Alloc</u>> sb; exposition
-only</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_istringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_istringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_istringstream<charT,
-traits, <u>Alloc</u>>&& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_istringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_istringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_istringstream<charT, traits,
-<u>Alloc</u>>&& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
+only
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_istringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_istringstream<charT,
+traits, <u>Alloc</u>>&& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_istringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_istringstream<charT, traits,
+<u>Alloc</u>>&& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 69</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.3</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">te</font>
-<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">basic_ostringstream dose not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Replace “class Allocator” to
-“Allocator Alloc”.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font size="2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator Alloc</u> =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_ostringstream : public
-basic_ostream<charT,traits> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// types:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::int_type
-int_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::pos_type
-pos_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::off_type
-off_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef traits traits_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>Alloc</u>
-allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.3.1
-Constructors/destructor:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit
+<p>JP 69
+<td>
+<p lang="en-GB" align="left">27.7.3
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">basic_ostringstream dose not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Replace “class Allocator” to
+“Allocator Alloc”.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"> Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator Alloc</u> =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_ostringstream : public
+basic_ostream<charT,traits> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// types:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::int_type
+int_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::pos_type
+pos_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::off_type
+off_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef traits traits_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>Alloc</u>
+allocator_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.3.1
+Constructors/destructor:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit
basic_ostringstream(ios_base::openmode which =
-ios_base::out);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_ostringstream(</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& str,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">ios_base::openmode which =
-ios_base::out);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_ostringstream(basic_ostringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.3.2 Assign/swap:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_ostringstream&
-operator=(basic_ostringstream&& rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_ostringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.3.3 Members:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_stringbuf<charT,traits,<u>Alloc</u>>*
-rdbuf() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>
-str() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void str(const
-basic_string<charT,traits,<u>Alloc</u>>& s);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">private:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">//
+ios_base::out);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_ostringstream(
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ios_base::openmode which =
+ios_base::out);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostringstream(basic_ostringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.3.2 Assign/swap:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostringstream&
+operator=(basic_ostringstream&& rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_ostringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.3.3 Members:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT,traits,<u>Alloc</u>>*
+rdbuf() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+str() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void str(const
+basic_string<charT,traits,<u>Alloc</u>>& s);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">private:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">//
basic_stringbuf<charT,traits,<u>Alloc</u>> sb; exposition
-only</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">template <class charT, class traits,
-<u>Allocator</u></font> <font size="2" style=
-"font-size: 9pt"><u>Alloc</u>></font></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_ostringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_ostringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">template <class charT, class traits,
-<u>Allocator</u></font> <font size="2" style=
-"font-size: 9pt"><u>Alloc</u>></font></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_ostringstream<charT,
-traits, <u>Alloc</u>>&& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_ostringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_ostringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_ostringstream<charT, traits,
-<u>Alloc</u>>&& y);</font>
+only
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator</u> <font size=
+"2" style="font-size: 11pt"><u>Alloc</u>></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_ostringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator</u> <font size=
+"2" style="font-size: 11pt"><u>Alloc</u>></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_ostringstream<charT,
+traits, <u>Alloc</u>>&& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_ostringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_ostringstream<charT, traits,
+<u>Alloc</u>>&& y);
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">}</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">}
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 71</font>
+<p>JP 71
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.3</font>
+<p lang="en-GB" align="left">27.7.3
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo.</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">"template" is missing in "class
-basic_ostringstream" of the title of the chapter.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">27.7.3 Class basic_ostringstream</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.3 Class <u>template</u>
-basic_ostringstream</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<tr valign="top">
-<td>
-<p><font size="2" style="font-size: 9pt">JP 72</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.7.4</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">te</font>
-<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">basic_stringstream dose not use
-concept.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Replace "class Allocator" to "Allocator
-Alloc".</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<font size="2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits =
-char_traits<charT>,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>Allocator Alloc</u> =
-allocator<charT> ></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">class basic_stringstream</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">: public
-basic_iostream<charT,traits> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">public:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// types:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef charT char_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::int_type
-int_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::pos_type
-pos_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef typename traits::off_type
-off_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef traits traits_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">typedef <u>Alloc</u>
-allocator_type;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// constructors/destructor</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_stringstream(</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit basic_stringstream(</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">const
-basic_string<charT,traits,<u>Alloc</u>>& str,</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_stringstream(basic_stringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// 27.7.5.1 Assign/swap:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringstream&&
-rhs);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// Members:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_stringbuf<charT,traits,<u>Alloc</u>>*
-rdbuf() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style=
-"font-size: 9pt">basic_string<charT,traits,<u>Alloc</u>>
-str() const;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void str(const
-basic_string<charT,traits,<u>Alloc</u>>& str);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">private:</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">// basic_stringbuf<charT, traits>
-sb; exposition only</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class charT, class traits,
-<u>Allocator Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">template <class charT, class traits,
-<u>Allocator</u></font> <font size="2" style=
-"font-size: 9pt"><u>Alloc</u>></font></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringstream<charT,
-traits, <u>Alloc</u>>&& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringstream<charT, traits,
-<u>Alloc</u>>& y);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 11pt"><font size="2" style=
-"font-size: 9pt">template <class charT, class traits,
-<u>Allocator</u></font> <font size="2" style=
-"font-size: 9pt"><u>Alloc</u>></font></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">void swap(basic_stringstream<charT,
-traits, <u>Alloc</u>>& x,</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">basic_stringstream<charT, traits,
-<u>Alloc</u>>&& y);</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">}</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<tr valign="top">
-<td>
-<p><font size="2" style="font-size: 9pt">JP 73</font>
-<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">27.8.1.14</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo.
+<p lang="en-GB" align="left">"template" is missing in "class
+basic_ostringstream" of the title of the chapter.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">27.7.3 Class basic_ostringstream
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left">27.7.3 Class <u>template</u>
+basic_ostringstream
<td>
<p lang="en-GB" align="left"><br>
+<tr valign="top">
+<td>
+<p>JP 72
+<td>
+<p lang="en-GB" align="left">27.7.4
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">basic_stringstream dose not use
+concept.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Replace "class Allocator" to "Allocator
+Alloc".
+<p lang="en-GB" align="left" style="margin-bottom: 0in"> Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits =
+char_traits<charT>,
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>Allocator Alloc</u> =
+allocator<charT> >
+<p lang="en-GB" align="left" style="margin-bottom: 0in">class basic_stringstream
+<p lang="en-GB" align="left" style="margin-bottom: 0in">: public
+basic_iostream<charT,traits> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">public:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// types:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef charT char_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::int_type
+int_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::pos_type
+pos_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef typename traits::off_type
+off_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef traits traits_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">typedef <u>Alloc</u>
+allocator_type;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// constructors/destructor
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_stringstream(
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ios_base::openmode which =
+ios_base::out|ios_base::in);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit basic_stringstream(
+<p lang="en-GB" align="left" style="margin-bottom: 0in">const
+basic_string<charT,traits,<u>Alloc</u>>& str,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">ios_base::openmode which =
+ios_base::out|ios_base::in);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringstream(basic_stringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// 27.7.5.1 Assign/swap:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringstream&&
+rhs);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// Members:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringbuf<charT,traits,<u>Alloc</u>>*
+rdbuf() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_string<charT,traits,<u>Alloc</u>>
+str() const;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void str(const
+basic_string<charT,traits,<u>Alloc</u>>& str);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">private:
+<p lang="en-GB" align="left" style="margin-bottom: 0in">// basic_stringbuf<charT, traits>
+sb; exposition only
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator</u> <font size=
+"2" style="font-size: 11pt"><u>Alloc</u>></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringstream<charT,
+traits, <u>Alloc</u>>&& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringstream<charT, traits,
+<u>Alloc</u>>& y);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class charT, class traits,
+<u>Allocator</u> <font size=
+"2" style="font-size: 11pt"><u>Alloc</u>></font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">void swap(basic_stringstream<charT,
+traits, <u>Alloc</u>>& x,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">basic_stringstream<charT, traits,
+<u>Alloc</u>>&& y);
+<p lang="en-GB" align="left" style="margin-top: 0.04in">}
+<td>
+<p lang="en-GB" align="left"><br>
+<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>JP 73
+<td>
+<p lang="en-GB" align="left">27.8.1.14
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>te
<td>
<p lang="en-GB" 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
+"margin-top: 0.04in; margin-bottom: 0.04in">It is a problem from C++98, fstream cannot appoint
a filename of wide character string(const wchar_t and const
-wstring&).</font>
+wstring&).
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">Add interface corresponding to wchar_t,
+char16_t and char32_t.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 86</font>
+<p lang="en-GB" align="left">US 86
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">28</font>
+<p lang="en-GB" align="left">28
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The regular expressions chapter is not
-concept enabled.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The regular expressions chapter is not
+concept enabled.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -16275,195 +13970,181 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-309</font>
+<p>UK<br>
+309
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">28</font>
+<p align="justify">28
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Regular expressions cannot be used in constrained
-templates</font>
+<p align="left" style="margin-bottom: 0in">Regular expressions cannot be used in constrained
+templates
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints for the regular expression library, clause 28</font>
+<p align="left">Provide
+constraints for the regular expression library, clause 28
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-310</font>
+<p>UK<br>
+310
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">28</font>
+<p align="justify">28
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The regex
+<p align="left">The regex
chapter uses iterators in the old pre-concept style, it should be
-changed to use concepts instead.</font>
+changed to use concepts instead.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Use concepts
-for iterator template arguments throughout.</font>
+<p align="left">Use concepts
+for iterator template arguments throughout.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-314</font>
+<p>UK<br>
+314
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">28.4</font>
+<p align="justify">28.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The swap overloads for regex classes are only
+<p align="left" style="margin-bottom: 0in">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>
+respectively.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the
+<p align="left">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>
+proposes a single overload with two r-value references
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-315</font>
+<p>UK<br>
+315
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">28.4</font>
+<p align="justify">28.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">p6</font>
+<p align="justify">p6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">6 Effects: string_type str(first, last); return
+<p align="left" style="margin-bottom: 0in">6 Effects: string_type str(first, last); return
use_facet<collate<charT> >(
getloc()).transform(&*str.begin(), &*str.end()); Is it
-legal to dereference str.end() ?</font>
+legal to dereference str.end() ?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Reword to
-effect clause to use legal iterator dereferences</font>
+<p align="left">Reword to
+effect clause to use legal iterator dereferences
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-316</font>
+<p>UK<br>
+316
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">28.4
-ff</font>
+<p align="justify">28.4
+ff
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">The constructors for regex classes do not have an
+r-value overload.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add the
-missing r-value constructors to regex classes.</font>
+<p align="left">Add the
+missing r-value constructors to regex classes.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-317</font>
+<p>UK<br>
+317
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">28.8</font>
+<p align="justify">28.8
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">basic_string
+<p align="left">basic_string
has both a constructor and an assignment operator that accepts an
-initializer list, basic_regex should have the same.</font>
+initializer list, basic_regex should have the same.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">In the basic_regex synopsis, after:
+<p align="left" style="margin-bottom: 0in">In the basic_regex synopsis, after:
basic_regex& operator=(const charT* ptr); add: basic_regex&
operator=(initializer_list<charT> il); And after paragraph 20
add: basic_regex& operator=(initializer_list<charT> il);
-Effects: returns assign(il.begin(), il.end());</font>
+Effects: returns assign(il.begin(), il.end());
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 74</font>
+<p>JP 74
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">28.8</font>
+<p lang="en-GB" align="left">28.8
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in">“<font size="2"
-style="font-size: 9pt">basic_regx & operator=
-(initializer_list<T>);” is not defined.</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">“basic_regx & operator=
+(initializer_list<T>);” is not defined.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add basic_regx & operator=
-(initializer_list<T>);</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add basic_regx & operator=
+(initializer_list<T>);
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-318</font>
+<p>UK<br>
+318
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">28.8.2</font>
+<p align="justify">28.8.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">para
-22</font>
+<p align="justify">para
+22
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p 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 align="left" style="margin-bottom: 0in">Constructor definition should appear with the
+other constructors not after assignment ops.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move para 22
-to just after para 17.</font>
+<p align="left">Move para 22
+to just after para 17.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-319</font>
+<p>UK<br>
+319
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">28.12.2</font>
+<p align="justify">28.12.2
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">It was always
+<p align="left">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
@@ -16472,10 +14153,9 @@
b, const regex_type& re, const int (&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>
+we should use them to remove this particular wart.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">To the synopsis for regex_token_iterator, after
+<p align="left" style="margin-bottom: 0in">To the synopsis for regex_token_iterator, after
template <std::size_t N>
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator
b, const regex_type& re, const int (&submatches)[N],
@@ -16491,26 +14171,22 @@
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>
+submatches.end()).
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 87</font>
+<p lang="en-GB" align="left">US 87
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29</font>
+<p lang="en-GB" align="left">29
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">The atomics chapter is not concept
+enabled. The adopted paper, N2427, did have those concepts.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -16518,446 +14194,320 @@
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-311</font>
+<p>UK<br>
+311
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">29</font>
+<p align="justify">29
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Atomic types cannot be used generically in a
+constrained template
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints for the atomics library, clause 29</font>
+<p align="left">Provide
+constraints for the atomics library, clause 29
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-312</font>
+<p>UK<br>
+312
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">29</font>
+<p align="justify">29
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The contents
+<p align="left">The contents
of the <stdatomic.h> header are not listed anywhere, and
<cstdatomic> 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>
+should not use them now.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Remove
+<p align="left">Remove
<cstdatomic> from the C99 headers in table 14. Add a new
header <atomic> to the headers in table 13. Update chapter 29
to remove reference to <stdatomic.h> and replace the use of
<cstdatomic> with <atomic>. If and when WG14 adds
atomic operations to C we can add corresponding headers to table 14
-with a TR.</font>
+with a TR.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 75</font>
+<p>JP 75
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
-<td>
-<p lang="en-GB" 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>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Change to a style of C++.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">29.1</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>typedef</u> enum memory_order
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">memory_order_relaxed,
-memory_order_consume, memory_order_acquire,</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">} memory_order;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">enum memory_order {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">memory_order_relaxed,
-memory_order_consume, memory_order_acquire,</font>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">29.3.1</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>typedef</u> struct atomic_bool
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">} atomic_bool;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct atomic_bool {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>typedef</u> struct
-atomic_<i>itype</i> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">} atomic_<i>itype</i>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct atomic_<i>itype</i> {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">29.3.2</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>typedef</u> struct atomic_address
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">} atomic_address;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct atomic_address {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">29.5</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>typedef</u> struct atomic_flag
-{</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">} atomic_flag;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">}</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">namespace std {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct atomic_flag {</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">...</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">};</font>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">}</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<tr valign="top">
-<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-313</font>
+<p lang="en-GB" align="left">29
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">29.1</font>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>ed
+<td>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">A definition of enum or struct is the
+style of C using typedef.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Change to a style of C++.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">29.1
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>typedef</u> enum memory_order
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">memory_order_relaxed,
+memory_order_consume, memory_order_acquire,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">memory_order_release,
+memory_order_acq_rel, memory_order_seq_cst
+<p lang="en-GB" align="left" style="margin-bottom: 0in">} memory_order;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">enum memory_order {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">memory_order_relaxed,
+memory_order_consume, memory_order_acquire,
+<p lang="en-GB" align="left" style="margin-bottom: 0in">memory_order_release,
+memory_order_acq_rel, memory_order_seq_cst
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">29.3.1
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>typedef</u> struct atomic_bool
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">} atomic_bool;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct atomic_bool {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>typedef</u> struct
+atomic_<i>itype</i> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">} atomic_<i>itype</i>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct atomic_<i>itype</i> {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">29.3.2
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>typedef</u> struct atomic_address
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">} atomic_address;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct atomic_address {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">29.5
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>typedef</u> struct atomic_flag
+{
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">} atomic_flag;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">}
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">namespace std {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct atomic_flag {
+<p lang="en-GB" align="left" style="margin-bottom: 0in">...
+<p lang="en-GB" align="left" style="margin-bottom: 0in">};
+<p lang="en-GB" align="left">}
+<td>
+<p lang="en-GB" align="left"><br>
+<tr valign="top">
+<td>
+<p>UK<br>
+313
+<td>
+<p align="justify">29.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">seq_cst
+<p align="left">seq_cst
fences don't necessarily guarantee ordering
-http://home.twcny.rr.com/hinnant/cpp_extensions/issues_preview/lwg-active.html#926>
+http://home.twcny.rr.com/hinnant/cpp_extensions/issues_preview/lwg-active.html#926
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a new paragraph after 29.1 [atomics.order]p5
+<p align="left" style="margin-bottom: 0in">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>
+modifiction order of M.
<p align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 88</font>
+<p lang="en-GB" align="left">US 88
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29.2</font>
+<p lang="en-GB" align="left">29.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">The "lockfree" facilities do not tell the
-programmer enough.</font>
+<p lang="en-GB" align="left">The "lockfree" facilities do not tell the
+programmer enough.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Expand the "lockfree" facilities. See
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Expand the "lockfree" facilities. See
the attached paper "Issues with the C++ Standard" under Chapter 29,
-"atomics.lockfree doesn't tell the programmer enough"</font>
+"atomics.lockfree doesn't tell the programmer enough"
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 89</font>
+<p lang="en-GB" align="left">US 89
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29.3.1</font>
+<p lang="en-GB" align="left">29.3.1
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Table 122</font>
+<p lang="en-GB" align="left">Table 122
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The types in the table "Atomics for
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The types in the table "Atomics for
standard typedef types" should be typedefs, not classes. These
-semantics are necessary for compatibility with C.</font>
+semantics are necessary for compatibility with C.
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Change the classes to typedefs.</font>
+<p lang="en-GB" align="left">Change the classes to typedefs.
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Google</font>
+<p lang="en-GB" align="left">Google
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 90</font>
+<p lang="en-GB" align="left">US 90
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29.4</font>
+<p lang="en-GB" align="left">29.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">Are atomic functions allowed to have non-volatile
-overloads?</font>
+<p lang="en-GB" align="left">Are atomic functions allowed to have non-volatile
+overloads?
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Allow non-volatile overloads. See the
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Allow non-volatile overloads. See the
attached paper "Issues with the C++ Standard, under Chapter 29,
"Are atomic functions allowed to have non-volatile
-overloads?"</font>
+overloads?"
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 91</font>
+<p lang="en-GB" align="left">US 91
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29.4</font>
+<p lang="en-GB" align="left">29.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left">Whether or not a failed compare_exchange is a RMW
+operation (as used in 1.10 [intro.multithread]) is unclear.
<td>
-<p lang="en-GB" 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
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Make failing compare_exchange operations <font size=
+"2" style="font-size: 11pt">
+<strong>not</strong> be RMW. See the attached
paper under "atomic RMW status of failed
-compare_exchange"</font></font>
+compare_exchange"</font>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 92</font>
+<p lang="en-GB" align="left">US 92
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">29.4</font>
+<p lang="en-GB" align="left">29.4
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">te</font>
+<p lang="en-GB" align="left">te
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">The effect of memory_order_consume with atomic RMW
-operations is unclear.</font>
+<p lang="en-GB" align="left">The effect of memory_order_consume with atomic RMW
+operations is unclear.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Follow the lead of fences
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Follow the lead of fences
[atomics.fences], and promote memory_order_consume to
-memory_order_acquire with RMW operations.</font>
+memory_order_acquire with RMW operations.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 76</font>
+<p>JP 76
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30</font>
+<p lang="en-GB" align="left">30
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">A description for "<i>Throws:</i>
-Nothing." are not unified.</font>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">At the part without throw,
-"<i>Throws:</i> Nothing." should be described.</font>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Add "<i>Throws:</i> Nothing." to the
-following.</font>
-<p lang="en-GB" 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 lang="en-GB" 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 lang="en-GB" 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 lang="en-GB" 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 lang="en-GB" 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>ed
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">A description for "<i>Throws:</i>
+Nothing." are not unified.
+<p lang="en-GB" align="left" style="margin-top: 0.04in">At the part without throw,
+"<i>Throws:</i> Nothing." should be described.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Add "<i>Throws:</i> Nothing." to the
+following.
+<p lang="en-GB" align="left" style="margin-bottom: 0in">30.2.1.6 , 1<sup>st</sup><font size=
+"2" style="font-size: 11pt"> paragraph</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">30.3.3.1 , 4<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">30.3.3.2.1 , 6<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">30.4.1 , 7<sup>th</sup><font size=
+"2" style="font-size: 11pt"> and 8<sup>th</sup> paragraph</font>
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">30.4.2 ,
+6<sup>th</sup><font size="2" style=
+"font-size: 11pt">, 7<sup>th</sup>,19<sup>th</sup>,21th and 25<sup>th</sup> paragraph</font>
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 93</font>
+<p lang="en-GB" align="left">US 93
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30</font>
+<p lang="en-GB" align="left">30
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">ge</font>
+<p lang="en-GB" align="left">ge
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">The thread chapter is not concept
-enabled.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">The thread chapter is not concept
+enabled.
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
@@ -16966,37 +14516,35 @@
<tr valign="top">
<td>
<p align="justify" style=
-"margin-right: -0.18in; margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">UK<br>
-320</font>
+"margin-right: -0.18in; margin-bottom: 0in">UK<br>
+320
<p><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">30</font>
+<p align="justify">30
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Threads
-library cannot be used in constrained templates</font>
+<p align="left">Threads
+library cannot be used in constrained templates
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide
-constraints for the threads library, clause 30</font>
+<p align="left">Provide
+constraints for the threads library, clause 30
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-321</font>
+<p>UK<br>
+321
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">30</font>
+<p align="justify">30
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Throughout this clause, the term Requires: is used
+<p align="left" style="margin-bottom: 0in">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 "Preconditions:" which is not a
@@ -17004,161 +14552,150 @@
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>
+clause 17 for more details.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Decument
+<p align="left">Decument
Preconditions: paragraphs in 17.5.2.4, and use consistently through
-rest of the library.</font>
+rest of the library.
<td>
<p lang="en-GB" align="left"><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 94</font>
+<p>US 94
<td>
-<p><font size="2" style="font-size: 9pt">30.1.2</font>
+<p>30.1.2
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">The first sentence of para
+<p>The first sentence of para
1 suggests that no other library function is permitted to call
-operating system or low level APIs.</font>
+operating system or low level APIs.
<td>
<p lang="en-GB" style="margin-top: 0.04in; margin-bottom: 0.04in">
-<font size="2" style="font-size: 9pt">Rewrite para 1 as: “
+Rewrite para 1 as: “
<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.”</font></font>
+from returning a meaningful value.”</font>
<p><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 95</font>
+<p>US 95
<td>
-<p><font size="2" style="font-size: 9pt">30.1.3</font>
+<p>30.1.3
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p>“<font size="2" style=
-"font-size: 9pt">native_handle_type” is a typedef, not a
-class member.</font>
+<p>“native_handle_type” is a typedef, not a
+class member.
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">Several classes described in this Clause have a
-member native_handle (of type native_handle_type) . The</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">presence of this member and its
+"margin-top: 0.04in; margin-bottom: 0.04in">Several classes described in this Clause have a
+member native_handle (of type native_handle_type) . The
+<p lang="en-GB" align="left" style="margin-bottom: 0in">presence of this member and its
semantics is implementation defined. [ Note: 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. —end note
-]</font>
+]
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 96</font>
+<p>US 96
<td>
-<p><font size="2" style="font-size: 9pt">30.1.4</font>
+<p>30.1.4
<td>
-<p><font size="2" style="font-size: 9pt">2</font>
+<p>2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">There is no definition
-here for monotonic clock.</font>
+<p>There is no definition
+here for monotonic clock.
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">Implementations should use a <i>monotonic
+"margin-top: 0.04in; margin-bottom: 0.04in">Implementations should use a <i>monotonic
clock</i> 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>
+negative clock jumps.
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-322</font>
+<p>UK<br>
+322
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.1.4</font>
+<p align="justify">30.1.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">Not all systms can provide a monotonic clock. How
+are they expected to treat a _for function?
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add at least
+<p align="left">Add at least
a note explaining the intent for systems that do not support a
-monotonic clock.</font>
+monotonic clock.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-323</font>
+<p>UK<br>
+323
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.2.1</font>
+<p align="justify">30.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">1</font>
+<p align="justify">1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The presence of a non-explicit variadic template
+<p align="left" style="margin-bottom: 0in">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>
+supplied func is an lvalue.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Mark
+<p align="left">Mark
constructor template <class F, class ...Args>
thread(F&& f, Args&&... args); as explicit and
-remove the single-argument constructor.</font>
+remove the single-argument constructor.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-324</font>
+<p>UK<br>
+324
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.2.1.1</font>
+<p align="justify">30.2.1.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p 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 align="left" style="margin-bottom: 0in">thread::id objects should be as useable in hashing
+containers as they are in ordered associative containers.
<p align="left"><br>
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add thread::id support for std::hash</font>
+<p align="left" style="margin-bottom: 0in">Add thread::id support for std::hash
<p align="left" style="margin-bottom: 0in"><br>
<p align="left" style="margin-bottom: 0in"><br>
<p align="left"><br>
@@ -17166,139 +14703,120 @@
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 77</font>
+<p>JP 77
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.2.1.2</font>
+<p lang="en-GB" align="left">30.2.1.2
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">"CopyConstructible" and "MoveConstructible" in
+"margin-top: 0.04in; margin-bottom: 0.04in">"CopyConstructible" and "MoveConstructible" in
"<i>Requires:</i> F and each Ti in Args shall be CopyConstructible
if an lvalue and otherwise MoveConstructible." are reflected by
-interface.</font>
+interface.
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Add a concept for constructor of
-thread.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Add a concept for constructor of
+thread.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 78</font>
+<p>JP 78
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.2.1.2</font>
+<p lang="en-GB" align="left">30.2.1.2
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-bottom: 0in">4<sup>th</sup><font size=
+"2" style="font-size: 11pt"> paragraph, 1<sup>st</sup> line</font>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">In "F and each Ti in Args", 'Ti' is not
-clear.</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">In "F and each Ti in Args", 'Ti' is not
+clear.
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Replace "Ti" with "args"</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Replace "Ti" with "args"
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">US 97</font>
+<p>US 97
<td>
-<p><font size="2" style="font-size: 9pt">30.2.1.3</font>
+<p>30.2.1.3
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p><font size="2" style="font-size: 9pt">detach-on-destruction may
+<p>detach-on-destruction may
result in “escaped” threads accessing objects with
-bounded lifetime after the end of their lifetime.</font>
+bounded lifetime after the end of their lifetime.
<td>
-<p><font size="2" style="font-size: 9pt">See document WG21
-N2802=08-0312 written by Hans Boehm.</font>
+<p>See document WG21
+N2802=08-0312 written by Hans Boehm.
<td>
<p><br>
<tr valign="top">
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">US 98</font>
+<p lang="en-GB" align="left">US 98
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.2.1.3, 30.2.1.4</font>
+<p lang="en-GB" align="left">30.2.1.3, 30.2.1.4
<td>
<p lang="en-GB" align="left"><br>
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">The current defined behavior for the std::thread
+<p lang="en-GB" align="left">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>
+behavior.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Change destruction behavior to undefined
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Change destruction behavior to undefined
behavior, with a note strongly encouraging termination. See the
attached paper "Issues with the C++ Standard" under Chapter 30,
-"Implicit thread detach is harmful".</font>
+"Implicit thread detach is harmful".
<p lang="en-GB" align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-325</font>
+<p>UK<br>
+325
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.3.3</font>
+<p align="justify">30.3.3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">2</font>
+<p align="justify">2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">We believe
+<p align="left">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>
+completely.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Replace the extern declarations: extern const
+<p align="left" style="margin-bottom: 0in">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>
+try_to_lock{}; constexpr adopt_lock_t adopt_lock{};
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-326</font>
+<p>UK<br>
+326
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.3.3.2.1</font>
+<p align="justify">30.3.3.2.1
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">7</font>
+<p align="justify">7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">The precondition that the mutex is not owned by
+<p align="left" style="margin-bottom: 0in">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
@@ -17306,28 +14824,26 @@
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>
+lock.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Strike
-30.3.3.2.1p7</font>
+<p align="left">Strike
+30.3.3.2.1p7
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-327</font>
+<p>UK<br>
+327
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.3.3.2.2</font>
+<p align="justify">30.3.3.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">4, 9, 14,
-19</font>
+<p align="justify">4, 9, 14,
+19
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Not clear what the specification for error
+<p align="left" style="margin-bottom: 0in">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
@@ -17338,58 +14854,54 @@
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>
+is boolean and not a integer to count recursive locks.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">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>
+by the host OS.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-328</font>
+<p>UK<br>
+328
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.3.3.2.2</font>
+<p align="justify">30.3.3.2.2
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">20</font>
+<p align="justify">20
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">There is a
+<p align="left">There is a
missing precondition that owns is true, or an if(owns) test is
-missing from the effect clause</font>
+missing from the effect clause
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Add a precondition that owns == true. Add an error
+<p align="left" style="margin-bottom: 0in">Add a precondition that owns == true. Add an error
condition to detect a violation, rather than yield undefined
-behaviour.</font>
+behaviour.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-329</font>
+<p>UK<br>
+329
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5</font>
+<p align="justify">30.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">future,
+<p align="left">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>
+Advanced thread pools are to be left for TR2.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Provide a simple function along the lines of:
+<p align="left" style="margin-bottom: 0in">Provide a simple function along the lines of:
template< typename F, typename ... Args > requires
Callable< F, Args... > future< Callable::result_type >
async( F&& f, Args && ... ); Semantics are similar
@@ -17404,219 +14916,196 @@
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>
+no free worker threads then the async call should fail.]
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-330</font>
+<p>UK<br>
+330
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.1</font>
+<p align="justify">30.5.1
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left"><font size="2" style="font-size: 9pt">30.5.1 (and
+<p align="left">30.5.1 (and
then 30.5.7) refer to a specialisation of
constructible_with_allocator_prefix<> However this trait is
-not in the CD, so references to it should be removed.</font>
+not in the CD, so references to it should be removed.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Remove the reference to
+<p align="left" style="margin-bottom: 0in">Remove the reference to
constructible_with_allocator_prefix in 30.5.1 Remove paragraph
-30.5.7</font>
+30.5.7
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 79</font>
+<p>JP 79
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.5.1</font>
+<p lang="en-GB" align="left">30.5.1
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
-<p lang="en-GB" 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 lang="en-GB" align="left" style="margin-top: 0.04in">The concept of UsesAllocator and
+Allocator should be used.
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class R, class
-Alloc></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct
-uses_allocator<promise<R>, Alloc>;</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">struct
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class R, class
+Alloc>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct
+uses_allocator<promise<R>, Alloc>;
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">struct
constructible_with_allocator_prefix<promise<R>
->;</font>
+>;
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template<class R, Allocator
-Alloc></font>
-<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">concept_map UsesAllocator<promise<R>,
-Alloc>;</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template<class R, Allocator
+Alloc>
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">concept_map UsesAllocator<promise<R>,
+Alloc>;
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-331</font>
+<p>UK<br>
+331
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.3</font>
+<p align="justify">30.5.3
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Not clear what it means for a public constructor
+<p align="left" style="margin-bottom: 0in">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>
+public consumption.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Declare the
+<p align="left">Declare the
constructor as private with a note about intended friendship, or
remove the exposition-only comment and document the
-semantics.</font>
+semantics.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-332</font>
+<p>UK<br>
+332
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.4</font>
+<p align="justify">30.5.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ed</font>
+<p align="justify">Ed
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is not clear without reference to the original
+<p align="left" style="margin-bottom: 0in">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>
+it would be most useful in this case.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Provide a
+<p align="left">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>
+the promise API.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-333</font>
+<p>UK<br>
+333
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.4</font>
+<p align="justify">30.5.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left"><font size="2" style="font-size: 9pt">We expect the
+<p align="left">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>
+application of concepts.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Requires
-fully baked concepts for clause 30</font>
+<p align="left">Requires
+fully baked concepts for clause 30
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-334</font>
+<p>UK<br>
+334
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.4</font>
+<p align="justify">30.5.4
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">5</font>
+<p align="justify">5
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Behaviour of get() is undefined if calling get()
+<p align="left" style="margin-bottom: 0in">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>
+and will wait for the future to become ready.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Effects: If
+<p align="left">Effects: If
is_ready() would return false, block on the asynchronous result
-associated with *this.</font>
+associated with *this.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-335</font>
+<p>UK<br>
+335
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.4</font>
+<p align="justify">30.5.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">std::unique_future is MoveConstructible, so you
+<p align="left" style="margin-bottom: 0in">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<int> p;
std::unique_future<int> uf(p.get_future());
std::unique_future<int> uf2(std::move(uf)); uf.wait(); //
-oops, uf has no result to wait for.</font>
+oops, uf has no result to wait for.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">Add a
"waitable()" 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>
+can say: if(uf.waitable()) uf.wait();
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-336</font>
+<p>UK<br>
+336
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.4</font>
+<p align="justify">30.5.4
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">It is possible to transfer ownership of the
+<p align="left" style="margin-bottom: 0in">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
@@ -17624,72 +15113,65 @@
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>
+move-assignable for example.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a default
+<p align="left">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>
+which transfers ownership.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 80</font>
+<p>JP 80
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.5.4 , 30.5.5</font>
+<p lang="en-GB" align="left">30.5.4 , 30.5.5
<td>
<p lang="en-GB" align="left"><br>
<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
+<p>ed
<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Typo, duplicated ">"</font>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Typo, duplicated ">"
<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">"class Period>>"</font>
+"margin-top: 0.04in; margin-bottom: 0.04in">"class Period>>"
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
-<p lang="en-GB" align="left" style="margin-top: 0.04in"><font size=
-"2" style="font-size: 9pt">Remove one</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">Remove one
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-337</font>
+<p>UK<br>
+337
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.5</font>
+<p align="justify">30.5.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">shared_future should support an efficient move
+<p align="left" style="margin-bottom: 0in">shared_future should support an efficient move
constructor that can avoid unnecessary manipulation of a reference
-count, much like shared_ptr</font>
+count, much like shared_ptr
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a move
-constructor</font>
+<p align="left">Add a move
+constructor
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-338</font>
+<p>UK<br>
+338
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.5</font>
+<p align="justify">30.5.5
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">shared_future
+<p align="left">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
@@ -17698,10 +15180,9 @@
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 "const
-shared_future".</font>
+shared_future".
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Remove "=delete" from the copy-assignment operator
+<p align="left" style="margin-bottom: 0in">Remove "=delete" from the copy-assignment operator
of shared_future. Add a move-constructor
shared_future(shared_future&& rhs), and a move-assignment
operator shared_future& operator=(shared_future&& rhs).
@@ -17709,364 +15190,316 @@
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>
+that rhs has no associated state.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-339</font>
+<p>UK<br>
+339
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.6</font>
+<p align="justify">30.5.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">6,
-7</font>
+<p align="justify">6,
+7
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Move
+<p align="left">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>
+*this
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Strike 6. 7 Postcondition: associated state of
+<p align="left" style="margin-bottom: 0in">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>
+rhs has no associated state.
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-340</font>
+<p>UK<br>
+340
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.6</font>
+<p align="justify">30.5.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">11, 12,
-13</font>
+<p align="justify">11, 12,
+13
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">There is an implied postcondition that the state
+<p align="left" style="margin-bottom: 0in">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>
+with no associated state. It should be spelled out.
<p align="left"><br>
<td>
-<p align="left"><font size="2" style=
-"font-size: 9pt">Postcondition: *this has no associated
-state.</font>
+<p align="left">Postcondition: *this has no associated
+state.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-341</font>
+<p>UK<br>
+341
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.6</font>
+<p align="justify">30.5.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">promise::swap
+<p align="left">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>
+swap functions accept an rvalue reference
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Change
-promise::swap to take an rvalue reference.</font>
+<p align="left">Change
+promise::swap to take an rvalue reference.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-342</font>
+<p>UK<br>
+342
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.6</font>
+<p align="justify">30.5.6
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">std::promise is missing a non-member overload of
+<p align="left" style="margin-bottom: 0in">std::promise is missing a non-member overload of
swap. This is inconsistent with other types that provide a swap
-member function</font>
+member function
<p align="left"><br>
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add a
+<p align="left">Add a
non-member overload void swap(promise&& x,promise&&
-y){ x.swap(y); }</font>
+y){ x.swap(y); }
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-343</font>
+<p>UK<br>
+343
<td>
-<p align="justify"><font size="2" style=
-"font-size: 9pt">30.5.6</font>
+<p align="justify">30.5.6
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">3</font>
+<p align="justify">3
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Te</font>
+<p align="justify">Te
<td>
-<p align="left"><font size="2" style="font-size: 9pt">The move
+<p align="left">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>
+constructor is superfluous.
<td>
-<p align="left" style="margin-bottom: 0in"><font size="2" style=
-"font-size: 9pt">Remove the constructor with the signature template
+<p align="left" style="margin-bottom: 0in">Remove the constructor with the signature template
<class Allocator> promise(allocator_arg_t, const
-Allocator& a, promise& rhs);</font>
+Allocator& a, promise& rhs);
<p align="left"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">JP 81</font>
+<p>JP 81
+<td>
+<p lang="en-GB" align="left">30.5.8
+<td>
+<p lang="en-GB" align="left"><br>
+<td>
+<p>ed
<td>
-<p lang="en-GB" align="left"><font size="2" style=
-"font-size: 9pt">30.5.8</font>
-<td>
-<p lang="en-GB" align="left"><br>
-<td>
-<p><font size="2" style="font-size: 9pt">ed</font>
-<td>
-<p lang="en-GB" 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>
-<td>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">Correct as follows.</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(F f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F, class
-Allocator></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(allocator_arg_t,
-const Allocator& a, F f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(F&&
-f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F, class
-Allocator></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(allocator_arg_t,
-const Allocator& a, F&& f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">should be</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(F f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F, <u>Allocator
-Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(allocator_arg_t,
-const <u>Alloc</u>& a, F f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">explicit packaged_task(F&&
-f);</font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in">
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">template <class F, <u>Allocator
-Alloc</u>></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt"><u>requires CopyConstructible<F>
-&& Callable<F, ArgTypes...></u></font>
-<p lang="en-GB" align="left" style="margin-bottom: 0in"><font size=
-"2" style="font-size: 9pt">&& Convertible<Callable<F,
-ArgTypes...>::result_type, R></font>
-<p lang="en-GB" align="left" style=
-"margin-top: 0.04in; margin-bottom: 0.04in"><font size="2" style=
-"font-size: 9pt">explicit packaged_task(allocator_arg_t, const
-<u>Alloc</u>& a, F&& f);</font>
+<p lang="en-GB" align="left" style="margin-top: 0.04in">There are not requirements for F and a
+concept of Allocator dose not use.
+<td>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">Correct as follows.
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><br>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(F f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F, class
+Allocator>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(allocator_arg_t,
+const Allocator& a, F f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(F&&
+f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F, class
+Allocator>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(allocator_arg_t,
+const Allocator& a, F&& f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">should be
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>requires CopyConstructible<F>
+&& Callable<F, ArgTypes...></u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(F f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F, <u>Allocator
+Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>requires CopyConstructible<F>
+&& Callable<F, ArgTypes...></u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(allocator_arg_t,
+const <u>Alloc</u>& a, F f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>requires CopyConstructible<F>
+&& Callable<F, ArgTypes...></u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">explicit packaged_task(F&&
+f);
+<p lang="en-GB" align="left" style="margin-bottom: 0in">
+<p lang="en-GB" align="left" style="margin-bottom: 0in">template <class F, <u>Allocator
+Alloc</u>>
+<p lang="en-GB" align="left" style="margin-bottom: 0in"><u>requires CopyConstructible<F>
+&& Callable<F, ArgTypes...></u>
+<p lang="en-GB" align="left" style="margin-bottom: 0in">&& Convertible<Callable<F,
+ArgTypes...>::result_type, R>
+<p lang="en-GB" align="left" style=
+"margin-top: 0.04in; margin-bottom: 0.04in">explicit packaged_task(allocator_arg_t, const
+<u>Alloc</u>& a, F&& f);
<p lang="en-GB" align="left" style="margin-top: 0.04in"><br>
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-23</font>
+<p>DE-23
<td>
-<p><font size="2" style="font-size: 9pt">Annex B</font>
+<p>Annex B
<td>
-<p><font size="2" style="font-size: 9pt">p2</font>
+<p>p2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+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
"implementation quantities" should specify a maximum depth of
-recursion.</font>
+recursion.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">In Annex B, specify a
-recursion depth of 256 or a larger value.</font>
+<p>In Annex B, specify a
+recursion depth of 256 or a larger value.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-24</font>
+<p>DE-24
<td>
-<p><font size="2" style="font-size: 9pt">Annex B</font>
+<p>Annex B
<td>
-<p><font size="2" style="font-size: 9pt">p2</font>
+<p>p2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+DE-24 The number of
placeholders for "bind" is implementation-defined in 20.7.12.1.4,
-but no minimum is suggested in Annex B.</font>
+but no minimum is suggested in Annex B.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Add a miminum of 10
-placeholders to Annex B.</font>
+<p>Add a miminum of 10
+placeholders to Annex B.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">DE-25</font>
+<p>DE-25
<td>
-<p><font size="2" style="font-size: 9pt">Annex B</font>
+<p>Annex B
<td>
-<p><font size="2" style="font-size: 9pt">p2</font>
+<p>p2
<td>
-<p><font size="2" style="font-size: 9pt">te</font>
+<p>te
<td>
<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
+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 "number of recursively nested
-template instantiations" is inapposite.</font>
+template instantiations" is inapposite.
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt">Remove the bullet
-"Recursively nested template instantiations [17]".</font>
+<p>Remove the bullet
+"Recursively nested template instantiations [17]".
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 38</font>
+<p>FR 38
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">C.2 [diffs.library]</font>
+<p>C.2 [diffs.library]
<td>
-<p><font size="2" style="font-size: 9pt">1</font>
+<p>1
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">What is ISO/IEC 1990:9899/DAM 1? My guess
-is that's a typo for ISO/IEC</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">9899/Amd.1:1995 which I'd have expected to
-be referenced here (the tables</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">make reference to things which were
-introduced by Amd.1).</font>
+<p style="margin-bottom: 0in">What is ISO/IEC 1990:9899/DAM 1? My guess
+is that's a typo for ISO/IEC
+<p style="margin-bottom: 0in">9899/Amd.1:1995 which I'd have expected to
+be referenced here (the tables
+<p style="margin-bottom: 0in">make reference to things which were
+introduced by Amd.1).
<p><br>
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">One need probably a reference to the
-document which introduce char16_t and</font>
-<p><font size="2" style="font-size: 9pt">char32_t in C (ISO/IEC TR
-19769:2004?).</font>
+<p style="margin-bottom: 0in">One need probably a reference to the
+document which introduce char16_t and
+<p>char32_t in C (ISO/IEC TR
+19769:2004?).
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">UK<br>
-344</font>
+<p>UK<br>
+344
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Appendix
-D</font>
+<p align="justify">Appendix
+D
<td>
<p align="justify"><br>
<td>
-<p align="justify"><font size="2" style="font-size: 9pt">Ge</font>
+<p align="justify">Ge
<td>
-<p align="left"><font size="2" style="font-size: 9pt">It is
+<p align="left">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>
+step.
<td>
-<p align="left"><font size="2" style="font-size: 9pt">Add to the
+<p align="left">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>
+deprecated features are supported.
<td>
<p><br>
<tr valign="top">
<td>
-<p><font size="2" style="font-size: 9pt">FR 39</font>
+<p>FR 39
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">Index</font>
+<p>Index
<td>
<p><br>
<td>
-<p><font size="2" style="font-size: 9pt" face=
-"Arial, sans-serif">ed</font>
+<p>ed
<td>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">Some definitions seem not indexed (such as
-/trivially copyable/ or</font>
-<p style="margin-bottom: 0in"><font size="2" style="font-size: 9pt"
-face="Arial, sans-serif">/sequenced before/), indexing them would
+<p style="margin-bottom: 0in">Some definitions seem not indexed (such as
+/trivially copyable/ or
+<p style="margin-bottom: 0in">/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>
+also be considered).
<p><br>
<td>
<p><br>
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