|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r51564 - sandbox/committee/LWG
From: bdawes_at_[hidden]
Date: 2009-03-03 08:31:24
Author: bemandawes
Date: 2009-03-03 08:31:22 EST (Tue, 03 Mar 2009)
New Revision: 51564
URL: http://svn.boost.org/trac/boost/changeset/51564
Log:
cleanup
Text files modified:
sandbox/committee/LWG/0xCD1_Comments.html | 7252 ++++++++++++++++++++-------------------
1 files changed, 3649 insertions(+), 3603 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:31:22 EST (Tue, 03 Mar 2009)
@@ -19,10 +19,10 @@
</style>
<table border="1" bordercolor="#000000" cellpadding="7"
- cellspacing="0" style="border-collapse: collapse">
+ cellspacing="0" style="border-collapse: collapse" width="1627">
<tr valign="top">
- <td>
+ <td width="29">
<p><b>MB</b><b><br></b><br>
<td>
@@ -30,18 +30,18 @@
Subclause No./<br>
Annex<br></b>(e.g. 3.1)
- <td>
+ <td width="107">
<p><b>Para/<br>
- Figure/<br>Table/<br>Note</b><td>
+ Figure/<br>Table/<br>Note</b><td width="38">
<p><b>Type </b>
- <td>
+ <td width="510">
<p><b>Comment (justification for change) by the MB</b>
- <td>
+ <td width="535">
<p><b>Proposed change by the MB</b>
- <td>
+ <td width="89">
<p align="center" style=
"margin-top: 0.07in; margin-bottom: 0.04in; page-break-inside: avoid">
<b>Disposition</b>
@@ -49,19 +49,19 @@
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 1
<td>
<p>General Comment
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ge
- <td>
+ <td width="510">
<p>Interactions between several
new features appear obscure, and very few examples are
offered to guide understanding of the formal text on
@@ -70,26 +70,26 @@
<p>We worry about the complexity
of the programming model so created.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 1
<td>
<p align="left">1-16
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge/te
- <td>
+ <td width="510">
<p align="left">The
active issues identified in WG21 N2803, C++ Standard Core
Language Active Issues, must be addressed and appropriate
@@ -103,7 +103,7 @@
"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>
- <td>
+ <td width="535">
<p align="left">
Appropriate action would include making changes to the CD,
identifying an issue as not requiring a change to the CD,
@@ -111,47 +111,47 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>CA-1
<td>
<p>
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>Ge
- <td>
+ <td width="510">
<p>There are quite a number of defects for the current CD
recorded in SC22/WG21-N2803 and N2806
- <td>
+ <td width="535">
<p>Consider these comments and update ISO/IEC CD 14882
accordingly
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-1
<td>
<p>1 through 16
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ge/te
- <td>
+ <td width="510">
<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
@@ -159,192 +159,192 @@
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>CH 2
<td>
<p>all
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The issues on the issues lists shall be addressed before
the standard becomes final.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 3
<td>
<p align="left">all
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p>Latin abbreviations are presented incorrectly.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 3
<td>
<p>1 [intro.scope]
- <td>
+ <td width="107">
<p>2
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>C++ is split at the end of line.
- <td>
- <p align="left"> <td>
+ <td width="535">
+ <p align="left"> <td width="89">
<p align="left"> <tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 4
<td>
<p align="left">1.1
- <td>
+ <td width="107">
<p align="left">2
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">There is a bad line break in
"C++".
- <td>
- <p align="left"> <td>
+ <td width="535">
+ <p align="left"> <td width="89">
<p align="left"> <tr valign="top">
- <td>
+ <td width="29">
<p>UK 1
<td>
<p align="justify">1.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">List of additional facilities over C has
been extended with this standard, so should be mentioned in
the introductory material.
- <td>
+ <td width="535">
<p align="left">Add the following to the list in 1.1p2:
atomic operations concurrency alignment control
user-defined literals attributes
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 4
<td>
<p>1.2 [intro.refs]
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Is the lack of reference to ISO/CEI 9899/AC3:2007
voluntary?
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 2
<td>
<p align="justify">1.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">
<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>
- <td>
+ <td width="535">
<p align="left">... not sure ...
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 3
<td>
<p align="justify">1.3.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The definition of an argument does not seem
to cover many assumed use cases, and we believe that is not
intentional.
- <td>
+ <td width="535">
<p align="left">Revise the
definition of argument to answer question such as: Are
lambda-captures arguments? Are type names in a throw-spec
@@ -359,145 +359,148 @@
instantiations? What about user-defined literals where
parens are not used?
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 4
<td>
<p align="justify">1.3.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">... add
something about the diagnostic message being a message
issues by the implementation when translating a program
that violates the rules of the standard. ...
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 5
<td>
- <p>1.3.4 [defns.dynamic.type]
+ <p>1.3.4<br>
+ [defns.dynamic.type]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>"The dynamic type of an rvalue expression is its static
type." Is this true with rvalue references?
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 5
<td>
<p>1.3.5
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The wording is unclear as to whether it is the input or
the implementation "that is not a well-formed program".
- <td>
+ <td width="535">
<p>Reword to clarify that it is the input that is here
considered not well-formed.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 6
<td>
- <p>1.3.6 [defns.impl.defined]
+ <p>1.3.6<br>
+ [defns.impl.defined]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>There is a page break between the title and the
paragraph.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 7
<td>
- <p>1.3.13 [defns.undefined]
+ <p>1.3.13<br>
+ [defns.undefined]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>[intro.execution]/5 explicitly allows non causal
undefined behaviour,
- <td>
+ <td width="535">
<p>Adding it to the note outlying possible undefined
behaviours.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 6
<td>
<p align="left">1.3.14
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">
Unspecified behavior does not clearly state whether or not
undefined behavior is permitted. (The standard says that
@@ -505,350 +508,351 @@
but what happens if the range is not delineated? Is a
crash, or worse, allowed?) <br>
- <td>
+ <td width="535">
<p align="left">Clearly state whether or not
Unspecified behavior includes undefined behavior.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 8
<td>
- <p>1.4 [intro.compliance]
+ <p>1.4<br>
+ [intro.compliance]
- <td>
+ <td width="107">
<p>8
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 5
<td>
<p align="justify">1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">Missing checklist of implementation defined
behaviour (see ISO/IEC TR 10176, 4.1.1p6)
- <td>
+ <td width="535">
<p align="left">Provide a new annex with the missing
checklist
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 6
<td>
<p align="justify">1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">Missing annex describing potential
incompatibility to previous edition of the standard (see
ISO/IEC TR 10176, 4.1.1p9)
- <td>
+ <td width="535">
<p align="left">Provide a new annex with the missing
documentation. See n2733(08-0243) for a starting point
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 7
<td>
<p>1.5
- <td>
+ <td width="107">
<p>2
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>There is no mention of Clause 17.
- <td>
+ <td width="535">
<p>Include Clause 17 among the list of Clauses that specify
the Standard Library.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 8
<td>
<p>1.5
- <td>
+ <td width="107">
<p>2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">The paragraph
omits to mention concepts and concept maps among its list
of entities defined in the Standard Library. <br>
- <td>
+ <td width="535">
<p>Mention concepts and concept maps among the list of
entities.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 9
<td>
<p align="left">1.6
- <td>
+ <td width="107">
<p align="left">1
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The
syntax description does not account for lines that wrap.<br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 10
<td>
<p align="left">1.7
- <td>
+ <td width="107">
<p align="left">3
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The term thread is used before
defined.
- <td>
+ <td width="535">
<p align="left"><font color=
"#000000">R</font>eference 1.10 [intro.multithread].
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 11
<td>
<p>1.7
- <td>
+ <td width="107">
<p>¶ 3 last sent.
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The phrase “threads of execution” should be
accompanied by a reference to [intro.multithread].
- <td>
+ <td width="535">
<p>Insert the recommended reference.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 12
<td>
<p>1.7
- <td>
+ <td width="107">
<p>¶ 3 first sent.
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>A memory location is not an object as the sentence
claims.
- <td>
+ <td width="535">
<p>Clarify that a memory location “holds” an
object rather than that it “is” an object.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 13
<td>
<p>1.7
- <td>
+ <td width="107">
<p>¶ 3 last sent.
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>It is unclear what is meant by memory locations that are
"separate": are they distinct? non-overlapping? how much
"separation" is needed?
- <td>
+ <td width="535">
<p>Provide either a better definition of
“separate” or reword (this and subsequent
paragraphs) to avoid this term.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 14
<td>
<p>1.7
- <td>
+ <td width="107">
<p>¶ 4
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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".
- <td>
+ <td width="535">
<p>Delete the “no matter…” phrase, or
resolve the contradiction in a different way.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 15
<td>
<p>1.7
- <td>
+ <td width="107">
<p>¶ 5
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>A struct does not “contain” memory
locations.
- <td>
+ <td width="535">
<p>Reword so that a struct is “held in” one or
more memory locations.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 16
<td>
<p>1.9
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>
- <td>
+ <td width="510">
<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”.
- <td>
+ <td width="535">
<p>Remove/replace various occurrences of "sequence" in 1.9.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 8
<td>
<p align="justify">1.9
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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
@@ -856,23 +860,23 @@
of the abstract machine CONFORMING TO THE MEMORY MODEL
(1.10) with the same program and the same input.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 7
<td>
<p align="justify">1.9
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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?
@@ -881,56 +885,56 @@
multiple sequences are constrained by the memory model and
happens-before relationships defined in 1.10
- <td>
+ <td width="535">
<p align="left">Replace 'sequence' with 'sequences'.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 9
<td>
<p>1.9 [intro.execution]
- <td>
+ <td width="107">
<p>16
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>This example use int *v while the other examples seems
to use notation like int* v.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 17
<td>
<p>1.10
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>Ge
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Replace first
sentence of para 1 as follows:
@@ -947,30 +951,30 @@
functions, and automatic variables, are accessible to all
threads in the same program.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 9
<td>
<p align="justify">2.1
- <td>
+ <td width="107">
<p align="justify">2, 4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Replace
undefined behaviour with conditionally supported behavior.
Conditional behaviour may be implementation defined,
@@ -981,51 +985,53 @@
implictly added, with an empty line to follow if the last
character was a back-slash.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK 10
<td>
<p align="justify">2.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">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.
- <td>
+ <td width="535">
<p align="left">How the compiler treats non-empty sequences
of whitespace should be left unspecified, rather than
implementation-defined.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 10
<td>
- <p>2.1 [lex.phases]/5 and 2.2 [lex.charset]/3
+ <p>2.1 [lex.phases]/5<br>
+ and<br>
+ 2.2 [lex.charset]/3
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>[defns.multibyte] "the
extended character set."
@@ -1052,14 +1058,14 @@
different locale. During phase 5, they are using an
implementation defined char set.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1068,28 +1074,28 @@
<td>
<p align="justify">2.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Deprecate the whole of 2.3 and move it to
appendix D.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1098,13 +1104,13 @@
<td>
<p align="justify">2.4, 2.8
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This undefined
behaviour in token concatenation is worrying and we believe
hard to justify. An implementation should either support
@@ -1113,106 +1119,107 @@
implementations, although unconditionally requiring a
diagnostic would lead to more portable programs.
- <td>
+ <td width="535">
<p align="left">Replace undefined behaviour with
conditionally supported behaviour with implementation
defined semantics.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 18
<td>
<p>2.4
- <td>
+ <td width="107">
<p>¶ 2
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The paragraph begins with an empty line.
- <td>
+ <td width="535">
<p>Delete the empty line.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 11
<td>
<p>2.4 [lex.pptokens]
- <td>
+ <td width="107">
<p>3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>There are spurious empty lines.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 12
<td>
- <p>2.5 [lex.digraph] and 2.11 [lex.key]/2
+ <p>2.5 [lex.digraph]<br>
+ and 2.11 [lex.key]/2
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The alternative representations are reserved as such
even in attribute. Is that what is wanted?
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 2
<td>
<p>2.5
- <td>
+ <td width="107">
<p lang="fi-FI" style="margin-top: 0.04in">Table 2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Add eq, for spelling out == in order to distinguish it
from the assignment operator.
- <td>
+ <td width="535">
<p>See eq-keyword.doc, eq-keyword.ppt
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1221,27 +1228,27 @@
<td>
<p align="justify">2.9
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1250,104 +1257,103 @@
<td>
<p align="justify">2.11
- <td>
+ <td width="107">
<p align="justify">table 3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The table is
nearly sorted, but not quite. It was sorted in previous
versions of the standard.
- <td>
+ <td width="535">
<p align="left">Sort the table.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 1
<td>
<p>2.11
- <td>
+ <td width="107">
<p align="left">Table 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Keywords in the table are listed disorderly. Also, a
part of a frame of the table is not drawn.
- <td>
+ <td width="535">
<p align="left">Sort it in alphabetical order.
Complete the table frame.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 19
<td>
<p>2.13.1
- <td>
+ <td width="107">
<p>Table 5, rows “l or L” and “ll or
LL”
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The final entry in the last column (“unsigned long
int”) is incorrect.
- <td>
+ <td width="535">
<p>Replace the incorrect entries by “unsigned long
long int”.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 20
<td>
<p align="left">2.13.1, 2.13.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">Long strings of digits in
literals are a continuing problem in the production and
maintenance of programs.
- <td>
+ <td width="535">
<p align="left">
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=
+ separate digits. <font color="#000080" size="2" style="font-size: 11pt"><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">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2281.html></u></font></font>
+ "_blank">http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2281.html></u></font>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1356,28 +1362,28 @@
<td>
<p align="justify">2.13.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Inconsistency between definition of a
multicharacter literal and a wide character literal
containing multiple c-chars.
- <td>
+ <td width="535">
<p align="left">Define the term
multicharacter wide literal for a wchar_t literal
containing multiple elements, and specify its type is
integer (or wider)
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1386,64 +1392,64 @@
<td>
<p align="justify">2.13.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Not immediately clear why the question mark
needs escaping. A note would help.
- <td>
+ <td width="535">
<p align="left">Add a note
explaining that the ? character may need escaping to avoid
- accidentally creating a trigraph.<td>
+ accidentally creating a trigraph.<td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 2
<td>
<p align="left">2.13.4
- <td>
+ <td width="107">
<p align="left">
1<sup>st</sup> <font size="2" style=
"font-size: 11pt">para, 2<sup>nd</sup> line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">Typo, R"..." should be
R"[...]"
- <td>
+ <td width="535">
<p>Correct typo.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 3
<td>
<p align="left">2.13.4
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
- style="font-size: 11pt">para</font><td>
+ style="font-size: 11pt">para</font><td width="38">
<p>te
- <td>
+ <td width="510">
<p>We think that the explanation of d-char-sequence is not
enough.
- <td>
+ <td width="535">
<p align="left">Add
the following.
@@ -1502,25 +1508,25 @@
<p align="left" style=
"text-indent: 0.69in; margin-bottom: 0in">- end note]
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 4
<td>
<p align="left">2.13.4
- <td>
+ <td width="107">
<p align="left">3<sup>rd</sup> <font size="2"
style="font-size: 11pt">para, 1st line of
example</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo. Lack of a necessary backslash in the first line of
the example as follows:
@@ -1552,110 +1558,110 @@
<p align="left">c]";
- <td>
+ <td width="535">
<p align="left">Correct typo.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 21
<td>
<p>2.13.4
- <td>
+ <td width="107">
<p>¶ 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The paragraph, marked as a Note, contains an embedded
example not marked as such.
- <td>
+ <td width="535">
<p>Denote the code (and perhaps also its commentary) as an
Example.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 22
<td>
<p>2.13.4
- <td>
+ <td width="107">
<p>¶ 3
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The code does not have the effect predicted by its
accompanying narrative.
- <td>
+ <td width="535">
<p>Append a backslash to the first line of the code.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 5
<td>
<p align="left">2.13.4
- <td>
+ <td width="107">
<p align="left">
11<sup>th</sup> <font size="2" style=
"font-size: 11pt">para, Table 7</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>It is not explicit how to combine raw-string and
non-raw-string.
- <td>
+ <td width="535">
<p>Add rules containing raw-string in the table 7.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 13
<td>
<p>2.13.4 [lex.string]
- <td>
+ <td width="107">
<p>3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Shouldn't the assert be
<p>assert(std::strcmp(p, "a\nb\nc") == 0);
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1664,13 +1670,13 @@
<td>
<p align="justify">2.13.4
- <td>
+ <td width="107">
<p align="justify">10
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It would be
preferred for attempts to modify string literals to be
diagnosable errors. This is not possible due to the
@@ -1684,16 +1690,16 @@
covered under the const_cast rules so needs no further
detail here.
- <td>
+ <td width="535">
<p align="left">(asssuming deprecated conversion to
non-const array is removed or can be turned off) Strike the
sentence on undefined behaviour.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1702,13 +1708,13 @@
<td>
<p align="justify">2.13.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The addition of
static_assert (7p4) to the language raises the need to
concatenate string representations of integral constant
@@ -1721,7 +1727,7 @@
required, although generalizing to other literal types
would be useful.
- <td>
+ <td width="535">
<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:
@@ -1729,11 +1735,11 @@
although it could combine with type specifier in the same
way that the R prefix does, supporting u8I, uI, UI and LI.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1742,18 +1748,18 @@
<td>
<p align="justify">2.13.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Refactor
string-literal grammar as: (note - current Drupal view
loses formatting which is vital to clearly read the
@@ -1762,28 +1768,28 @@
u8 u U L string-literal-body: " s-char-sequenceOPT " R
raw-string
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 14
<td>
<p>3 [basic]
- <td>
+ <td width="107">
<p>7
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>"In general it is necessary to determine whether a name
denotes one of these entities before parsing the program
that contains it."
- <td>
+ <td width="535">
<p>Would prefer
<p>"... before continuing to
@@ -1798,35 +1804,35 @@
<p>as some names denotes entities declared after the first
occurrence.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 15
<td>
<p>3 [basic]
- <td>
+ <td width="107">
<p>8
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>/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/).<td>
+ /identifier/).<td width="535">
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1835,13 +1841,13 @@
<td>
<p align="justify">3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">Chapter 3
("Basic concepts") provides common definitions used in the
rest of the document. Now that we have concepts as a
@@ -1849,14 +1855,14 @@
as it does not refer to the language feature but to
definitions used in the document.
- <td>
+ <td width="535">
<p align="left">Change the title to "Basic definitions".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1865,26 +1871,26 @@
<td>
<p align="justify">3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Rename the chapter Basic ???. THe note in
p2 specifically needs similar rewording
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1893,26 +1899,26 @@
<td>
<p align="justify">3
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">References are
frequently considered variables, but this definition only
applies to objects.
- <td>
+ <td width="535">
<p align="left">Add "or reference" after both uses of
"object"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1921,26 +1927,26 @@
<td>
<p align="justify">3.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">
alias-declarations are not definitions and should be added
to the list
- <td>
+ <td width="535">
<p align="left">Add alias-declaration after typedef
declaration.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1949,13 +1955,13 @@
<td>
<p align="justify">3.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The current
words suggest the declaration of a static integral constant
data member of a class cannot be a definition. Trying to
@@ -1963,17 +1969,17 @@
more confusion than it solves, so suggest a footnote to
call out the special case
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -1982,13 +1988,13 @@
<td>
<p align="justify">3.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Example is
misleading as implicitly defined default constructor uses
default initialization, not value initialization, for
@@ -1996,17 +2002,17 @@
makes no difference, but it makes a big difference for
fundamental types and pointers.
- <td>
+ <td width="535">
<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() { } };
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -2015,26 +2021,26 @@
<td>
<p align="justify">3.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">THe one
definition rule should cover references, and unless the
term 'variable' is extended to cover references the list in
- this paragraph is incomplete.<td>
+ this paragraph is incomplete.<td width="535">
<p align="left">Either include references in the definition
of 'variable' (see earlier comment) or add reference to the
list in this paragraph.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -2043,50 +2049,51 @@
<td>
<p align="justify">3.2
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">A class type
must be complete when catching exceptions, even by
reference or pointer. See 15.3.
- <td>
+ <td width="535">
<p align="left">Add "when used in an exception-handler
(15.3)" to the list.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 16
<td>
- <p>3.3 [Declarative regions and scopes.]
+ <p>3.3 [Declarative<br>
+ regions and scopes.]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The scope of function
parameters is defined, but what is the scope of template
parameters?
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -2095,24 +2102,24 @@
<td>
<p align="justify">3.3.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Class templates
are not classes, so we should include this case.
- <td>
+ <td width="535">
<p align="left">ammend "class" to "class or class template"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK
@@ -2121,42 +2128,43 @@
<td>
<p align="justify">3.3.10
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">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;"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 17
<td>
- <p>3.5 [Program and linkage]
+ <p>3.5 [Program<br>
+ and linkage]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>This section does not specify
whether concept names have linkage.
@@ -2165,54 +2173,54 @@
that would be a bit surprising and curious. What is the
rationale?
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
30
<td>
<p align="justify">3.5
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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?
- <td>
+ <td width="535">
<p align="left">Add a note to clarify that concepts don't
need linkage.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
31
<td>
<p align="justify">3.5
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -2220,72 +2228,73 @@
should lose linkage with it, which we assume is the
intended consequence.
- <td>
+ <td width="535">
<p align="left">Clarify rules for namespaces inside nested
namespaces, or remove the restriction.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 23
<td>
<p align="left">3.5
- <td>
+ <td width="107">
<p align="left">6
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">Bad
paragraph break.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 18
<td>
<p>3.5 [basic.link]
- <td>
+ <td width="107">
<p>6
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The paragraph number is not aligned with the text.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 19
<td>
- <p>3.6 [Start and termination]
+ <p>3.6 [Start<br>
+ and termination]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>This section completely
ignores the real world and practical case of dynamically
linked or loaded libraries. In current computing
@@ -2299,55 +2308,55 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
32
<td>
<p align="justify">3.6.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Do we really want to allow: constexpr int
main() { return 0; } as a valid program?
- <td>
+ <td width="535">
<p align="left">Add constexpr to
the list of ill-formed things to annotate main <br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 24
<td>
<p align="left">3.6.1
- <td>
+ <td width="107">
<p align="left">4
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">std::quick_exit is not
referenced.
- <td>
+ <td width="535">
<p align="left">
Reference std::quick_exit as well as std::exit in saying
that automatic objects are not destroyed. It should
@@ -2356,48 +2365,48 @@
from within destructors for static or thread duration
objects.</font>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 25
<td>
<p>3.6.3
- <td>
+ <td width="107">
<p>¶ 2 last sent.
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The parenthesized phrase, introduced via
“i.e.” is in the nature of an example.
- <td>
+ <td width="535">
<p>Change “i.e.” to “e.g.”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 6
<td>
<p align="left">3.7.4.1
- <td>
+ <td width="107">
<p align="left">4<sup>th</sup> <font size="2"
style="font-size: 11pt">para, 4<sup>th</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
@@ -2437,26 +2446,26 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p>Correct typo.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-3
<td>
<p>3.7.4.3
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-3 It is
unclear whether the following code has well-defined
@@ -2469,31 +2478,31 @@
<p align="left">delete &i;
- <td>
+ <td width="535">
<p>Clarify that &i is considered a safely-derived
pointer value.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 26
<td>
<p align="left">3.8
- <td>
+ <td width="107">
<p align="left">1 and 5
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">Use of object fields during
destruction is excessively and erroneously constrained.
- <td>
+ <td width="535">
<p align="left">See
the attached document "Issues with the C++ Standard" under
Chapter 3 "Use of objects, especially from other threads,
@@ -2501,46 +2510,46 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 27
<td>
<p>3.9
- <td>
+ <td width="107">
<p>¶ 9 first sent.
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>There is a superfluous/extraneous “and”.
- <td>
+ <td width="535">
<p>Delete “and” from the phrase “and
std::nullptr_t”.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 20
<td>
<p>3.9 [Types]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The phrase 'effective type'
is defined and used in a way that is incompatible with C99.
Such a deliberate incompatible choice of terminology is
@@ -2549,32 +2558,32 @@
strongly suggest that the phrase 'effective type' not be
used in such an incompatible way.
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 7
<td>
<p align="left">3.9.2
- <td>
+ <td width="107">
<p align="left">3<sup>rd</sup> <font size="2"
style="font-size: 11pt">para, 13<sup>th</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>over-aligned type was added as new notion. So it is
preferable to add the link after that.
- <td>
+ <td width="535">
<p align="left">Add
(3.11) after over-aligned type as the link.
@@ -2591,55 +2600,55 @@
valid pointer value for an over-aligned type<font color=
"#008000">(3.11)</font>.—end note ]</font>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 28
<td>
<p>3.9.3
- <td>
+ <td width="107">
<p>¶ 5 first sent.
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">The closing
braces of the first two sets are preceded by extraneous
space.
- <td>
+ <td width="535">
<p>Delete the extra spaces.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE 4
<td>
<p>4.2
- <td>
+ <td width="107">
<p>p2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Consider
applying the proposed resolution presented in core issue
@@ -2650,28 +2659,28 @@
"pointer to char32_t" in 4.2 paragraph 2 and 15.1 paragraph
3.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>CH 1
<td>
<p>4.9 and 5.2.9
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>With respect to the target type, pointer to members
should behave like normal pointers (least surprise
principle).
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">The standard
should allow implicit conversions from ``pointer to member
@@ -2680,157 +2689,157 @@
of class type and B is a public base of D, It should allow
explicit conversion the other way around.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-5
<td>
<p>4.11, 5.3.1, 5.5
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>DE-5 Ref-qualification has not been integrated with
pointer-to-members.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
33
<td>
<p align="justify">4.13
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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?
- <td>
+ <td width="535">
<p align="left">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)."
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
34
<td>
<p align="justify">4.13
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">6th bullet, "the
rank of char" - first letter should be capitalised for
consistency with the other bullets
- <td>
+ <td width="535">
<p align="left">The rank of char
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
36
<td>
<p align="justify">5.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">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.<td>
+ this and (e) are also lambda expressions.<td width="535">
<p align="left">Delete this paragraph.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
37
<td>
<p align="justify">5.1
- <td>
+ <td width="107">
<p align="justify">11
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Member function
templates are not member functions, so should also be
listed in the 3rd bullet
- <td>
+ <td width="535">
<p align="left">Add member function templates to the 3rd
bullet
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
38
<td>
<p align="justify">5.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -2838,27 +2847,27 @@
this_type; decltype( [this]{ return this->memfun(); } )
my_lambda;
- <td>
+ <td width="535">
<p align="left">... words to follow ...
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 8
<td>
<p align="left">5.1
- <td>
+ <td width="107">
<p align="left">7<sup>th</sup> <font size="2"
style="font-size: 11pt">para, Syntax rules</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">In
the current syntax definition, a scope operator(::) cannot
be applied to decltype, but it should be. It would be
@@ -2871,7 +2880,7 @@
<p align="left">decltype(v)::value_type i = 0;
// int i = 0;
- <td>
+ <td width="535">
<p align="left">Add
“decltype ( expression ) :: “ to
nested-name-specifier syntax like below.
@@ -2904,23 +2913,23 @@
"text-indent: 0.13in; margin-bottom: 0in">decltype (
expression ) ::
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 9
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">It
would be preferable that “&&” could be
specified in a lambda expression to declare move capture.
@@ -3094,29 +3103,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add
move capture in a lambda expression.
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 10
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">In
the current syntax definition, a returned type of a
function object cannot be obtained by using result_of from
@@ -3152,54 +3161,54 @@
function object without result_type. But it is preferable
to be able to obtain it with template.
- <td>
+ <td width="535">
<p align="left">Add
result_type to the syntax of an unnamed function object
generated by a lambda expression.
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 29
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
standard does not state whether or not direct recursion of
lambdas is possible.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 30
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
<font color="#000000">The standard does not clarify the
meaning of</font> <font size="2" style=
@@ -3208,26 +3217,26 @@
lambdas. Does it mean this lambda, or this class within
which the lambda is nested?</font></font>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 31
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
<font color="#000000">The current wording does not specify
how context capturing and name resolution</font>
@@ -3235,33 +3244,33 @@
inner lambda refers to the outer lambda's locals variables
and parameters.</font>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
45
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">para 2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Change the text
"a closure object behaves as a function object" to "a
closure object is a built-in object which behaves as a
@@ -3273,11 +3282,11 @@
on library. (Marked as technical comment anyway because
this clarity is technically important).
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US
32
@@ -3286,64 +3295,64 @@
<td>
<p align="left">5.1.1
- <td>
+ <td width="107">
<p align="left">3
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The
final italic "this" in the paragraph should be a teletype
"this".
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
39
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">11
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Add "F has an implicitly-declared
destructor".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
40
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -3355,30 +3364,30 @@
behaviour: int i; reference_closure<void ()> f; if
(blah) { f = [&i]() { }; } if (f) f();
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
41
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -3389,35 +3398,35 @@
relying on the idea of implicitly slicing objects is
uncomfortable.
- <td>
+ <td width="535">
<p align="left">Replace inheritance with implicit
conversion.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
42
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Add a new
paragraph: "A lambda expression with an empty capture set
shall be convertible to pointer to function type R(P),
@@ -3428,24 +3437,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
43
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The note spells
out the intent that objects from lambda-expressions with an
effective capture list of references should be implemented
@@ -3456,28 +3465,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">... provvide exceptions in the right places
...
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
44
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There is a
strong similarity between a [&]{} lambda capturing a
stack frame, and a [this]{} lambda binding a member
@@ -3490,29 +3499,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Extend reference_closure requirement to
cover [this] lambdas. Consider a simple syntax for creating
such bound expressions.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
46
<td>
<p align="justify">5.1.1
- <td>
+ <td width="107">
<p align="justify">para 12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The requirement that a lambda meeting
appropriate conditions be an object derived from
reference_closure makes lambda the language feature
@@ -3520,7 +3529,7 @@
of the language on the library and bloats the definition of
freestanding C++.
- <td>
+ <td width="535">
<p align="left">Replace text "is
publicly derived from" with "shall be implemented in a
manner indistinguishable from". This places an ABI
@@ -3530,23 +3539,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-6
<td>
<p>5.1.1, 20.7.18
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>DE-6 Some uses of lambda expressions refer to
specializations of the unconstrained class template
std::reference_closure (5.1.1). If the lambda expression
@@ -3554,80 +3563,80 @@
parameter type for the lambda depend on a template
parameter (see 14.10), such a use is ill-formed.
- <td>
+ <td width="535">
<p>In 20.7.18, for the class template
std::reference_closure, require Returnable for R and
VariableType for each of the ArgTypes.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-7
<td>
<p>5.1.1
- <td>
+ <td width="107">
<p>p10
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>DE-7 The note at the end of paragraph 10 appears to be
garbled.
- <td>
+ <td width="535">
<p>Remove "or references" in the note.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-8
<td>
<p>5.1.1
- <td>
+ <td width="107">
<p>p10
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>DE-8 The construction of the function call operator
signature is missing specifications for the ref-qualifier
and the attribute-specifier.
- <td>
+ <td width="535">
<p>Add bullets that say that the ref-qualifier and the
attribute-specifier are absent.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 33
<td>
<p>5.1.1
- <td>
+ <td width="107">
<p>11
- <td>
+ <td width="38">
<p>Ge
- <td>
+ <td width="510">
<p>There is no definition of “move constructor”
or “move operation”
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Since this is
the first place the terms are used, a definition should
@@ -3635,23 +3644,23 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-9
<td>
<p>5.1.1
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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
@@ -3659,51 +3668,51 @@
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
.
- <td>
+ <td width="535">
<p>Add a few well-chosen examples.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
52
<td>
<p align="justify">5.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph seens out of place,
assignment expressions are covered in 5.17
- <td>
+ <td width="535">
<p align="left">Move p3 to subsection 5.17
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
53
<td>
<p align="justify">5.2.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -3711,30 +3720,30 @@
definition when describing the use of brace-init-lists
inside [].
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
59
<td>
<p align="justify">5.2.2
- <td>
+ <td width="107">
<p align="justify">7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -3742,160 +3751,160 @@
template <class ... Types> void f(Types ... pack);
f(1, 2, 3);
- <td>
+ <td width="535">
<p align="left">Clarify that this sentence only applies
where the ellipsis is used.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
60
<td>
<p align="justify">5.2.5
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Add "and" before vq
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
61
<td>
<p align="justify">5.2.5
- <td>
+ <td width="107">
<p align="justify">p1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Clarify in footnote 60 that this will not
happen if the whole expression is an unevaluated operand.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
62
<td>
<p align="justify">5.2.5
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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?
- <td>
+ <td width="535">
<p align="left">Replace 'not an lvalue' with 'is an
rvalue'.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-10
<td>
<p>5.2.5
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p>Adjust the presentation of the types involved as
appropriate.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
63
<td>
<p align="justify">5.2.6
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Paragraph 2 is missing its number.
- <td>
+ <td width="535">
<p align="left">Add one.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
64
<td>
<p align="justify">5.2.7
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">A new name R is introduced for use in
paragraphs 3 and 4. But R is the same as T.
- <td>
+ <td width="535">
<p align="left">Replace R with T
and replace "the required result type (which, for
convenience, will be called R in this description)" with
@@ -3903,24 +3912,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
65
<td>
<p align="justify">5.2.7
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">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
@@ -3929,60 +3938,60 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace "an lvalue referring to" with
"reference", twice.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
66
<td>
<p align="justify">5.2.8
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">typeid may
return "an implementation-defined class derived from std ::
type_info". The derivation must be public.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">an implementation-defined class publicly
derived from std :: type_info
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
67
<td>
<p align="justify">5.2.9
- <td>
+ <td width="107">
<p align="justify">1, 2, 3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Paragraph 1 specifies when the result of
static_cast is an lvalue; repeating it is unnecessary.
- <td>
+ <td width="535">
<p align="left">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
@@ -3992,30 +4001,30 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
54
<td>
<p align="justify">5.2.10
- <td>
+ <td width="107">
<p align="justify">3, 6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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?
- <td>
+ <td width="535">
<p align="left">In para 6,
replace unspecified with implementation-defined.
Alternatively, delete paragraph 3, since individual cases
@@ -4023,30 +4032,30 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
55
<td>
<p align="justify">5.2.10
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Strike the note
about definition of casting away constness, preserve the
cross-reference. The second sentance on reintrepret_cast to
@@ -4055,24 +4064,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
56
<td>
<p align="justify">5.2.10
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The notion of
safely derived pointers means this conversion may not be as
safe in the revised standard as the original. It would be
@@ -4081,58 +4090,58 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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]
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
57
<td>
<p align="justify">5.2.10
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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]
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
58
<td>
<p align="justify">5.2.11
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">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
@@ -4142,15 +4151,15 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace lvalue with "lvalue or rvalue"
twice.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US
34
@@ -4159,65 +4168,65 @@
<td>
<p align="left">5.3
- <td>
+ <td width="107">
<p align="left">1
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The list of unary operator
should be in teletype font.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
68
<td>
<p align="justify">5.3.1
- <td>
+ <td width="107">
<p align="justify">2-9
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">All the unary operands other than * return
rvalues - but this is not stated.
- <td>
+ <td width="535">
<p align="left">Add a paragraph
1a "The following unary operators all produce results that
are rvalues."
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
69
<td>
<p align="justify">5.3.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">If we cannot
bind references/take address of functions in concept_maps,
does that mean we cannot use generic bind in constrained
@@ -4231,27 +4240,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">... unknown ...
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
70
<td>
<p align="justify">5.3.3
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The sizeof
operator shall not be applied to ... an enumeration type
before all its enumerators have been declared We should
@@ -4259,28 +4268,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change "an enumeration type" to "an
enumeration type whose underlying type is not fixed".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
71
<td>
<p align="justify">5.3.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -4289,27 +4298,27 @@
consistency, use the same form of initiailization for the
deduction as the new expression.
- <td>
+ <td width="535">
<p align="left">Replace T x = e; with T x(e);
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
72
<td>
<p align="justify">5.3.4
- <td>
+ <td width="107">
<p align="justify">7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The library
headers have been carefully structured to limit the
dependencies between core language and specific headers.
@@ -4322,28 +4331,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Throw std::bad_alloc instead of
std::length_error.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
73
<td>
<p align="justify">5.3.4
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">A class type
with conversion operator can only be used if the conversion
type is constexpr and the class is a literal type. Adding
@@ -4352,27 +4361,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add 'literal' before 'class type'
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
74
<td>
<p align="justify">5.3.4
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">operators, like
constructors and destructors, do not have names. However,
in certain circumstances they can be treated as if they had
@@ -4381,105 +4390,105 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
35
<td>
<p align="justify">5.3.4
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Missing period in middle of paragraph
between "in the scope of T" and "If this lookup fails"
- <td>
+ <td width="535">
<p align="left">Add a period
between "in the scope of T" and "If this lookup fails"
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
75
<td>
<p align="justify">5.3.5
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">A paragraph
strarting with [Note... is easily skipped when reading,
missing the normative text at the end.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Swap order of the note and normative text.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 21
<td>
<p>5.3.6 [Alignof
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Should not the type of alignof-expression be of type
std::max_align_t?
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 35
<td>
<p align="left">5.8
- <td>
+ <td width="107">
<p align="left">2 and 3
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">
There is curious spacing in the expressions "E1 <<E2"
and "E1 >>E2". This is a formatting change since
@@ -4487,27 +4496,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
47
<td>
<p align="justify">5.14 / 5.15
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Why are the
descriptions of order of evaluation of expressions and side
effects different between && and || operators. The
@@ -4517,28 +4526,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Pick one form of wording as 'the best' and
apply it in both places.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
48
<td>
<p align="justify">5.18
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The defining
feature of the comma operator is the guaranteed sequencing
of two expressions. This guarantee is lost when presented
@@ -4547,36 +4556,36 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add: [Note: There are no guarantees on the
order of value computation for an overloaded comma operator
-- end note]
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
49
<td>
<p align="justify">5.19
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Add an escape
clause to allow the implementation to reject excessively
deep nesting of constexpr function evaluations. (This can
@@ -4588,54 +4597,54 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
50
<td>
<p align="justify">5.19
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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)
- <td>
+ <td width="535">
<p align="left">Change
"effective integral type" to "effective integral or
enumeration type" in the 4th bullet, 1st sub-bullet.
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
51
<td>
<p align="justify">5.19
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">typeid
expressions can never be constant, whether or not the
operand is a polymorphic class type. The result of the
@@ -4645,56 +4654,58 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the words "whose operand is of a
polymorphic class type" on the bullet for typeid
expressions.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
76
<td>
<p align="justify">6.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Do we really need two different terms that
say the same thing?
- <td>
+ <td width="535">
<p align="left">Pick either
'block' or 'compound statement' as the preferred term and
use it consistently throughout the standard.
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 22
<td>
- <p>6.4.2 [The switch statement]
+ <p>6.4.2<br>
+ [The switch<br>
+ statement]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The constant-expression in
<p>
@@ -4712,27 +4723,27 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
77
<td>
<p align="justify">6.5
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The terms i/o
operation, synchronize operation and atomic operation have
very specific meanings within the standard. The paragraph
@@ -4741,34 +4752,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Profide a cross-reference for the terms:
i/o operation, synchronize operation and atomic operation
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 11
<td>
<p align="left">6.5.4
- <td>
+ <td width="107">
<p align="left">1<sup>st</sup> <font size="2"
style="font-size: 11pt">para, 5<sup>th</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>There is no _RangeT type in the equivalent code to
“range-base for” statement. It existed in
N2049.
- <td>
+ <td width="535">
<p align="left">Add
a typedef for _RangeT in the example as follows:
@@ -4818,29 +4829,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
78
<td>
<p align="justify">6.5.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Including the header
<iterator_concepts> is far too unwieldy to enable an
important and (expected to be) frequently used syntax.
- <td>
+ <td width="535">
<p align="left">Merge
<iterator_concepts> into <concepts> and change
6.5.4p2 to refer to <concepts>, or make the Range
@@ -4849,24 +4860,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
79
<td>
<p align="justify">6.5.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The definition
of for (for-range-declaration : expression) statement is
expanded in terms which require a Range concept, and the
@@ -4879,7 +4890,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
@@ -4887,23 +4898,23 @@
expression is an initializer_list, expand range-for
similarly without requiring <iterator_concepts>.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-11
<td>
<p>6.9
- <td>
+ <td width="107">
<p>p1
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-11 A
sentence in paragraph 1 reads: "Outside of a constrained
@@ -4914,28 +4925,28 @@
<p>
- <td>
+ <td width="535">
<p>State that such a late-checked block has the same
meaning as if the late_check keyword were absent.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
80
<td>
<p align="justify">7
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Many of the
sections and major subsections open with a sentence
summarising the content. I'm not sure this is necessary;
@@ -4949,27 +4960,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the first sentence.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
81
<td>
<p align="justify">7
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">String literal
concatenation happens in phase 6, before parsing, so it is
legal and useful to use it for the string literal in a
@@ -4978,29 +4989,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a note: Multiple adjacent string
literals may be used instead of a single /string-literal/;
see [lex.phases].
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
82
<td>
<p align="justify">7
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Paragraph 2
talks about declarations that can have nested declarations
within them. It doesn't mention scoped enumerations - but
@@ -5009,28 +5020,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add "scoped enumeration" to the list in the
second sentence.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
83
<td>
<p align="justify">7.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The longest
sequence of decl-specifiers that could possibly be a type
name is taken as the decl-specifier-seq of a declaration.
@@ -5039,28 +5050,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Not sure. I understand the rule, just not
how to say it.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
84
<td>
<p align="justify">7.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The grammar
includes alignment-specifier as a production for
decl-specifier, but there is no production for
@@ -5069,27 +5080,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Delete the production (including the
duplicate in A6)
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 3
<td>
<p>7.1
- <td>
+ <td width="107">
<p>[dcl.spec.auto]
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">While
it’s considered too late for this standard revision,
@@ -5099,27 +5110,27 @@
<p>
- <td>
+ <td width="535">
<p>See restricted-auto.ppt
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
85
<td>
<p align="justify">7.1.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">... the
init-declarator-list of the declaration shall not be empty
(except for global anonymous unions, which shall be
@@ -5130,27 +5141,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace "global" with "namespace scope".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
86
<td>
<p align="justify">7.1.1
- <td>
+ <td width="107">
<p align="justify">2,3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The register
keyword serves very little function, offering no more than
a hint that a note says is typically ignored. It should be
@@ -5161,28 +5172,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Deprecate current usage of the register
keyword.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
87
<td>
<p align="justify">7.1.1
- <td>
+ <td width="107">
<p align="justify">1, 4, 5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Why require two
keywords, where one on its own becomes ill-formed?
thread_local should imply 'static' in this case, and the
@@ -5192,55 +5203,55 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Drop requirement to combine static keyword
with thread_local at block-scope inside a function
definition.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 36
<td>
<p align="left">7.1.1
- <td>
+ <td width="107">
<p align="left">4
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
permission to use thread_local static data members is
missing.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the static members as a
permitted use.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 23
<td>
<p>7.1.5 [constexpr]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>'constexpr' functions should
be allowed to take const reference parameters, as long as
their uses are in a context where a constant expression may
@@ -5262,26 +5273,26 @@
<p style="margin-top: 0.04in"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 12
<td>
<p align="left">7.1.5
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">It should be
allowed to define constexpr recursively.
@@ -5412,29 +5423,29 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left">
Allow constexpr recursion.
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 37
<td>
<p align="left">7.1.6.1
- <td>
+ <td width="107">
<p align="left">1
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">
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
@@ -5444,27 +5455,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
89
<td>
<p align="justify">7.1.6.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The two
normative sentences in this paragraph appear to duplicate
text elsewhere - but they aren't exact duplicates, which
@@ -5491,29 +5502,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
90
<td>
<p align="justify">7.1.6.2
- <td>
+ <td width="107">
<p align="justify">para 1 and table 9
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The grammar in
paragraph one makes "nested-name-specifier template
simple-template-id" a simple-type-specifier, but unlike all
@@ -5521,29 +5532,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a row to table 9 mentioning
simple-template-id and punting to clause 14 (cf
decltype(expression)).
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
91
<td>
<p align="justify">7.1.6.2
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">5.1/5 says "[A]
parenthesized expression can be used in exactly the same
contexts as those where the enclosed expression can be
@@ -5561,30 +5572,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
92
<td>
<p align="justify">7.1.6.3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The note
correctly indicates that, if T is a template type
parameter, then "friend class T;" is ill-formed. It might
@@ -5593,28 +5604,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Either strike the note or add reference to
11.4/3 and/or mention of "friend T;".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
93
<td>
<p align="justify">7.1.6.3
- <td>
+ <td width="107">
<p align="justify">Grammar before para 1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">In the third
production, "enum ::opt nested-name-specifieropt
identifier", enum should not be in italics; its referring
@@ -5622,34 +5633,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change to keyword font
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
94
<td>
<p align="justify">7.1.6.4
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">The auto
type-specifier signifies that the type of an object being
declared shall be deduced from its initializer or that the
@@ -5658,24 +5669,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
95
<td>
<p align="justify">7.1.6.4
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">(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
@@ -5689,27 +5700,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change "in a new-type-id" to "in a
new-type-id or type-id in a new-expression".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 24
<td>
- <p>7.1.6.4 [auto specifier]
+ <p>7.1.6.4<br>
+ [auto specifier]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>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
@@ -5758,52 +5770,52 @@
<p style="margin-top: 0.04in"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 38
<td>
<p align="left">7.2
- <td>
+ <td width="107">
<p align="left">1
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The
discussion of attribute specifiers should be a separate
paragraph.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 39
<td>
<p align="left">7.2
- <td>
+ <td width="107">
<p align="left">2
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
paragraph says in part "An opaque-enum-declaration
declaring an unscoped enumeration shall not omit the
@@ -5814,28 +5826,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p 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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 13
<td>
<p align="left">7.2
- <td>
+ <td width="107">
<p align="left">para 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">In
the description for an unscoped enumeration, enum-base in
redeclaration must be the same underlying type as in the
@@ -5845,28 +5857,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p>Replace the description, "same underlying type", with
"same as underlying type of (previous) declaration."
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
96
<td>
<p align="justify">7.2
- <td>
+ <td width="107">
<p align="justify">7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">enum E { }; What
are the values of E? It has neither a smallest nor largest
enumerator, so paragraph 7 doesn't help. (Paragraph 6
@@ -5876,29 +5888,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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."
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
97
<td>
<p align="justify">7.2
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Missing
punctuation after "blue" in: "The possible values of an
object of type color are red, yellow, green, blue these
@@ -5906,29 +5918,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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 ..."
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
98
<td>
<p align="justify">7.2
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It would be
useful to be able to determine the underlying type of an
arbitrary enumeration type. This would allow safe casting
@@ -5939,28 +5951,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a TransformationTrait to 20.5.6 that
returns the underlying type of an enumeration type.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
99
<td>
<p align="justify">7.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is unclear
whether an enumeration type is complete after an
opaque-enum-declaration. This paragraph only says so in a
@@ -5970,28 +5982,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move "an enumeration declared by an
opaque-enum-declaration ... is a complete type" from the
note to normative text.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 14
<td>
<p align="left">7.3.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
The description of the behavior when a member that was
@@ -6063,7 +6075,7 @@
<p align="left" style="text-indent: 0.44in">
<br>
- <td>
+ <td width="535">
<p align="left" style=
"margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
Add the description of the behavior when a member that was
@@ -6071,24 +6083,24 @@
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
100
<td>
<p align="justify">7.3.3
- <td>
+ <td width="107">
<p align="justify">10 and 13
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Para 10 says "A
using-declaration is a declaration and can therefore be
used repeatedly where (and only where) multiple
@@ -6100,28 +6112,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Delete para 10, moving its example into
para 13.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
101
<td>
<p align="justify">7.3.3
- <td>
+ <td width="107">
<p align="justify">20
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">If a
using-declaration uses the keyword typename and specifies a
dependent name (14.6.2), the name introduced by the
@@ -6133,27 +6145,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Allow typename for non-dependent names iff
they refer to a type.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-12
<td>
<p>7.3.3
- <td>
+ <td width="107">
<p>p15
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-12
Overriding and hiding of member functions named in
@@ -6162,30 +6174,32 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 25
<td>
- <p>7.3.3 [The using declaration]
+ <p>7.3.3<br>
+ [The using<br>
+ declaration]
- <td>
+ <td width="107">
<p>Para 21
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The syntax for concept map alias is unnecessarily both
confused and verbose.
- <td>
+ <td width="535">
<p>We strongly suggest
simplifications, e.g.
@@ -6197,24 +6211,24 @@
<p>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
102
<td>
<p align="justify">7.3.4
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph
says "If name lookup finds a declaration for a name in two
different namespaces, and the declarations do not declare
@@ -6224,27 +6238,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move the example to paragraph 7, and/or
replace it with an appropriate example.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 40
<td>
<p align="left">7.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
list of attributes is missing an attribute to indicate that
a function with a <font size="2" style=
@@ -6256,26 +6270,26 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the attribute.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 41
<td>
<p align="left">7.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">A
common problem is unintentionally declaring a new virtual
member function instead of overriding a base virtual member
@@ -6283,76 +6297,76 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">An attribute stating intent to
override would enable better diagnostics.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 26
<td>
<p>7.6 [Attributes]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Are they part of object types
or not? The section does not appear to indicate that
clearly.
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 1
<td>
<p>7.6
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Add override-attribute for functions in order to avoid
mistakes when overriding functions.
- <td>
+ <td width="535">
<p>See override­-attribute.doc, override-attribute.ppt
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 27
<td>
<p>7.6.1
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>This section specifies that
no name lookup is performed on any identifier contained in
an attribute-token. This in particular implies that, for
@@ -6370,27 +6384,27 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
103
<td>
<p align="justify">7.6.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Attributes should support pack expansion.
For example, this would be extremely useful with the align
attribute, directly supporting the (removed) functionality
@@ -6400,29 +6414,29 @@
this support to attributes would remove the remaining need,
and support similar attributes in the future.
- <td>
+ <td width="535">
<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."
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
104
<td>
<p align="justify">7.6.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">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
@@ -6430,79 +6444,79 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">7.6.1p1 should move up one level to become
7.6p1. There grammar should remain under 7.6.1
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
105
<td>
<p align="justify">7.6.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Allowing only one level of namespaces in
attributes seems unnecessarily limiting.
- <td>
+ <td width="535">
<p align="left">To: attribute-scoped-token:
attribute-namespace :: identifier add attribute-namespace
:: attribute-scoped-token
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
106
<td>
<p align="justify">7.6.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Extensive use of
alignment and related terms without cross reference.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add cross-reference to 3.11.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 15
<td>
<p align="left">7.6.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">An abbreviation
of 7.6.2 should be “[decl.attr.align]” instead
@@ -6517,27 +6531,27 @@
<p>
- <td>
+ <td width="535">
<p>Change "[dcl.align]" of 7.6.2 to "[decl.attr.align]".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
107
<td>
<p align="justify">7.6.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">While undefined
behaviour might be the best we can guarantee, it would be
helpful to encourage implementations to diagnose function
@@ -6545,30 +6559,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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]
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
108
<td>
<p align="justify">7.6.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is unclear
why no diagnostic is required for an easily detectable
violation. It is even more surprising that the associated
@@ -6576,27 +6590,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike "no diagnostic required" and the
associated footnote.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 42
<td>
<p align="left">7.6.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
meaning of the <font size="2" style=
"font-size: 11pt"><code>[[final]]</code> attribute applied
@@ -6605,7 +6619,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">
Modify the semantics of <font size="2" style=
"font-size: 11pt"><code>[[final]]</code> applied to
@@ -6616,74 +6630,74 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
109
<td>
<p align="justify">7.6.5
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The example code
refers in comments to "Compilation unit" A and B. The term
should be "Translation unit" (2/1)
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace "Compilation" with "Translation" in
two places
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>
<td>
<p align="justify"><br>
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify"><br>
- <td>
+ <td width="510">
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
110
<td>
<p align="justify">7.6.5
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The code in the
example (compilation unit A) has:
"foo_head[i].load(memory_order_consume)". foo_head[i] is of
@@ -6691,27 +6705,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change the type of foo_head to
atomic<foo *>[].
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 43
<td>
<p align="left">8
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
With the introduction of late-specified return types for
functions and lambda expressions, we now have three
@@ -6723,81 +6737,81 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Some simplification is needed.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
111
<td>
<p align="justify">8.3.5
- <td>
+ <td width="107">
<p align="justify">13
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Example missing
closing bracket in template<typename... T> void f(T
(* ...t)(int, int);
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add closing bracket like this:
template<typename... T> void f(T (* ...t)(int, int));
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 44
<td>
<p align="left">8.3.5
- <td>
+ <td width="107">
<p align="left">13
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">In
the Example, "template void f(T (* ...t)(int, int);" is
missing a close parenthesis.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">It presumably should read:
"template void f(T (* ...t))(int, int);".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 45
<td>
<p align="left">8.3.5
- <td>
+ <td width="107">
<p align="left">13
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">At present,
function parameter packs can only occur at the end of a
parameter-declaration-list. This restriction unnecessarily
@@ -6842,7 +6856,7 @@
parameter-declaration-list should be considered non-deduced
contexts.
- <td>
+ <td width="535">
<p align="left">In 8.3.5p13,
remove the sentence “<span lang="">A function
parameter pack, if present, shall occur at the end of the
@@ -6897,77 +6911,77 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-13
<td>
<p>8.4
- <td>
+ <td width="107">
<p>p2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p>Properly quote the grammar from 8.3.5.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 16
<td>
<p align="left">8.5
- <td>
+ <td width="107">
<p align="left">
15<sup>th</sup> <font size="2" style=
"font-size: 11pt">para, 1<sup>st</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo, duplicated "in"
<p align="left">"The initialization that
occurs in in the forms"
- <td>
+ <td width="535">
<p>Remove one.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 46
<td>
<p align="left">8.5.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The ability for
an rvalue reference to bind to an lvalue opens a
type-safety hole that becomes very dangerous with concepts.
@@ -6996,7 +7010,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Prohibit rvalue
references from binding to lvalues.
@@ -7032,51 +7046,51 @@
12.4, 12.8, but restricted to special functions in that
comment. (See US NN).
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 49
<td>
<p align="left">8.5.4
- <td>
+ <td width="107">
<p align="left">6
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">In the Example, the comments
could be improved.
- <td>
+ <td width="535">
<p align="left">See
the attached paper "Issues with the C++ Standard" under
"Editorial Issues" and "8.5.4/6".
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
112
<td>
<p align="justify">9
- <td>
+ <td width="107">
<p align="justify">4-9
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">We now have
concepts that should (or should not?) map to the terms
described in Clause 9 - these should be at least
@@ -7084,53 +7098,53 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add appropriate forward references to
14.9.4
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
113
<td>
<p align="justify">9.4.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Mis-applied edit from the paper n2756
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 50
<td>
<p align="left">12.1, 12.4, 12.8
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
Implicitly-declared default constructors, destructors, copy
constructors, and copy assignment operators are deleted
@@ -7161,7 +7175,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">In 12.1p5,
remove the phrase “<span lang="">or inaccessible from
the implicitly-declared default</span> <font size="3" face=
@@ -7193,76 +7207,77 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 28
<td>
- <p>12.6.1 [Explicit
- initialization]
+ <p>12.6.1<br>
+ [Explicit<br>
+ initialization]
<p>
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>This section, in particular the example with `g' appears
contradictory with the syntax for uniform initialization.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 51
<td>
<p align="left">12.6.2
- <td>
+ <td width="107">
<p align="left">2
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">The
discussion of delegating constructors should be in its own
paragraph.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
114
<td>
<p align="justify">12.6.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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,
@@ -7272,7 +7287,7 @@
mem-initializer-id and braced-init-list would allow the
user to choose between copy and direct initialization
- <td>
+ <td width="535">
<p align="left">Ammend the
grammar for mem-initializer: mem-initializer-id =OPT
braced-init-list Extend p3 to allow for Copy Initialization
@@ -7287,46 +7302,46 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 52
<td>
<p>13.5.8
- <td>
+ <td width="107">
<p>¶ 5
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>A word is misspelled.
- <td>
+ <td width="535">
<p>Change “shal” to “shall”.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
115
<td>
<p align="justify">14
- <td>
+ <td width="107">
<p align="justify">6-11
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">Exported
templates were a great idea that is generally understood to
have failed. In the decade since the standard was adopted,
@@ -7341,30 +7356,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
116
<td>
<p align="justify">14
- <td>
+ <td width="107">
<p align="justify">6-11
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Is it possible
to export a concept map template? The current wording
suggests it is possible, but it is not entirely clear what
@@ -7372,29 +7387,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Either prohibit exporting concept map
templates, or more directly address what it means to export
a concept map.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
117
<td>
<p align="justify">14
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">It would be nice
to allow template alias within a function scope, and
possibly a scoped concept map. As these affect name lookup
@@ -7404,28 +7419,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Allow template aliases to be declared
inside a function scope, and consider scoped concept maps.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
118
<td>
<p align="justify">14
- <td>
+ <td width="107">
<p align="justify">6-11
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Exported
templates are a complicated feature with surprisingly
little text. To make this important text more visible,
@@ -7433,28 +7448,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Create a new subclause [temp.export]
containing 14p6-11. Move 14p12 ahead of this subclause.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
119
<td>
<p align="justify">14
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Does a concept
map have linkage? Reading this paragraph and 3.5 suggests a
concept map template has external linkage, but not a
@@ -7464,29 +7479,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
120
<td>
<p align="justify">14.1
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">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
@@ -7494,79 +7509,81 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Insert “(8.3.5)” after
“parameter pack”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
121
<td>
<p align="justify">14.1
- <td>
+ <td width="107">
<p align="justify">18
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The example
(that follows the normative text) has no begin example
marker
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Prefix the example code with "[ Example:"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 29
<td>
- <p>14.3 [Template arguments]
+ <p>14.3<br>
+ [Template<br>
+ arguments]
<p>
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Constant expressions of any literal type should be
allowed as template arguments.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 53
<td>
<p align="left">14.5.1
- <td>
+ <td width="107">
<p align="left">5
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">If the
requirements of a constrained member that is a copy
constructor, copy assignment operator, or destructor are
@@ -7597,7 +7614,7 @@
CopyConstructible, vector will get an implicitly-defined
copy constructor that performs a copy of the pointers.
- <td>
+ <td width="535">
<p align="left">Add to 14.5.1p5:
<p align="left">If the constrained member is a copy
@@ -7609,24 +7626,24 @@
template’s template arguments for its template
parameters) will be declared as a deleted function (8.4).
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
122
<td>
<p align="justify">14.5.3
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Variadic
templates should be supported in axioms. There are axioms
in the library that rely on this feature, such as the
@@ -7635,29 +7652,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 30
<td>
- <p>14.5.7 [Template aliases]
+ <p>14.5.7<br>
+ [Template aliases]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>When are two template alias
names equivalent?
@@ -7696,28 +7714,28 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 17
<td>
<p align="left">14.7.2
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para, 15<sup>th</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
@@ -7742,52 +7760,52 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p>Replace "from" with "forming"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-14
<td>
<p>14.7.3
- <td>
+ <td width="107">
<p>p1
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>DE-14 The bulleted list neither addresses "member
function template of a class" nor "member class template of
a class".
- <td>
+ <td width="535">
<p>Add the respective bullets.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 18
<td>
<p align="left">14.7.3
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para, 2<sup>nd</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo,
@@ -7810,28 +7828,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p>Replace "from" with "forming"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 19
<td>
<p align="left">14.8.2
- <td>
+ <td width="107">
<p align="left">6<sup>th</sup> <font size="2"
style="font-size: 11pt">para, 1<sup>st</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo, duplicated "is"
@@ -7843,152 +7861,153 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Remove one
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 54
<td>
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">14.9 [concept],
- <p>14.10 [temp.constrained]
+ <p>14.10<br>
+ [temp.constrained]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ge
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p>I propose no specific change here.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 55
<td>
<p>14.9.1
- <td>
+ <td width="107">
<p>¶ 6
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The paragraph number is in the wrong place, causing a
grammar rule to be indented more than its fellows.
- <td>
+ <td width="535">
<p>Move the paragraph number so as to follow the grammar
rules, thus numbering the single sentence, “The body
of a concept … .”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 56
<td>
<p>14.9.1
- <td>
+ <td width="107">
<p>¶ 6
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The sentence contains two references to 14.9.1.3
[concept.req].
- <td>
+ <td width="535">
<p>Change the second such reference (at the end of the
sentence) to 14.9.1.4 [concept.axiom].
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 57
<td>
<p>14.9.1.4
- <td>
+ <td width="107">
<p>¶ 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>A word is misplaced, changing the intended meaning.
- <td>
+ <td width="535">
<p>Change “only find … if” to “find
… only if”.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 58
<td>
<p>14.9.1.4
- <td>
+ <td width="107">
<p>¶ 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The listed phrases are not grammatically parallel.
- <td>
+ <td width="535">
<p>Insert “in” before “one” so as
to obtain “... in the concept, in one of its less
refined concepts, or in an associated requirement.”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 59
<td>
<p align="left">14.9.1.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<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
@@ -8003,7 +8022,7 @@
that many axioms written by programmers (including those
specified in the candidate draft) will be incorrect.
- <td>
+ <td width="535">
<p align="left">Remove clause
14.9.1.4 [concept.axiom]
@@ -8059,23 +8078,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 31
<td>
<p>14.9.1.4 [Axioms]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>This section states that an
axiom-definition defines a new semantics axiom but is
unusually vague as to what those semantics might be.
@@ -8100,26 +8119,26 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-15
<td>
<p>14.9.1.4
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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
@@ -8129,29 +8148,29 @@
EqualityComparable), but IEEE floating-point types have
special values such as NaN violating the axioms.
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
123
<td>
<p align="justify">14.9.1.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">auto concepts
and axioms are incompatible. An axiom defines the semantics
of an operaton or set of operations that describes the run
@@ -8163,15 +8182,15 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a paragraph making axioms ill-formed
inside an auto concept.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK<br>
124
@@ -8181,36 +8200,36 @@
<td>
<p align="justify">14.9.1.4
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Spelling mistake, double-e in were.
- <td>
+ <td width="535">
<p align="left">weere -> were
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
125
<td>
<p align="justify">14.9.1.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The implicit
equality comparison operator available to axioms has no
semantic. It is not clear what expressing the condition if(
@@ -8222,57 +8241,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Define the semantics of the implicitly
declared comparison operators, or restrict their usage to
declaring equivalence between statements.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
126
<td>
<p align="justify">14.9.4
- <td>
+ <td width="107">
<p align="justify">41
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph
contains the only definition of the underlying_type member
- but it's a note, so not normative.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move the second sentence to the Requires
clause in paragraph 42.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
127
<td>
<p align="justify">14.9.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Provide a
diagram clearly showing refinement relationship between the
different support concepts. Several were created during
@@ -8280,33 +8299,33 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide the diagram.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
128
<td>
<p align="justify">14.9.4
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">A non-normative
note: [Note: 'move only' types that are constructible from
rvalue references may be Returnable, but not
@@ -8314,24 +8333,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 20
<td>
<p align="left">14.9.4
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in; margin-bottom: 0.04in">
Trivially copyable type was added in “3.9
@@ -8343,29 +8362,29 @@
"margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
TriviallyCopyableType that is trivially copyable type as
concept.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
129
<td>
<p align="justify">14.10.1, 20.1.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It should be
possible to support boolean constant expressions as
requirements without resorting to defining the True concept
@@ -8377,30 +8396,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 60
<td>
<p align="left">14.10.1
- <td>
+ <td width="107">
<p align="left">1
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<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
@@ -8413,7 +8432,7 @@
separator to ‘,’ would eliminate a significant
source of confusion.
- <td>
+ <td width="535">
<p align="left">Replace
<p align="left">
@@ -8451,24 +8470,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
130
<td>
<p align="justify">15.1
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">With the new
crrent_exception API it is possible to capture a reference
to an exception that will outlive its last active handler.
@@ -8480,56 +8499,56 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Update sentence to allow for exceptions
held in excpetion_ptr objects.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
131
<td>
<p align="justify">15.3
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">A handler
catching its parameter by rvalue-reference is syntactically
valid, but will never be activated.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Disallow handlers catching by
rvalue-reference.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
132
<td>
<p align="justify">15.3
- <td>
+ <td width="107">
<p align="justify">16
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There are
obscure cases whrere a copy constructor is not usually the
best match to copy-initialize an object, e.g. A converting
@@ -8541,112 +8560,112 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Rewite using copy-initialization rather
than directly invoking the copy constructor
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
133
<td>
<p align="justify">15.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Template aliases
have the same semantics as a typedef so should also be
disallowed
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">add "or alias-declaration" after "shall not
appear in a typedef declaration".
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
134
<td>
<p align="justify">15.4
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The sentance "An
exception-specification can also include the class
std::bad_exception (18.7.2.1)." is redundant.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Either strike the quoted sentance, or add a
note explaining why it is worth calling special attention
to this class.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
135
<td>
<p align="justify">15.4
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Unclear if std::unexpected is called before
or after the function arguments have been destroyed
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
136
<td>
<p align="justify">15.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<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
@@ -8655,7 +8674,7 @@
requirement to call the runtime unexpected mechanism was
relaxed in this case.
- <td>
+ <td width="535">
<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
@@ -8664,24 +8683,24 @@
checks. Ideally require vendors to provide a mode where the
runtime checks are always disabled.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
137
<td>
<p align="justify">15.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">There is no
mention of the current_exception API which can extend the
lifetime of an exception object. There should at least be a
@@ -8689,57 +8708,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
138
<td>
<p align="justify">15.5.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The third bullet
is redundant with the first, as it is a subset of the same
conditions.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Merge the third bullet into the first
bullet as a note or example.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
139
<td>
<p align="justify">15.5.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">According to the
first bullet it is perfectly alright for a library function
to exit by throwing an exception during stack unwinding,
@@ -8747,28 +8766,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the word 'user' from the first
bullet point.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
140
<td>
<p align="justify">15.5.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The detailed
specification can fool people into thinking an exception
will automatically be translated into bad_exception, where
@@ -8777,103 +8796,103 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a note highlighting the default
behaviour of std::unexpected if the user does not supply a
hander-function
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
141
<td>
<p align="justify">15.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This whole
subclause is redundant due to 15.1p5 and 15.3p17
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike 15.6
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
142
<td>
<p align="justify">16.3.5
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph
opens with "[ Note" but has no corresponding "end note ]"
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add "end note ]"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
143
<td>
<p align="justify">16.3.5
- <td>
+ <td width="107">
<p align="justify">7
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Example uses #define t(x,y.z) x ## y ## z
- <td>
+ <td width="535">
<p align="left">Change "x,y.z" to "x,y,z"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 2
<td>
<p align="left">17-30
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge/te
- <td>
+ <td width="510">
<p align="left">The
active issues identified in WG21 N2806, C++ Standard
Library Active Issues, must be addressed and appropriate
@@ -8889,57 +8908,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p 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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 2
<td>
<p>General Comment
- <td>
+ <td width="107">
<p>Library
- <td>
+ <td width="38">
<p>ge
- <td>
+ <td width="510">
<p>The adoption of the library `constexpr' proposal was not
reflected in the draft, despite formal WG21 committee vote.
- <td>
+ <td width="535">
<p>FR 2
- <td>
+ <td width="89">
<p>General Comment
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 61
<td>
<p align="left">17 onward
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p>The concepts core language feature is applied to only
some of the Standard Library clauses, and even then not
always consistently.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Review all
clauses of the Standard Library, and consistently apply
@@ -8949,63 +8968,63 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>CA-2
<td>
<p style="margin-top: 0.04in">17 Library
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>Ge
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
“Concepts” are a significant new addition to
the language, but are not exploited uniformly in the
library as documented in CD 14882.
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Fix
the standard library so that “Concepts” are
used appropriately in the library.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 62
<td>
<p align="left">17-30
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">Provide concepts
and requirements clauses for all standard library templates
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 63
<td>
@@ -9013,13 +9032,13 @@
<p>
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The behavior of the library in the presence of threads
is incompletely specified.
@@ -9033,26 +9052,26 @@
at() to different characters in the same non-const string
really introduce a data race?
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-2
<td>
<p>17 through 30
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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
@@ -9060,17 +9079,17 @@
standard library apparently has not been reviewed for
marking non-single-parameter constructors as "explicit".
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 21
<td>
@@ -9083,15 +9102,16 @@
<p align="left">
21.2, 21.4,
- <p align="left">27.2, 27.6, 27.7, 27.8.1, 28.4
+ <p align="left">27.2, 27.6,<br>
+ 27.7, 27.8.1, 28.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
Support of char16_t/char32_t is insufficient. The basic_xxx
classes of <iostream>, <fstream>,
@@ -9102,7 +9122,7 @@
Functions such as stoi, to_string in ‘21.4 Numeric
Conversion’ does not support char16_t/char32_t types.
- <td>
+ <td width="535">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Add commented
lines corresponding to char16_t, char32_t.
@@ -9902,125 +9922,125 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
144
<td>
<p align="justify">17.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">List of contents of library should be
extened to cover new clauses
- <td>
+ <td width="535">
<p align="left">Add "regular expressions, atomic operations
and threads"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
145
<td>
<p align="justify">17.1
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">
<span lang="en-US">Summary of numeric facilities should
mention random numbers</span>
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add random number framework to the list of
library facilities
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
146
<td>
<p align="justify">17.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Add a summary paragraph for regular
expressions
- <td>
+ <td width="535">
<p align="left">Add a summary paragraph for regular
expressions
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
147
<td>
<p align="justify">17.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Add a summary paragraph for threads
- <td>
+ <td width="535">
<p align="left">Add a summary paragraph for threads
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
148
<td>
<p align="justify">17.2
- <td>
+ <td width="107">
<p align="justify">Table 12
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Table 12 is
mentioned in and relates to section 17.2, but has been
pushed down to appear directly after the title of section
@@ -10028,57 +10048,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Make sure tables are rendered in the
section to which they relate.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
149
<td>
<p align="justify">17.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">For consistency
with narrow-oriented and wide-oriented streams, we should
add terms for streams of Unicode character sequences
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Define Utf16-oriented stream classes and
Uft32-oriented stream classes for streams of
char16_t/char32_t values.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
150
<td>
<p align="justify">17.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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
@@ -10088,7 +10108,7 @@
with singular iterators suggest the term 'singular object'
or 'the object is in a singular state'.
- <td>
+ <td width="535">
<p align="left">Define 'singular
state' such that an object with a singular state can only
be assigned to or safely destroyed. Assiging a new value
@@ -10103,51 +10123,51 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
151
<td>
<p align="justify">17.3.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Missing
crossreference to 17.3.17 [defns.repositional.stream]
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add cross-reference in the existing empty
brackets
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
152
<td>
<p align="justify">17.3.12
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Object state is
using a definition of object (instance of a class) from
outside the standard, rather than the 'region of storage'
@@ -10155,27 +10175,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Clarify terms and usage
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
153
<td>
<p align="justify">17.3.17
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">If a
repositional stream can only seek to a position previously
encountered, then an arbitrary-positional-stream cannot
@@ -10183,15 +10203,15 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the word 'only'. A note might be
added to reinforce the intent
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK<br>
154
@@ -10201,90 +10221,90 @@
<td>
<p align="justify">17.3.20
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Missing definition of a stable partition
algorithm
- <td>
+ <td width="535">
<p align="left">Add definition from 25.2.12p7
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
155
<td>
<p align="justify">17.3.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Add clause 28 to list that use this
definition of character
- <td>
+ <td width="535">
<p align="left">Add clause 28 to list that use this
definition of character
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
156
<td>
<p align="justify">17.3.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Add regular
expressions to set of templates using character container
type
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add regular expressions to set of templates
using character container type
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
157
<td>
<p align="justify">17.5.2.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Add concepts to
the ordered list of presentation
@@ -10292,82 +10312,82 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add concepts into the sequence
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
158
<td>
<p align="justify">17.5.2.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">templates are neither classes nor functions
- <td>
+ <td width="535">
<p align="left">Replace
'classes' and 'functions' with 'classes and class
templates' and 'functions and function templates'
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
159
<td>
<p align="justify">17.5.2.4
- <td>
+ <td width="107">
<p align="justify">Footnote 152
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This informative
footnote was relevant in 1998, not 2008. The term 'existing
vendors' may imply something different now
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the footnote, or replace 'existing'
with 'original' or similar
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
160
<td>
<p align="justify">17.5.2.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">requires is now
a keyword with a specific meaning related to concepts, and
its use in library specifcation may be confusing. Generally
@@ -10379,27 +10399,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace 'Requires' with 'Preconditions'
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
161
<td>
<p align="justify">17.5.2.4
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph
is redundant as the definition of the term 'handler
function' is already provided in 17.3. Are we in danger of
@@ -10408,27 +10428,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike 17.5.2.4p4
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
162
<td>
<p align="justify">17.5.2.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Clause 30 makes
use of a 'Synchronization' semantic element, that
frequently appears either between Effects: and
@@ -10436,29 +10456,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add 'Synchronization' to the list either
between Effects: and Postconditions:, or between Returns:
and Throws:.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
163
<td>
<p align="justify">17.5.2.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Many functions
are defined as "Effects: Equivalent to a...", which seems
to also define the preconditions, effects, etc. But this is
@@ -10466,34 +10486,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Introduce an explicit "Equivalent to",
which defines all of the properties of the function.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
164
<td>
<p align="justify">17.5.3.2.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">Use better names
for the examples. Ideally totally replace the need by
constraining all templates in library, so that real
@@ -10502,24 +10522,25 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
165
<td>
- <p align="justify">17.5.3.2.2, 17.5.3.2.3
+ <p align="justify">17.5.3.2.2,<br>
+ 17.5.3.2.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">constraints on
bitmask and enumation types were supposed to be tightened
up as part of the motivation for the constexpr feature -
@@ -10527,82 +10548,83 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Adopt wording in line with the motivation
described in N2235
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
166
<td>
- <p align="justify">17.5.3.2.4.1,
- 17.5.3.3
+ <p align="justify">17.5.3.2.4.1,<br>
+ 17.5.3.3
<p align="justify"><br>
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">List of library clauses should go up to 30,
not 27
- <td>
+ <td width="535">
<p align="left">Replace initial refernce to ch27 with ch30
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
167
<td>
- <p align="justify">17.5.3.4 Private members
+ <p align="justify">17.5.3.4<br>
+ Private members
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Comment marker in wrong place.
- <td>
+ <td width="535">
<p align="left">Change: //
streambuf* sb; exposition only to streambuf* sb; //
exposition only To reflect actual usage.
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
168
<td>
<p align="justify">17.6.2.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">We should make
it clear (either by note or normatively) that namespace std
may contain inline namespaces, and that entities specified
@@ -10613,30 +10635,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
169
<td>
<p align="justify">17.6.2.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This phrasing
contradicts later freedom to implement the C standard
library portions in the global namespace as well as std.
@@ -10644,27 +10666,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Resolve conflict in either place
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
170
<td>
<p align="justify">17.6.2.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">One of goals of
C++0x is to make language easier to teach and for
'incidental' programmers. The fine-grained headers of the
@@ -10676,31 +10698,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
171
<td>
<p align="justify">17.6.2.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Does
freestanding implementation require a full implementation
of all listed headers? The reference to abort, at_exit and
@@ -10711,84 +10733,84 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Either strike the references to abort,
at_exit and exit, or clarify which headers only require
partial support.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
172
<td>
<p align="justify">17.6.2.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">No reference to
new functions quick_exit and at_quick_exit
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add reference to quick_exit and
at_quick_exit
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
173
<td>
<p align="justify">17.6.2.4
- <td>
+ <td width="107">
<p align="justify">table 15
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
<initializer_list> is missing from headers required
in freestanding implementations.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add 18.8, initializer lists,
<initializer_list>, to the end of the table.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 23
<td>
<p align="left">17.6.2.4
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para, Table 15</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">There is a
freestanding implementation including <type_traits>,
@@ -10802,29 +10824,29 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
<type_traits>, <array>, <ration> to Table
15.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
174
<td>
<p align="justify">17.6.3.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The phrasing is
mildly ambiguous when using the word 'it' to refer back to
the header - an unfotunate reading might confuse it with
@@ -10833,136 +10855,136 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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'
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
175
<td>
<p align="justify">17.6.4.2.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Local types can
now be used to instantiate templates, but don't have
external linkage
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the reference to external linkage
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
176
<td>
<p align="justify">17.6.4.3.3
- <td>
+ <td width="107">
<p align="justify">Footnote 175
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Reference to namespace ::std should be
17.6.4.2
- <td>
+ <td width="535">
<p align="left">Change referfence from 17.6.4.3 to 17.6.4.2
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
177
<td>
<p align="justify">17.6.4.3.4
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Sentence is
redundant as double underscores are reserved in all
contexts by 17.6.4.3.3
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the sentence
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
178
<td>
<p align="justify">17.6.4.8
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Strike the sentence
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
179
<td>
<p align="justify">17.6.4.8
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">According to the
4th bullet there is a problem if "if any replacement
function or handler function or destructor operation throws
@@ -10971,28 +10993,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace the word 'throws' with 'propogates'
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 22
<td>
<p align="left">17.6.5.7
- <td>
+ <td width="107">
<p align="left">4<sup>th</sup> <font size="2"
style="font-size: 11pt">para, 1<sup>st</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">The
statement below describes relation among two or more
threads using words “between threads”:<br>
@@ -11006,7 +11028,7 @@
such case, “among” is preferred instead of
“between”.
- <td>
+ <td width="535">
<p align="left">
Change "between threads" to "among threads".
@@ -11014,24 +11036,24 @@
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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
180
<td>
<p align="justify">17.6.5.10
- <td>
+ <td width="107">
<p align="justify">1, 4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It should not be
possible to strengthen the exception specification for
virtual functions as this could break user code. Note this
@@ -11042,28 +11064,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add restriction that exception
specification of virtual functions cannot be tightened.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
181
<td>
<p align="justify">17.6.5.10
- <td>
+ <td width="107">
<p align="justify">Footnote 186
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This footnote is
wrong. C library functions do not have any exception
specification, but might be treated as if they had an empty
@@ -11071,29 +11093,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Clarify that this note does not mean the
functions are genuinely declared with the specification,
but are treated as-if.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
182
<td>
<p align="justify">17.6.5.10
- <td>
+ <td width="107">
<p align="justify">Footnote 188
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is very
helpful to assume all exceptions thrown by the standard
library derive from std::exception. The 'encouragement' of
@@ -11101,27 +11123,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Make this footnote normative
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
184
<td>
<p align="justify">18 -> 30
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The new
alias-declaration syntax is generally easier to read than a
typedef declaration. This is especially true for complex
@@ -11129,29 +11151,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace all typedef declarations in the
standard library with alias-declarations, except in the
standard C library.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 24
<td>
<p align="left">18
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para, Table 16</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Subclauses are listed in Table 16 as:
@@ -11167,7 +11189,7 @@
"text-indent: 0.06in; margin-top: 0.04in">"18.7 Exception
handling …".
- <td>
+ <td width="535">
<p align="left" style=
"margin-left: 0.06in; text-indent: -0.06in; margin-bottom: 0in">
Sort them in the increasing order<br>
@@ -11184,53 +11206,54 @@
<p align="left" style=
"text-indent: 0.06in; margin-top: 0.04in"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 25
<td>
<p align="left">18.1
- <td>
+ <td width="107">
<p align="left">
6<sup>th</sup> <font size="2" style=
"font-size: 11pt">para , last line, SEE ALSO</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
max_align_t is described in 18.1, so add 3.11 Alignment as
the reference.
- <td>
+ <td width="535">
<p 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>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 32
<td>
- <p>18.2.1 [Numeric limits]
+ <p>18.2.1<br>
+ [Numeric limits]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The definition of
numeric_limits<> as requiring a regular type is both
conceptually wrong and operationally illogical. As we
@@ -11243,30 +11266,30 @@
<p>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-16
<td>
<p>18.2.1
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-16 The class
template numeric_limits should not specify the Regular
@@ -11281,31 +11304,31 @@
<p>
- <td>
+ <td width="535">
<p>Specify a concept requirement with fewer constraints as
appropriate, for example SemiRegular.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 26
<td>
<p align="left">18.2.1.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
numeric_limits does not use concept.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -11347,23 +11370,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-17
<td>
<p>18.2.6
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-17 The class
type_index should be removed; it provides no additional
@@ -11371,55 +11394,55 @@
<p>
- <td>
+ <td width="535">
<p>Specify concept maps for "const type_info *" as required
by the ordered and unordered containers and remove the
class type_index.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
185
<td>
<p align="justify">18.3.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">There is no
header <stdint>, it should either be <stdint.h>
or <cstdint>
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace <stdint> with <cstdint>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-18
<td>
<p>18.4
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-18 The
proposed C++ standard makes a considerable number of
@@ -11441,31 +11464,31 @@
<p>
- <td>
+ <td width="535">
<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
.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
186
<td>
<p align="justify">18.4
- <td>
+ <td width="107">
<p align="justify">Footnote 221
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">What is the
purpose of this comment? The standard stream objects (cin,
cerr etc.) have a peculiar lifetime that extends beyond the
@@ -11474,55 +11497,55 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the footnote
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
187
<td>
<p align="justify">18.4
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The term "thread
safe" is not defined nor used in this context anywhere else
in the standard.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Clarify the intended meaing of "thread
safe"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
188
<td>
<p align="justify">18.4
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The function
_Exit does not appear to be defined in this standard.
Should it be added to the table of functions
@@ -11530,32 +11553,32 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Depends on where _Exit comes from
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
189
<td>
<p align="justify">18.4, 18.7
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The addition of the [[noreturn]] attribute
to the language will be an important aid for static
analysis tools.
- <td>
+ <td width="535">
<p align="left">The following
functions should be declared in C++ with the [[noreturn]]
attribute: abort exit quick_exit terminate unexpected
@@ -11563,29 +11586,31 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 27
<td>
- <p align="left">18.4, 18.9, 18.7.2.2, 18.7.3.1
+ <p align="left">18.4, 18.9,<br>
+ 18.7.2.2,<br>
+ 18.7.3.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p align="left">
Consider to add the attribute [[noreturn]] to such
functions,
@@ -11610,58 +11635,58 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
190
<td>
<p align="justify">18.5.1
- <td>
+ <td width="107">
<p align="justify">various
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is not entirely clear how the current
specification acts in the presence of a garbage collected
implementation.
- <td>
+ <td width="535">
<p align="left">All deallocation
functions taking a pointer parameter should have a
Precondition : ptr is a safely-derived pointer value.
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
191
<td>
<p align="justify">18.5.1.1
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Rephrase the
second bullet in terms of a new handler being installed,
and update any definition of handler function necessary to
@@ -11669,24 +11694,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
192
<td>
<p align="justify">18.5.1.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The declared
signature is not compatible with the current requirement to
throw std::length_error. It is too late to weaken the
@@ -11696,56 +11721,56 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Fix 5.3.4p7 by required std::bad_alloc
rather than std::length_error
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
193
<td>
<p align="justify">18.5.2.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">quick_exit has
been added as a new valid way to terminate a program in a
well defined way
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change 3rd bullet: call either abort(),
exit() or quick_exit();
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
194
<td>
<p align="justify">18.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The inclusion of
type_index and hash<type_index> in <typeinfo>
brings dependencies into <typeinfo> which are
@@ -11754,28 +11779,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move type_index and hash<type_index>
out of <typeinfo> and into a new header,
<typeindex>.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 28
<td>
- <p align="left">18.6, 18.7, 19.1
+ <p align="left">18.6,<br>
+ 18.7,<br>
+ 19.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
Errors reported by Exception classes are of types char or
std::string only. For example, std::exception is declared
@@ -11785,31 +11812,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Consider other types.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 29
<td>
<p align="left">18.7.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
throw_with_nested does not use concept.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -11832,55 +11859,55 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 30
<td>
<p align="left">18.7.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Consider nested_exception to support tree structure.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 31
<td>
<p align="left">18.7.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">It
is difficult to understand in which case nested_exception
is applied.
- <td>
+ <td width="535">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Consider to add
a sample program which rethrows exception.
@@ -11888,24 +11915,24 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
195
<td>
<p align="justify">18.8
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The class
definition of std::initializer_list contains concept-maps
to Range which should be out of the class, and in
@@ -11915,33 +11942,33 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Delete the two concept maps from
std::initializer_list.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
196
<td>
<p align="justify">18.8.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Concept maps for initializer_list to Range
should not be in language support headers, but instead in
iterator concepts.
- <td>
+ <td width="535">
<p align="left">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
@@ -11951,30 +11978,30 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
197
<td>
<p align="justify">19
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Provide a
constructor for every exception class in clause 19
accepting a std::string by rvalue reference, with the
@@ -11982,23 +12009,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 32
<td>
<p align="left">19.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
Messages returned by the member function what() of standard
exception classes seem difficult to judge.
@@ -12039,34 +12066,34 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Consider to add footnote that recommends what() returns
message easy to recognize what exception was thrown.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 64
<td>
<p>19.3
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>Ge
- <td>
+ <td width="510">
<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>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Delete this
cross reference. If necessary, expand the main text to
@@ -12074,23 +12101,23 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 65
<td>
<p align="left">20
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p 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
@@ -12098,7 +12125,7 @@
don't have any obvious connection to allocators, including
basic concepts and simple components like pair and tuple.
- <td>
+ <td width="535">
<p align="left">
Sketch of proposed resolution: Eliminate scoped allocators,
replace allocator propagation traits with a simple uniform
@@ -12124,29 +12151,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
198
<td>
<p align="justify">20
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The organization of clause 20 could be
improved to better group related items, making the standard
easier to navigate.
- <td>
+ <td width="535">
<p align="left">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
@@ -12179,24 +12206,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
199
<td>
<p align="justify">20.1.1, 20.1.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The requirement
that programs do not supply concept_maps should probably be
users do not supply their own concept_map specializations.
@@ -12208,32 +12235,32 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace the term 'program' with 'user'.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
200
<td>
<p align="justify">20.1.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Either require
CopyConstructible<F> as part of Predicate, or create
a refined concept, StdPredicate, used throughout the
@@ -12242,28 +12269,28 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
201
<td>
<p align="justify">20.1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The Consistency axiom for
LessThanComparable will not compile.
- <td>
+ <td width="535">
<p align="left">Add a requires
clause to the Consistency axiomL requires
HasLessEquals<T> &&
@@ -12273,28 +12300,28 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 33
<td>
<p align="left">20.1.5
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
LessThanComparable and EqualityComparable don't correspond
to NaN.
- <td>
+ <td width="535">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Apply
concept_map to these concepts at FloatingPointType
@@ -12302,134 +12329,134 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 66
<td>
<p>20.1.10
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Application of the "Regular" concept to floating-point
types appears to be controversial (see long discussion on
std-lib reflector).
- <td>
+ <td width="535">
<p>State that the “Regular” concept does not
apply to floating-point types.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 34
<td>
<p align="left">20.2
- <td>
+ <td width="107">
<p align="left">
1<sup>st</sup> <font size="2" style=
"font-size: 11pt">para, 4<sup>th</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
Though N2672 pointed at adding
"#include<initializer_list>", it isn't reflected.
- <td>
+ <td width="535">
<p align="left">add
followings
<p align="left" style="margin-top: 0.04in">
#include <initializer_list> // for concept_map
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 67
<td>
<p>20.2.1
- <td>
+ <td width="107">
<p>¶ 5 first sent.
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Some connective words are missing.
- <td>
+ <td width="535">
<p>Insert “corresponding to” before “an
lvalue reference type.”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 35
<td>
<p align="left">20.2.3
- <td>
+ <td width="107">
<p align="left">
6<sup>th</sup> <font size="2" style=
"font-size: 11pt">para, 1<sup>st</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo,
<p align="left">"stdforward" should be
"std::forward"
- <td>
+ <td width="535">
<p align="left">Correct typo.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
202
<td>
<p align="justify">20.2.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">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
@@ -12437,53 +12464,53 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the std:: qualification from these
references to pair.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 68
<td>
<p>20.2.12
- <td>
+ <td width="107">
<p>IntegralLike
- <td>
+ <td width="38">
<p>te/ed
- <td>
+ <td width="510">
<p>The code defining the context is syntactically
incorrect.
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
203
<td>
<p align="justify">20.3.2
- <td>
+ <td width="107">
<p align="justify">1-4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The ratio_xyz
types have a misplaced '}'. For example: template <class
R1, class R2> struct ratio_add { typedef see below}
@@ -12491,60 +12518,60 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move the '}' to after the typedef: template
<class R1, class R2> struct ratio_add { typedef see
below type; };
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 36
<td>
<p align="left">20.4.2.1
- <td>
+ <td width="107">
<p align="left">
19<sup>th</sup> <font size="2" style=
"font-size: 11pt">para, 6<sup>th</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
<p align="left" style="margin-top: 0.04in">"it
it" should be "it is"
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Correct typo.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
204
<td>
<p align="justify">20.5
- <td>
+ <td width="107">
<p align="justify">Table 41
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is not
possible to create a variant union based on a parameter
pack expansion, e.g. to implement a classic discriminated
@@ -12552,52 +12579,52 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Restore aligned_union template that was
removed by LWG issue 856.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 69
<td>
<p>20.5
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>This section, dealing with tuple<>, should be in
the same section as the similar utility pair<>.
- <td>
+ <td width="535">
<p>Restructure Clause 20 so as to bring these similar
components together.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
205
<td>
<p align="justify">20.5.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
integral_constant objects should be usable in
integral-constant-expressions. The addition to the language
@@ -12606,29 +12633,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a constexpr conversion operator to
class tempalate integral_constant: constexpr operator
value_type() { return value; }
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
206
<td>
<p align="justify">20.5.5
- <td>
+ <td width="107">
<p align="justify">para 4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Currently the
std says: "In order to instantiate the template
is_convertible<From, To>, the following code shall be
@@ -12638,7 +12665,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change: "In order to instantiate the
template is_convertible<From, To>, the following code
shall be well formed:" To: "The template
@@ -12646,28 +12673,28 @@
indirectly from true_type if the following code is well
formed:"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
207
<td>
<p align="justify">20.5.6.1
- <td>
+ <td width="107">
<p align="justify">Table 36
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">suffix "::type" is missing from the some of
the examples.
- <td>
+ <td width="535">
<p align="left">Change:
Example:remove_const<const volatile int>::type
evaluates to volatile int, whereas remove_const<const
@@ -12691,23 +12718,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 37
<td>
<p align="left">20.5.7
- <td>
+ <td width="107">
<p align="left">Table 41
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
@@ -12737,31 +12764,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
”.”
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 70
<td>
<p>20.6
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Specifications now expressed via narrative text are more
accurately and clearly expressed via executable code.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Wherever
concepts are available that directly match this
@@ -12773,46 +12800,46 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 71
<td>
<p>20.6.7
- <td>
+ <td width="107">
<p>Table 51, last row, column 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The grammar is incorrect.
- <td>
+ <td width="535">
<p>Change “conversion are” to “conversion
is”.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 38
<td>
<p align="left">20.6.12.1.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-left: 0.19in; text-indent: -0.19in; margin-bottom: 0in">
add the move requirement for bind's return type.<br>
@@ -12846,7 +12873,7 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left">Add
the following requirements.<br>
"<font color="#000000">it has a public move constructor
@@ -12855,27 +12882,27 @@
<p align="left" style="margin-top: 0.04in">Add
the MoveConstructible.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 39
<td>
<p align="left">20.6.16.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
There are no requires corresponding to F of std::function.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -12926,29 +12953,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 40
<td>
<p align="left">20.6.16.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -12982,28 +13009,28 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 41
<td>
<p align="left">20.6.16.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
There are no requires corresponding to R and Args of
UsesAllocator.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -13041,23 +13068,23 @@
<p align="left" style="margin-top: 0.04in">}
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 42
<td>
<p align="left">20.6.16.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">The requires
are wrong.
@@ -13067,7 +13094,7 @@
by a definition of function, then it's a mistake to
designate followings by MoveConstructible.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -13167,55 +13194,55 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
208
<td>
<p align="justify">20.6.17
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">std::hash should
be implemented for much more of the standard library. In
particular for pair, tuple and all the standard containers.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
209
<td>
<p align="justify">20.7
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Smart pointers cannot be used in
constrained templates
- <td>
+ <td width="535">
<p align="left">Provide
constraints for smart pointers
@@ -13223,24 +13250,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
213
<td>
<p align="justify">20.7.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">std::allocator
should be constrained to simplify its use on constrained
contexts. This library component models allocation from
@@ -13252,62 +13279,62 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">The primary allocator template should be
constrained to require ObjectType<T> and
FreeStoreAllocatable<T>. Further operations to be
constrained as required.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
214
<td>
<p align="justify">20.7.8
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
raw_storage_iterator needs constraining as an iterator
adaptor to be safely used in constrained templates
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Constrain the raw_storage_iterator template
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
210
<td>
<p align="justify">20.7.11
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Specialized algorithms for memory
managenment need requirements to be easily usable in
constrained templates
- <td>
+ <td width="535">
<p align="left">Provide
constraints for all algorithms in 20.7.11
@@ -13315,103 +13342,103 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-20
<td>
<p>20.7.12
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>DE-20 The section heading and the first sentence use the
term "template function", which is undefined.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Replace
"template function" by "function template".
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 72
<td>
<p align="left">20.7.12
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
bind should support move-only functors and bound arguments.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-21
<td>
<p>20.7.12.1.3
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p>Add the missing specification in the same section, or
add a cross-reference indicating the section where the
specification appears.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
211
<td>
<p align="justify">20.7.12.2.3
- <td>
+ <td width="107">
<p align="justify">11
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The nullptr_t
type was introduced to resolve the null pointer literal
problem. It should be used for the assignemnt operator, as
@@ -13419,29 +13446,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
212
<td>
<p align="justify">20.7.13.7
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">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
@@ -13451,55 +13478,55 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move this specification to 18.5. Move the
declarations into the header <new>.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-22
<td>
<p>20.7.16.2
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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".
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 73
<td>
<p align="left">20.7.18
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
std::reference_closure template is redundant with
std::function and should be removed.
@@ -13532,7 +13559,7 @@
<p align="left" style="margin-left: 0.25in"><br>
- <td>
+ <td width="535">
<p align="left">Remove 20.7.18
[func.referenceclosure].
@@ -13540,23 +13567,23 @@
<p align="left">Remove 5.1.1 paragraph 12.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 74
<td>
<p align="left">20.8
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">Scoped
allocators represent a poor trade-off for standardization,
since (1) scoped-allocator--aware containers can be
@@ -13584,7 +13611,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove support
for scoped allocators from the working paper. This includes
at least the following changes:
@@ -13614,79 +13641,79 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 74
<td>
<p>20.8.2.2
- <td>
+ <td width="107">
<p>(a) synopsis (b) after ¶ 14
- <td>
+ <td width="38">
<p>te/ed
- <td>
+ <td width="510">
<p>A concept name is twice misspelled.
- <td>
+ <td width="535">
<p>Change “Hasconstructor” to
“HasConstructor” (twice).
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 75
<td>
<p>20.8.2.2
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Allocator concepts are incomplete
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">See paper:
http://www.halpernwightsoftware.com/WG21/n2810_allocator_defects.pdf
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 43
<td>
<p align="left">20.8.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
<p align="left" style="margin-top: 0.04in">
"alloc" should be "Alloc"
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -13726,50 +13753,50 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
215
<td>
<p align="justify">20.8.3.3
- <td>
+ <td width="107">
<p align="justify">6,8
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Extra pair of
{}, presumably some formatting code gone awry :
duration& operator-{-}();
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the {} or fix formatting
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 77
<td>
<p align="left">20.8.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
Allocator-specific move and copy behavior for containers
(N2525) complicates a little-used and already-complicated
@@ -13793,7 +13820,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove 20.8.4.
<p align="left"><br>
@@ -13805,29 +13832,30 @@
<p align="left">Remove all references to the facilities in
20.8.4 and 20.8.5 from clause 23.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 78
<td>
- <p align="left">20.8.12, 20.8.13.2
+ <p align="left">20.8.12,<br>
+ 20.8.13.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p 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>
+ <td width="535">
<p align="left">Add
an interface that performs the conversion. See the
attached, Issues with the C++ Standard" paper under Chapter
@@ -13837,23 +13865,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 79
<td>
<p align="left">20.8.12.2.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
[unique.ptr.single.ctor]/5 no longer requires for D not to
be a pointer type. This restriction needs to be put
@@ -13876,26 +13904,26 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 44
<td>
<p align="left">20.8.13.6
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">The
1st parameter p and 2nd parameter v is now
shared_ptr<T> *.
@@ -13905,28 +13933,28 @@
shared_ptr<T>* then add the "p shall not be a null
pointer" at the requires.
- <td>
+ <td width="535">
<p 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>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 45
<td>
<p align="left">20.9
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
Rep, Period, Clock and Duration don't correspond to
concept.
@@ -13943,32 +13971,32 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p 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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 80
<td>
<p>20.9.2.1
- <td>
+ <td width="107">
<p>Heading
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The section heading does not describe the contents.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Change the
heading “<span lang=
@@ -13979,23 +14007,23 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 81
<td>
<p align="left">20.9.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">
chrono::duration is missing the modulous operator for both
member and non-member arithmetic. This operator is useful
@@ -14036,7 +14064,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add:
<p align="left"><br>
@@ -14096,75 +14124,75 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 82
<td>
<p>20.9.5.3
- <td>
+ <td width="107">
<p>after ¶ 1
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>The code synopsis has a minor alignment error.
- <td>
+ <td width="535">
<p>Align “rep” with the other symbols defined
in this synopsis.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
216
<td>
<p align="justify">21
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">All the containers use concepts for their
iterator usage, exect for basic_string. This needs fixing.
- <td>
+ <td width="535">
<p align="left">Use concepts for iterator template
parameters throughout the chapter.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 46
<td>
<p align="left">21.2, 21.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">The
basic_string does not use concept.
- <td>
+ <td width="535">
<p align="left">The
"class Alloc" is changed to "Allocator Alloc".
@@ -15158,23 +15186,23 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 47
<td>
<p align="left">21.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo. Missing ”>”
@@ -15195,27 +15223,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Correct typo.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 48
<td>
<p align="left">21.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
char_traits does not use concept.
@@ -15239,33 +15267,33 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
a concept for char_traits.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
217
<td>
<p align="justify">21.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">basic_string refers to
constructible_with_allocator_suffix, which I thought was
removed?
- <td>
+ <td width="535">
<p align="left">Remove the
lines: template <class charT, class traits, class Alloc
struct constructible_with_allocator_suffix<
@@ -15274,24 +15302,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
218
<td>
<p align="justify">21.3.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The identity
"&*(s.begin() + n) == &*s.begin() + n" relies on
operator& doing the "right thing", which (AFAICS) there
@@ -15302,53 +15330,54 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">See my recommendations for "23.2.1,
23.2.6".
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
219
<td>
- <p align="justify">21.3.6.6 [string.replace]
+ <p align="justify">21.3.6.6<br>
+ [string.replace]
- <td>
+ <td width="107">
<p align="justify">11
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Effects refers to "whose first begin() - i1
elements" However i1 is greater than begin()...
- <td>
+ <td width="535">
<p align="left">Effects refers to "whose first i1 - begin()
elements"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
220
<td>
<p align="justify">21.3.8.9
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The
operator<< for basic_string takes the output stream
by r-value reference. This is different from the same
@@ -15358,29 +15387,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 33
<td>
<p>22.1.1 [locale]
- <td>
+ <td width="107">
<p>3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>ios_base::iostate err = 0;
<p>
@@ -15390,26 +15419,26 @@
<p>goodbit is the solution.
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 49
<td>
<p align="left">22.1.3.2.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
codecvt does not use concept. For example, create
CodeConvert concept and change as follows.
@@ -15418,32 +15447,32 @@
template<<u>CodeConvert</u> Codecvt, class Elem =
wchar_t> class wstring_convert {
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
a concept for codecvt.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 50
<td>
<p align="left">22.1.3.2.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -15497,11 +15526,11 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 4
<td>
@@ -15510,36 +15539,36 @@
<p>22.2.1.4.2
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p><tt>to_end and to_limit are both used. Only one is
needed.</tt>
- <td>
+ <td width="535">
<p>Change to_limit to to_end.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 5
<td>
<p><tt>22.2.1.4.2</tt>
- <td>
+ <td width="107">
<p>#3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in"><tt>[ Note: As
a result of operations on state, it can return ok or
@@ -15566,33 +15595,34 @@
from_next is unaltered, to_next is advanced, state is
altered and return value is partial.</tt>
- <td>
+ <td width="535">
<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>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 6
<td>
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">22.2.1.5
- <p>See also 22.2.1.4 (1,2,3)
+ <p>See also<br>
+ 22.2.1.4 (1,2,3)
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">
<tt>codecvt_byname is only specified to work with locale
@@ -15610,27 +15640,27 @@
<p>
- <td>
+ <td width="535">
<p><tt>There should be a built-in means to find a codecvt
with a pair of character set names.</tt>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FI 7
<td>
<p>22.2.1.4
- <td>
+ <td width="107">
<p>1,2,3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">The word
"codeset" is used, whereas the word "character set" is used
@@ -15640,28 +15670,28 @@
<p>
- <td>
+ <td width="535">
<p>Change "codeset" to "character set."
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 51
<td>
<p align="left">22.2.5.1.1
- <td>
+ <td width="107">
<p align="left">7<sup>th</sup> <font size="2"
style="font-size: 11pt">para, 1<sup>st</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">A
parameter `end’ should be `fmtend’.<br>
get() function had two `end’ parameters at N2321.
@@ -15679,7 +15709,7 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -15699,27 +15729,29 @@
<p align="left" style="margin-top: 0.04in">
Requires: [fmt,fmtend) shall be a valid range.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 52
<td>
- <p align="left">22.2.5.1, 22.2.5.2, 22.2.6.1
+ <p align="left">22.2.5.1,<br>
+ 22.2.5.2,<br>
+ 22.2.6.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
InputIterator does not use concept.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -15888,27 +15920,28 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 53
<td>
- <p align="left">22.2.5.3 , 22.2.5.4
+ <p align="left">22.2.5.3 ,<br>
+ 22.2.5.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
OutputIterator does not use concept.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -16021,57 +16054,57 @@
<p align="left">typedef <u>OutputIter</u>
iter_type;
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 54
<td>
<p align="left">23
- <td>
+ <td width="107">
<p align="left">
2<sup>nd</sup> <font size="2" style=
"font-size: 11pt">para, Table 79</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
There is not <forward_list> in Table 79.
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
<forward_list> between <deque> and
<list>.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
221
<td>
<p align="justify">23
- <td>
+ <td width="107">
<p align="justify">Table 79
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The table is missing the new
<forward_list> header.
- <td>
+ <td width="535">
<p align="left">Add
<forward_list> to the table for sequence containers.
Alternative (technical) solution might be to merge
@@ -16079,24 +16112,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
222
<td>
<p align="justify">23
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is not clear
what purpose the Requirement tables serve in the Containers
clause. Are they the definition of a library Container? Or
@@ -16113,7 +16146,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
@@ -16124,55 +16157,55 @@
not provide the required size operation as it cannot be
implemented efficiently.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 55
<td>
<p align="left">23.1.1
- <td>
+ <td width="107">
<p align="left">
3<sup>rd</sup> <font size="2" style=
"font-size: 11pt">para, 4<sup>th</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">It
seems that “the MinimalAllocator concep” is the
typo of “the MinimalAllocator concept”.
- <td>
+ <td width="535">
<p 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>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
223
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The library does
not define the MinimalAllocator or ScopedAllocator
concepts, these were part of an earlier Allocators proposal
@@ -16180,34 +16213,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the references to MinimalAllocator
and ScopedAllocator, or add definitions for these concepts
to clause 20.7.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
224
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This paragraph implicitly requires all
containers in clause 23 to support allocators, which
std::array does not.
- <td>
+ <td width="535">
<p align="left">Add an 'unless
otherwise specified' rider somewhere in p8, or move the
whole array container from clause 23 [containers] to clause
@@ -16215,24 +16248,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
225
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">Table 81
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Inconsistent
words used to say the same thing. Table 80 describes
iterator/const_iterator typedef as returning an "iterator
@@ -16243,29 +16276,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change return types for
X::(const)_reverse_iterator to say "iterator type whose
value type is (const) T".
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
226
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">10
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left"><array>
must be added to this list. In particular it doesn't
satisfy: - no swap() function invalidates any references,
@@ -16275,90 +16308,90 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
227
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">Table 80
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The post-condition for a = rv uses the word
“construction” when it means
“assignment”
- <td>
+ <td width="535">
<p align="left">Replace the word
“construction” with the word
“assignment”
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
228
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Line 4 contains
a spelling mistake in the fragment "MinimalAllocator
concep."
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace "concep" with "concept"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
229
<td>
<p align="justify">23.1.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The fragment "A container may directly call
constructors" is not technically correct as constructors
are not callable.
- <td>
+ <td width="535">
<p align="left">Replace "A
container may directly call constructors and destructors
for its stored objects" with something similar to "A
@@ -16367,24 +16400,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
230
<td>
<p align="justify">23.1.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
“implementations shall consider the following
functions to be const” - what does this mean? I don't
@@ -16394,33 +16427,33 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Clarify what is meant and what requirements
an implementation must satisfy.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 56
<td>
<p align="left">23.1.3
- <td>
+ <td width="107">
<p align="left">12<sup>th</sup> <font size="2"
style="font-size: 11pt">para, Table 84</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
`array’ is unstated in Table 84 - Optional sequence
container operations.
- <td>
+ <td width="535">
<p align="left">Add
`array’ to Container field for the following
Expression.
@@ -16437,84 +16470,84 @@
<p align="left" style=
"text-indent: 0.15in; margin-top: 0.04in">a.at(n)
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
231
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">9-11
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">These paragraphs
are redundant now that Concepts define what it means to be
an Iterator and guide overload resolution accordingly.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike 23.1.3p9-11. Make sure
std::basic_string has constraints similar to std::vector to
meet this old guarantee.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
232
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">Table 84
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">match_results
may follow the requirements but is not listed a general
purpose library container.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove reference to match_results against
a[n] operation
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
233
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">Table 84
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Add references to the new containers.
- <td>
+ <td width="535">
<p align="left">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(),
@@ -16524,24 +16557,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
234
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">Table 84
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Ther reference
to iterator in semantics for back should also allow for
const_iterator when called on a const-qualified container.
@@ -16550,34 +16583,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace iterator with auto in semantics for
back: { auto tmp = a.end(); --tmp; return *tmp; }
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
235
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">Change the text
to read: “The library provides five basic kinds of
sequence containers: array, deque, forward_list, list and
@@ -16585,24 +16618,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
236
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">[ 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
@@ -16619,32 +16652,32 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove this paragraph
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
237
<td>
<p align="justify">23.1.3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">Modify the text
to read: "array, deque, forward_list, list and vector offer
the programmer different complexity trade-offs and should
@@ -16652,24 +16685,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
238
<td>
<p align="justify">23.1.4
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Leaving it
unspecified whether or not iterator and const_iterator are
the same type is dangerous, as user code may or may not
@@ -16682,7 +16715,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change 'unspecified' to 'implementation
defined'. Add "[Note: As itererator and const_iterator have
identical semantics in this case, and iterator is
@@ -16690,29 +16723,29 @@
the One Definition Rule by always using const_iterator in
their function parameter lists -- end note]
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
239
<td>
<p align="justify">23.1.4
- <td>
+ <td width="107">
<p align="justify">85
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Add below
a.erase(q), a.extract(q), with the following notation:
a.extract(q), Return type pair<key, iterator>
@@ -16724,24 +16757,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
240
<td>
<p align="justify">23.1.6.1
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The axiom
EmplacePushEquivalence should be asserting the stronger
contract that emplace and insert return the same iterator
@@ -16756,7 +16789,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove the * to deference the returned
iterator either side of the == in the
EmplacePushEquivalence axiom, rename the axiom
@@ -16767,110 +16800,110 @@
position, Args... args) { emplace(c, position, args...) ==
insert(c, position, value_type(args...)); }
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 57
<td>
<p align="left">23.1.6.3
- <td>
+ <td width="107">
<p align="left">
1<sup>st</sup> <font size="2" style=
"font-size: 11pt">para, 4<sup>th</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo, duplicated "to"
<p align="left" style="margin-top: 0.04in">
"<u>to to</u> model insertion container concepts."
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Remove one.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
241
<td>
<p align="justify">23.2.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">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>
+ <td width="535">
<p align="left">add exception to 23.1.1p3
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
242
<td>
<p align="justify">23.2.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">std:: qualification no longer needed for
reverse_iterator.
- <td>
+ <td width="535">
<p align="left">remove std::
qualification from std::reverse_iterator<iterator>
and std::reverse_iterator<const_iterator>
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
243
<td>
<p align="justify">23.2.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Most containers,
and types in general have 3 swaps: swap(T&, T&)
swap(T&&, T&) swap(T&, T&&) But
@@ -16878,27 +16911,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">add the other two swaps.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
244
<td>
<p align="justify">23.2.1, 23.2.6
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The validity of
the expression &a[n] == &a[0] + n is contingent on
operator& doing the “right thing” (as
@@ -16911,7 +16944,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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 >
@@ -16920,24 +16953,24 @@
Contiguous { C c; true = equal_ranges( data( c), data(c) +
size(c), begin(c)); } };
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
245
<td>
<p align="justify">23.2.3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -16946,7 +16979,7 @@
library specification in general. See earlier comment for
details, that would render this one redundant.
- <td>
+ <td width="535">
<p align="left">Add
CopyConstructible requirement to the following signatures:
template <Predicate<auto, T> Pred> requires
@@ -16966,59 +16999,59 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 58
<td>
<p align="left">23.2.3.2
- <td>
+ <td width="107">
<p align="left">
1<sup>st</sup> <font size="2" style="font-size: 11pt">line
before 1<sup>st</sup> para</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
Unnecessary "{" exists before a word iterator like
"{iterator before_begin()".
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Remove "{"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 59
<td>
<p align="left">23.2.4.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p 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)
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -17057,23 +17090,23 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 83
<td>
<p align="left">23.2.6.2
- <td>
+ <td width="107">
<p align="left">7
- <td>
+ <td width="38">
<p align="left">ed
- <td>
+ <td width="510">
<p align="left">
"shrink_to_fint" should be "shrink_to_fit".
@@ -17082,27 +17115,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
246
<td>
<p align="justify">23.3.2.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The content of
this sub-clause is purely trying to describe in words the
effect of the requires clauses on these operations, now
@@ -17113,29 +17146,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike 23.3.2.2 entirely. (but do NOT
strike these signatures from the class template
definition!)
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
247
<td>
<p align="justify">24.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<p align="left">Iterator
concepts are not extensive enough to merit a whole new
header, and should be merged into <concpts>. This is
@@ -17147,30 +17180,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
248
<td>
<p align="justify">24.1
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The text "so for
any iterator type there is an iterator value that points
past the last element of a corresponding container" is
@@ -17180,55 +17213,55 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace the reference to container with a
more appropriate concept
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
250
<td>
<p align="justify">24.1.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">A default implementation should be supplied
for the post-increment operator to simplify implementation
of iterators by users.
- <td>
+ <td width="535">
<p align="left">Copy the Effects clause into the concept
description as the default implementation. Assumes a
default value for postincrement_result
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
251
<td>
<p align="justify">24.1.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The
post-increment operator is dangerous for a general
InputIterator. The multi-pass guarantees that make it
@@ -17242,16 +17275,16 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move declaration of postincrement operator
and postincrement_result type from Interator concept to the
ForwardIterator concept
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK<br>
252
@@ -17261,38 +17294,38 @@
<td>
<p align="justify">24.1.2
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">istream_iterator is not a class, but a
class template
- <td>
+ <td width="535">
<p align="left">Change 'class' to 'class template' in the
note.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
253
<td>
<p align="justify">24.1.3
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">First sentance
does not make gramatical sense, Seems to be missing the
words 'if it' by comparison with similar sentance in other
@@ -17300,113 +17333,113 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the words 'if it' : "X satisfies the
requirements of an output iterator IF IT meets the
syntactic and semantic requirements"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
254
<td>
<p align="justify">24.1.3
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This
postcondition for pre-increment operator should be written
as an axiom
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move the postcondition into the concept
definition as an axiom
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
255
<td>
<p align="justify">24.1.4
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This
postcondition for pre-increment operator should be written
as an axiom
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move the postcondition into the concept
definition as an axiom
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
256
<td>
<p align="justify">24.1.5
- <td>
+ <td width="107">
<p align="justify">3, 4, 5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The relationship between pre- and post-
decrement should be expressed as an axiom.
- <td>
+ <td width="535">
<p align="left">Move the text
specification of pre/post-conditions and behaviour into an
axiom within the BidirectionalIterator concept
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
257
<td>
<p align="justify">24.1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There is a
reasonable default for postdecrement_result type, which is
X. X is required to be regular, therefore CopyConstructible
@@ -17415,57 +17448,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the default : typename
postincrement_result = X;
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
258
<td>
<p align="justify">24.1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">A default
implementation should be supplied for the post-decrement
operator to simplify implementation of iterators by users.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Copy the Effects clause into the concept
description as the default implementation. Assumes a
default value for postincrement_result
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
259
<td>
<p align="justify">24.1.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
postdecrement_result is effectively returning a copy of the
original iterator value, so should have similar
@@ -17475,34 +17508,34 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the requirement: requires Iterator<
postdecrement_result >;
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
260
<td>
<p align="justify">24.1.5
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Move the Effects
clause into the BidirectionalIterator concept definition as
an axiom, and as the default implementation for the
@@ -17510,11 +17543,11 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
249
@@ -17522,13 +17555,13 @@
<p align="justify"><span lang=
"en-US">24.1.6</span>
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The semantic for
operator+= should also be provided as a default
implementation to simplify implementation of user-defined
@@ -17536,61 +17569,61 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Copy the text from the effects clause into
the RandomAccessIterator concept as the default
implementaiton.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
261
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">To simplify user
defined random access iterator types, the
subscript_reference type should default to reference
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">typename subscript_reference = reference;
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
262
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">3, 4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Effects and post-conditions for operator+
are more useful if expressed as axioms, and supplied as
default implementations.
- <td>
+ <td width="535">
<p align="left">Move the effects
and Postcondition definitions into the RandomAccessIterator
concept and copy the code in the specification as the
@@ -17598,29 +17631,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
263
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This requirement on operator-= would be
better expressed as a default implementation in the
concept, with a matching axiom
- <td>
+ <td width="535">
<p align="left">Move the
specification for operator-= from the returns clause into
an axiom and default implementation within the
@@ -17628,52 +17661,52 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
264
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Effects clauses are better expressed as
axioms where possible.
- <td>
+ <td width="535">
<p align="left">Move code in
operator- effects clause into RandomAccessIterator concept
as both a default implementation and an axiom
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
265
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">8
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This effects
clause is nonesense. It looks more like an axiom stating
equivalence, and certainly an effects clause cannot change
@@ -17681,31 +17714,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike the Effects clause
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
266
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">9
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">This sentance should be provided as a
default definition, along with a matching axiom
- <td>
+ <td width="535">
<p align="left">Move the Returns
clause into the spefication for RandomAccessIterator
operator- as a default implementation. Move the Effects
@@ -17713,52 +17746,52 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
267
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">24.1.6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The code in the
Requires clause for RandomAccessIterator operator[] would
be better expressed as an axiom.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Rewrite the Requires clause as an axiom in
the RandomAccessIterator concept
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
268
<td>
<p align="justify">24.1.6
- <td>
+ <td width="107">
<p align="justify">12
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This note is
potentialy confusing as __far enters the syntax as a clear
language extension, but the note treats it as a regular
@@ -17767,29 +17800,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Clean up the note to either avoid using
language extension, or spell out this is a constraint to
support extensions.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 60
<td>
<p align="left">24.1.8
- <td>
+ <td width="107">
<p align="left">1<sup>st</sup> <font size="2"
style="font-size: 11pt">para</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">
Capability of an iterator is too much restricted by
concept.
@@ -17961,85 +17994,85 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
InputRange, OutputRange, ForwardRange, BidirectionalRange
and RandomAccessRange.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
269
<td>
<p align="justify">24.3
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">'decrements for
negative n' seems to imply a negative number of decrement
operations, which is odd.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Need simple, clearer wording
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
270
<td>
<p align="justify">24.3
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The reachability
constraint in p5 means that a negavite result, implying
decrements operations in p4, is not possible
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Split the two overloads into separate
descriptions, where reachability is permitted to be in
either direction for RandomAccessIterator
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
271
<td>
<p align="justify">24.3
- <td>
+ <td width="107">
<p align="justify">6,7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">next/prev return
an incremented iterator without changing the value of the
original iterator. However, even this may invalidate an
@@ -18048,28 +18081,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace InputIterator constraint with
FOrwardIterator in next and prev function templates.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
272
<td>
<p align="justify">24.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">reverse_iterator
and move_iterator use different formulations for their
comparison operations. move_iterator merely requires the
@@ -18088,29 +18121,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Rephrase the reverse_iterator comparison
operations using only operators < and ==, as per the
move_iterator specification.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
274
<td>
<p align="justify">24.4, 24.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The subclauses
for standard iterator adaptors could be better organised.
There are essentially 3 kinds of iterator wrappers
@@ -18123,30 +18156,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
275
<td>
<p align="justify">24.4.1.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The constructor
template taking a single Iterator argument will be selected
for Copy Initialization instead of the non-template
@@ -18155,28 +18188,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">The reverse_iterator template constructor
taking a single Iterator argument should be explicit.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
276
<td>
<p align="justify">24.4.1.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">It is odd to
have a mix of declaration stlyes for operator+ overloads.
Prefer if either all are member functions, or all are
@@ -18184,28 +18217,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Make the member operators taking a
difference_type argument non-member operators
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
277
<td>
<p align="justify">24.4.1.2.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The default
constructor default-initializes current, rather than
value-initializes. This means that when Iterator
@@ -18218,7 +18251,7 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
@@ -18226,24 +18259,24 @@
iii/ Add a note to the description emphasizing the singular
nature of a value-initialized reserve iterator.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
278
<td>
<p align="justify">24.4.1.2.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There is an
inconsistency between the constructor taking an iterator
and the constructor template taking a reverse_iterator
@@ -18253,28 +18286,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change the const reverse_iterator<U>
& parameter to pass-by-value
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
279
<td>
- <p align="justify">24.4.1.2.12, 24.4.3.2.12
+ <p align="justify">24.4.1.2.12,<br>
+ 24.4.3.2.12
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The reason the
return type became unspecified is LWG issue 386. This
reasoning no longer applies as there are at least two ways
@@ -18283,28 +18317,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Specify the return type using either
decltype or the Iter concept map
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
280
<td>
<p align="justify">24.4.1.2.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The presence of
the second iterator value is surprising for many readers
who underestimate the size of a reverse_iterator object.
@@ -18313,28 +18347,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add reverse_iterator expsoition only member
tmp as a comment to class declaration, as a private member
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
281
<td>
<p align="justify">24.4.1.2.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The current
specification for return value will always be a true
pointer type, but reverse_iterator supports proxy iterators
@@ -18342,57 +18376,62 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace the existing returns specification
with a copy of the operator* specification that returns
this->tmp.operator->
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
282
<td>
- <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
+ <p align="justify">24.4.2.1,<br>
+ 24.4.2.2.2,<br>
+ 24.4.2.3,<br>
+ 24.4.2.4.2,<br>
+ 24.4.2.5,<br>
+ 24.4.2.6.2
- <td>
+ <td width="107">
<p align="justify">n/a
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Insert iterators of move-only types will
move from lvalues
- <td>
+ <td width="535">
<p align="left">Add an additional constrained overload for
operator= that requires
!CopyConstructible<Cont::value_type> and mark it
=delete.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
283
<td>
- <p align="justify">24.4.2.5, 24.4.2.6.4
+ <p align="justify">24.4.2.5,<br>
+ 24.4.2.6.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">postincrement operator overloads
traditionally return by value - insert_iterator is declared
as return by reference. The change is harmless in this
@@ -18400,113 +18439,113 @@
matching change for consistency, or this function should
return-by-value
- <td>
+ <td width="535">
<p align="left">change operator++(int) overload to return
by value, not reference. Affects both class summary and
operator definition in p
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 61
<td>
<p align="left">24.4.3.2.1
- <td>
+ <td width="107">
<p align="left">2<sup>nd</sup> <font size="2"
style="font-size: 11pt">para, 1<sup>st</sup>
line</font>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
<p align="left" style="margin-top: 0.04in">
"intializing" should be "in<u>i</u>tializing"
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
"i"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
284
<td>
<p align="justify">24.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The stream
iterators need constraining with concepts/requrires
clauses.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide constraints
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
285
<td>
<p align="justify">24.5.1
- <td>
+ <td width="107">
<p align="justify">1,2
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Much of the
content of p1 and the whole of p2 is a redundant
redefinition of InputIterator. It should be simplified
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike p2. Simplify p1 and add a
cross-reference to the definition of InputIterator concept.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
286
<td>
<p align="justify">24.5.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">To the casual
reader it is not clear if it is intended to be able to
assign to istream_iterator objects. Specifying the copy
@@ -18515,29 +18554,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Either provide a similar definition to the
copy-assign operator as for the copy constructor, or strike
the copy constructor
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
287
<td>
<p align="justify">24.5.1.1
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is not clear
what the intial state of an istream_iterator should be. Is
_value_ initialized by reading the stream, or default/value
@@ -18549,57 +18588,57 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
288
<td>
<p align="justify">24.5.1.1
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The provided specification is vacuous,
offering no useful information.
- <td>
+ <td width="535">
<p align="left">Either strike
the specification of the copy constructor, or simply
replace it with an = default definition.
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
289
<td>
<p align="justify">24.5.1.2
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">It is very hard
to pick up the correct specification for
istream_iterator::operator== as the complete specification
@@ -18611,29 +18650,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
290
<td>
<p align="justify">24.5.2
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The character
type of a string delimiter for an ostream_iterator should
be const charT *, the type of the elements, not char *, a
@@ -18641,27 +18680,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Replace char * with const charT *
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
291
<td>
<p align="justify">24.5.2.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">ostream_iterator
postincrement operator returns by reference rather than by
value. This may be a small efficiency gain, but it is
@@ -18669,86 +18708,87 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">ostream_iterator operator++(int);
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 34
<td>
- <p>24.5.3 [istreambuf.iterator]
+ <p>24.5.3<br>
+ [istreambuf.iterator]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>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.
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
292
<td>
<p align="justify">24.5.3
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Prefer the use
of the new nullptr constant to the zero literal when using
a null pointer in text.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change istreambuf_iterator(0) to
istreambuf_iterator(nullptr)
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
293
<td>
<p align="justify">24.5.3
- <td>
+ <td width="107">
<p align="justify">2,3,4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">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
@@ -18761,29 +18801,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
294
<td>
<p align="justify">24.5.3.2
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Implicit converting constructors can be
invoked at surprising times, so there should always be a
good reason for declaring one.
- <td>
+ <td width="535">
<p align="left">Mark the two
single-argument constructors take a stream or stream buffer
as explicit. The proxy constructor should remain implicit.
@@ -18795,24 +18835,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
295
<td>
<p align="justify">25
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">THere is a level
of redundancy in the library specification for many
algorithms that can be eliminated with the combination of
@@ -18822,26 +18862,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Adopt n2743, or an update of that paper.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 62
<td>
- <p align="left">25, 25.3.1.5, 26.3.6.5
+ <p align="left">25, 25.3.1.5,<br>
+ 26.3.6.5
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
The return types of is_sorted_until function and
@@ -18857,31 +18898,31 @@
<p align="left" style=
"text-indent: 0.2in; margin-top: 0.04in"><br>
- <td>
+ <td width="535">
<p align="left">
Change "is_sorted_until" to "sorted_bound"
<p align="left" style="margin-top: 0.04in">
Change "is_heap" to "heap_bound"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
296
<td>
<p align="justify">25.1.8
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The 'Returns' of
adjacent_find requires only HasEqualTo, or a Predicate.
Requiring EqualityComparable or EquivalenceRelation seems
@@ -18889,111 +18930,111 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change EqualityComparable to HasEqualTo and
EquivalnceRelation to Predicate
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
297
<td>
<p align="justify">25.2.11
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The definition
of rotate_copy is very complicated. It is equivalent to:
return copy(first, middle, copy(middle, last, result));
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change 'effects' to, returns, requires,
complexity to: effects: equivalent to: return copy(first,
middle, copy(middle, last, result));
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
298
<td>
<p align="justify">25.2.13
- <td>
+ <td width="107">
<p align="justify">13
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">partition_point requires a partitioned
array
- <td>
+ <td width="535">
<p align="left">requires: is_partitioned(first, last, pred)
!= false;
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
299
<td>
<p align="justify">25.2.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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);
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
300
<td>
<p align="justify">25.2.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Since publishing
the original standard, we have learned that swap is a
fundamental operation, and several common idioms rely on it
@@ -19009,31 +19050,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
301
<td>
<p align="justify">25.2.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">replace and
replace_if have the requirement: OutputIterator<Iter,
Iter::reference> Which implies they need to copy some
@@ -19044,161 +19085,162 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove OutputIterator<Iter,
Iter::reference> from replace and replace_if
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
302
<td>
<p align="justify">25.3
- <td>
+ <td width="107">
<p align="justify">4
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">the concept
StrictWeakOrder covers the definition of a strict weak
ordering, described in paragraph 4.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Remove 4, and mention StrictWeakOrder in
paragraph 1.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
303
<td>
<p align="justify">25.3
- <td>
+ <td width="107">
<p align="justify">6
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">This paragraph just describes
is_partitioned
- <td>
+ <td width="535">
<p align="left">6 A sequence
[start,finish) is partitioned with respect to an expression
f(e) if is_partitioned(start, finish, e) != false
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
304
<td>
<p align="justify">25.3.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The requires
clauses of push_heap, pop_heap and make_heap are
inconsistently formatted, dispite being identical
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Format them identically.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
305
<td>
<p align="justify">25.3.7
- <td>
+ <td width="107">
<p align="justify">1, 9, 17
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Strike the !IsSameType<T, Compare>
constraint on min/max/minmax algorithms
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 84
<td>
<p align="left">26
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">
Parts of the numerics chapter are not concept enabled.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 35
<td>
- <p>26.3 [Complex numbers]
+ <p>26.3<br>
+ [Complex numbers]
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>Instantiations of the class
template complex<> have to be allowed for integral
types, to reflect existing practice and ISO standards
@@ -19206,53 +19248,53 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
306
<td>
<p align="justify">26.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Random number
library component cannot be used in constrained templates
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide constraints for the random number
library
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 63
<td>
<p align="left">26.4.8.5.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left">No
constructor of discrete_distribution that accepts
initializer_list.
@@ -19283,30 +19325,30 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left">Add
the following constructer.
<p align="left" style="margin-top: 0.04in">
<u>discrete_distribution(initializer_list<result_type>);</u>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 64
<td>
<p align="left">26.5.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">
“valarray<T>& operator+=
@@ -19315,29 +19357,29 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
valarray<T>& operator+=
(initializer_list<T>);
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
307
<td>
<p align="justify">26.7
- <td>
+ <td width="107">
<p align="justify">Footnote 288
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">The footnote
refers to TR1, which is not a defined term in this
standard. Drop the reference to TR1, those templates are a
@@ -19346,79 +19388,79 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Drop the reference to TR1.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 85
<td>
<p align="left">27
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">The
input/output chapter is not concept enabled.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
308
<td>
<p align="justify">27
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
<span lang="en-US">iostreams library cannot be used from
constrained templates</span>
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide constraints for the iostreams
library, clause 27
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 65
<td>
<p align="left">27.4.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Switch from
“unspecified-bool-type” to<span lang=
@@ -19428,29 +19470,29 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Replace "operator <i>unspecified-bool-type</i>() const;"
with "explicit operator bool() const;"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 66
<td>
<p align="left">27.4.4.3
- <td>
+ <td width="107">
<p align="left">1<sup>st</sup> <font size="2"
style="font-size: 11pt">para</font>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Switch from
“unspecified-bool-type” to<span lang=
@@ -19460,28 +19502,29 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Replace "operator <i>unspecified-bool-type</i>() const;"
with "explicit operator bool() const;"
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 36
<td>
- <p>27.6.1.2.2 [istream.formatted.arithmetic]
+ <p>27.6.1.2.2 [istream.<br>
+ formatted.arithmetic]
- <td>
+ <td width="107">
<p>1, 2, and 3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>iostate err = 0;
<p>
@@ -19493,26 +19536,27 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 37
<td>
- <p>27.6.1.2.2 [istream.formatted.arithmetic]
+ <p>27.6.1.2.2 [istream.<br>
+ formatted.arithmetic]
- <td>
+ <td width="107">
<p>3
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>else if (lval <
numeric_limits<int>::min()
@@ -19526,30 +19570,30 @@
<p>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 67
<td>
<p align="left">27.7.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
basic_stringbuf dose not use concept.
- <td>
+ <td width="535">
<p align="left">
Replace “class Allocator” to “Allocator
Alloc”.
@@ -19675,27 +19719,27 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 68
<td>
<p align="left">27.7.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
basic_istringstream dose not use concept.
- <td>
+ <td width="535">
<p align="left">
Replace “class Allocator” to “Allocator
Alloc”.
@@ -19852,27 +19896,27 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 69
<td>
<p align="left">27.7.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
basic_ostringstream dose not use concept.
- <td>
+ <td width="535">
<p align="left">
Replace “class Allocator” to “Allocator
Alloc”.
@@ -20030,30 +20074,30 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 71
<td>
<p align="left">27.7.3
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo.
<p align="left">"template" is missing in
"class basic_ostringstream" of the title of the chapter.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -20072,27 +20116,27 @@
<p align="left">27.7.3 Class <u>template</u>
basic_ostringstream
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 72
<td>
<p align="left">27.7.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
basic_stringstream dose not use concept.
- <td>
+ <td width="535">
<p align="left">
Replace "class Allocator" to "Allocator Alloc".
@@ -20244,23 +20288,23 @@
<p align="left" style="margin-top: 0.04in">}
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 73
<td>
<p align="left">27.8.1.14
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">It is a problem
from C++98, fstream cannot appoint a filename of wide
@@ -20269,106 +20313,106 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
interface corresponding to wchar_t, char16_t and char32_t.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 86
<td>
<p align="left">28
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">The
regular expressions chapter is not concept enabled.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
309
<td>
<p align="justify">28
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Regular
expressions cannot be used in constrained templates
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide constraints for the regular
expression library, clause 28
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
310
<td>
<p align="justify">28
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The regex chapter uses iterators in the old
pre-concept style, it should be changed to use concepts
instead.
- <td>
+ <td width="535">
<p align="left">Use concepts for iterator template
arguments throughout.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
314
<td>
<p align="justify">28.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The swap
overloads for regex classes are only supplied for l-value
references. Other sections of the library (eg 21 strings or
@@ -20378,30 +20422,30 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
315
<td>
<p align="justify">28.4
- <td>
+ <td width="107">
<p align="justify">p6
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">6 Effects:
string_type str(first, last); return
use_facet<collate<charT> >(
@@ -20410,60 +20454,60 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Reword to effect clause to use legal
iterator dereferences
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
316
<td>
<p align="justify">28.4 ff
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The constructors
for regex classes do not have an r-value overload.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add the missing r-value constructors to
regex classes.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
317
<td>
<p align="justify">28.8
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">basic_string has both a constructor and an
assignment operator that accepts an initializer list,
basic_regex should have the same.
- <td>
+ <td width="535">
<p align="left">In the
basic_regex synopsis, after: basic_regex&
operator=(const charT* ptr); add: basic_regex&
@@ -20474,23 +20518,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 74
<td>
<p align="left">28.8
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">
“basic_regx & operator=
@@ -20499,55 +20543,55 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
basic_regx & operator= (initializer_list<T>);
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
318
<td>
<p align="justify">28.8.2
- <td>
+ <td width="107">
<p align="justify">para 22
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Constructor
definition should appear with the other constructors not
after assignment ops.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Move para 22 to just after para 17.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
319
<td>
<p align="justify">28.12.2
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
@@ -20560,7 +20604,7 @@
initializer_lists we should use them to remove this
particular wart.
- <td>
+ <td width="535">
<p align="left">To the synopsis
for regex_token_iterator, after template <std::size_t
N> regex_token_iterator(BidirectionalIterator a,
@@ -20583,84 +20627,84 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 87
<td>
<p align="left">29
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">The
atomics chapter is not concept enabled. The adopted paper,
N2427, did have those concepts.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
311
<td>
<p align="justify">29
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Atomic types
cannot be used generically in a constrained template
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Provide constraints for the atomics
library, clause 29
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
312
<td>
<p align="justify">29
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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
@@ -20669,28 +20713,28 @@
adds atomic operations to C we can add corresponding
headers to table 14 with a TR.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 75
<td>
<p align="left">29
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">A
definition of enum or struct is the style of C using
typedef.
- <td>
+ <td width="535">
<p align="left">
Change to a style of C++.
@@ -20918,29 +20962,29 @@
<p align="left">}
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
313
<td>
<p align="justify">29.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">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
@@ -20951,27 +20995,27 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 88
<td>
<p align="left">29.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The "lockfree" facilities do
not tell the programmer enough.
- <td>
+ <td width="535">
<p align="left">
Expand the "lockfree" facilities. See the attached paper
"Issues with the C++ Standard" under Chapter 29,
@@ -20979,23 +21023,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 89
<td>
<p align="left">29.3.1
- <td>
+ <td width="107">
<p align="left">Table 122
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The
types in the table "Atomics for standard typedef types"
should be typedefs, not classes. These semantics are
@@ -21003,31 +21047,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Change the classes to
typedefs.
- <td>
+ <td width="89">
<p align="left">Google
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 90
<td>
<p align="left">29.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">Are atomic functions allowed
to have non-volatile overloads?
- <td>
+ <td width="535">
<p align="left">
Allow non-volatile overloads. See the attached paper
"Issues with the C++ Standard, under Chapter 29, "Are
@@ -21035,28 +21079,28 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 91
<td>
<p align="left">29.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">Whether or not a failed
compare_exchange is a RMW operation (as used in 1.10
[intro.multithread]) is unclear.
- <td>
+ <td width="535">
<p align="left">
Make failing compare_exchange operations <font size="2"
style="font-size: 11pt"><strong>not</strong> be RMW. See
@@ -21065,27 +21109,27 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 92
<td>
<p align="left">29.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">te
- <td>
+ <td width="510">
<p align="left">The effect of
memory_order_consume with atomic RMW operations is unclear.
- <td>
+ <td width="535">
<p align="left">
Follow the lead of fences [atomics.fences], and promote
memory_order_consume to memory_order_acquire with RMW
@@ -21093,23 +21137,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 76
<td>
<p align="left">30
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">A
description for "<i>Throws:</i> Nothing." are not unified.
@@ -21117,7 +21161,7 @@
the part without throw, "<i>Throws:</i> Nothing." should be
described.
- <td>
+ <td width="535">
<p align="left">Add
"<i>Throws:</i> Nothing." to the following.
@@ -21146,36 +21190,36 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 93
<td>
<p align="left">30
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left">ge
- <td>
+ <td width="510">
<p align="left">The
thread chapter is not concept enabled.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left"><br>
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p align="justify" style=
"margin-right: -0.18in; margin-bottom: 0in">UK<br>
320
@@ -21185,38 +21229,38 @@
<td>
<p align="justify">30
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Threads library cannot be used in
constrained templates
- <td>
+ <td width="535">
<p align="left">Provide constraints for the threads
library, clause 30
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
321
<td>
<p align="justify">30
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">Throughout this
clause, the term Requires: is used to introduce compile
time requirements, which we expect to be replaced with
@@ -21230,32 +21274,32 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Decument Preconditions: paragraphs in
17.5.2.4, and use consistently through rest of the library.
- <td>
+ <td width="89">
<p align="left"><br>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 94
<td>
<p>30.1.2
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>The first sentence of para 1 suggests that no other
library function is permitted to call operating system or
low level APIs.
- <td>
+ <td width="535">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">Rewrite para 1
as: “ <font color="#000000">Some functions described
@@ -21269,27 +21313,27 @@
<p>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 95
<td>
<p>30.1.3
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>“native_handle_type” is a typedef, not a
class member.
- <td>
+ <td width="535">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Several classes
described in this Clause have a member native_handle (of
@@ -21306,26 +21350,26 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 96
<td>
<p>30.1.4
- <td>
+ <td width="107">
<p>2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>There is no definition here for monotonic clock.
- <td>
+ <td width="535">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">Implementations
should use a <i>monotonic clock</i> to measure time for
@@ -21335,52 +21379,52 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
322
<td>
<p align="justify">30.1.4
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Not all systms
can provide a monotonic clock. How are they expected to
treat a _for function?
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add at least a note explaining the intent
for systems that do not support a monotonic clock.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
323
<td>
<p align="justify">30.2.1
- <td>
+ <td width="107">
<p align="justify">1
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The presence of
a non-explicit variadic template constructor alongside an
explicit single-argument constructor can lead to behaviour
@@ -21393,37 +21437,37 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Mark constructor template <class F,
class ...Args> thread(F&& f, Args&&...
args); as explicit and remove the single-argument
constructor.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
324
<td>
<p align="justify">30.2.1.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">thread::id
objects should be as useable in hashing containers as they
are in ordered associative containers.
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add thread::id
support for std::hash
@@ -21433,23 +21477,23 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 77
<td>
<p align="left">30.2.1.2
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style=
"margin-top: 0.04in; margin-bottom: 0.04in">
"CopyConstructible" and "MoveConstructible" in
@@ -21460,85 +21504,86 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">Add
a concept for constructor of thread.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 78
<td>
<p align="left">30.2.1.2
- <td>
+ <td width="107">
<p align="left">
4<sup>th</sup> <font size="2" style=
"font-size: 11pt">para, 1<sup>st</sup> line</font>
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">In
"F and each Ti in Args", 'Ti' is not clear.
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Replace "Ti" with "args"
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>US 97
<td>
<p>30.2.1.3
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p>detach-on-destruction may result in
“escaped” threads accessing objects with
bounded lifetime after the end of their lifetime.
- <td>
+ <td width="535">
<p>See document WG21 N2802=08-0312 written by Hans Boehm.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p align="left">US 98
<td>
- <p align="left">30.2.1.3, 30.2.1.4
+ <p align="left">30.2.1.3,<br>
+ 30.2.1.4
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p align="left"><br>
- <td>
+ <td width="510">
<p 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.
- <td>
+ <td width="535">
<p align="left">
Change destruction behavior to undefined behavior, with a
note strongly encouraging termination. See the attached
@@ -21547,30 +21592,30 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
325
<td>
<p align="justify">30.3.3
- <td>
+ <td width="107">
<p align="justify">2
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Replace the
extern declarations: extern const defer_lock_t defer_lock;
extern const try_to_lock_t try_to_lock; extern const
@@ -21580,24 +21625,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
326
<td>
<p align="justify">30.3.3.2.1
- <td>
+ <td width="107">
<p align="justify">7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">The precondition
that the mutex is not owned by this thread offers
introduces the risk of un-necessary undefined behaviour
@@ -21611,27 +21656,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Strike 30.3.3.2.1p7
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
327
<td>
<p align="justify">30.3.3.2.2
- <td>
+ <td width="107">
<p align="justify">4, 9, 14, 19
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Not clear what
the specification for error condition
resource_deadlock_would_occur means. It is perfectly
@@ -21650,65 +21695,65 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
328
<td>
<p align="justify">30.3.3.2.2
- <td>
+ <td width="107">
<p align="justify">20
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There is a missing precondition that owns
is true, or an if(owns) test is missing from the effect
clause
- <td>
+ <td width="535">
<p align="left">Add a
precondition that owns == true. Add an error condition to
detect a violation, rather than yield undefined behaviour.
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
329
<td>
<p align="justify">30.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Provide a simple
function along the lines of: template< typename F,
typename ... Args > requires Callable< F, Args...
@@ -21731,58 +21776,58 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
330
<td>
<p align="justify">30.5.1
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Remove the
reference to constructible_with_allocator_prefix in 30.5.1
Remove paragraph 30.5.7
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 79
<td>
<p align="left">30.5.1
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">The
concept of UsesAllocator and Allocator should be used.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -21822,24 +21867,24 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
331
<td>
<p align="justify">30.5.3
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Not clear what
it means for a public constructor to be 'exposition only'.
If the intent is purely to support the library calling this
@@ -21849,29 +21894,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Declare the constructor as private with a
note about intended friendship, or remove the
exposition-only comment and document the semantics.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
332
<td>
<p align="justify">30.5.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ed
- <td>
+ <td width="510">
<p align="left">It is not clear
without reference to the original proposal how to use a
future. In particular, the only way for the user to
@@ -21882,56 +21927,56 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
333
<td>
<p align="justify">30.5.4
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Requires fully baked concepts for clause 30
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
334
<td>
<p align="justify">30.5.4
- <td>
+ <td width="107">
<p align="justify">5
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">Behaviour of
get() is undefined if calling get() while not is_ready().
The intent is that get() is a blocking call, and will wait
@@ -21939,28 +21984,28 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Effects: If is_ready() would return false,
block on the asynchronous result associated with *this.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
335
<td>
<p align="justify">30.5.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">
std::unique_future is MoveConstructible, so you can
transfer the association with an asynchronous result from
@@ -21974,31 +22019,31 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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();
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
336
<td>
<p align="justify">30.5.4
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">It is possible
to transfer ownership of the asynchronous result from one
unique_future instance to another via the move-constructor.
@@ -22012,29 +22057,29 @@
<p align="left"><br>
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 80
<td>
<p align="left">30.5.4 , 30.5.5
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left">
Typo, duplicated ">"
@@ -22045,28 +22090,28 @@
<p align="left" style="margin-top: 0.04in">
<br>
- <td>
+ <td width="535">
<p align="left" style="margin-top: 0.04in">
Remove one
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
337
<td>
<p align="justify">30.5.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">shared_future
should support an efficient move constructor that can avoid
unnecessary manipulation of a reference count, much like
@@ -22074,27 +22119,27 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a move constructor
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
338
<td>
<p align="justify">30.5.5
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">shared_future is currently
CopyConstructible, but not CopyAssignable. This is
inconsistent with shared_ptr, and will surprise users.
@@ -22107,7 +22152,7 @@
retained by declaring such an instance as "const
shared_future".
- <td>
+ <td width="535">
<p align="left">Remove "=delete"
from the copy-assignment operator of shared_future. Add a
move-constructor shared_future(shared_future&&
@@ -22122,29 +22167,29 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
339
<td>
<p align="justify">30.5.6
- <td>
+ <td width="107">
<p align="justify">6, 7
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">Strike 6. 7
Postcondition: associated state of *this is the same as the
associated state of rhs before the call. rhs has no
@@ -22152,24 +22197,24 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
340
<td>
<p align="justify">30.5.6
- <td>
+ <td width="107">
<p align="justify">11, 12, 13
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">There is an
implied postcondition that the state of the promise is
transferred into the future leaving the promise with no
@@ -22177,89 +22222,89 @@
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Postcondition: *this has no associated
state.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
341
<td>
<p align="justify">30.5.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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
- <td>
+ <td width="535">
<p align="left">Change promise::swap to take an rvalue
reference.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
342
<td>
<p align="justify">30.5.6
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<p align="left">std::promise is
missing a non-member overload of swap. This is inconsistent
with other types that provide a swap member function
<p align="left"><br>
- <td>
+ <td width="535">
<p align="left">Add a non-member overload void
swap(promise&& x,promise&& y){ x.swap(y); }
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
343
<td>
<p align="justify">30.5.6
- <td>
+ <td width="107">
<p align="justify">3
- <td>
+ <td width="38">
<p align="justify">Te
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<p align="left">Remove the
constructor with the signature template <class
Allocator> promise(allocator_arg_t, const Allocator&
@@ -22267,28 +22312,28 @@
<p align="left"><br>
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>JP 81
<td>
<p align="left">30.5.8
- <td>
+ <td width="107">
<p align="left"><br>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p align="left" style="margin-top: 0.04in">
There are not requirements for F and a concept of Allocator
dose not use.
- <td>
+ <td width="535">
<p align="left">
Correct as follows.
@@ -22398,23 +22443,23 @@
packaged_task(allocator_arg_t, const <u>Alloc</u>& a,
F&& f);
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-23
<td>
<p>Annex B
- <td>
+ <td width="107">
<p>p2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-23 Recursive
use of constexpr functions appears to be permitted. Since
@@ -22422,52 +22467,52 @@
compile-time, Annex B "implementation quantities" should
specify a maximum depth of recursion.
- <td>
+ <td width="535">
<p>In Annex B, specify a recursion depth of 256 or a larger
value.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-24
<td>
<p>Annex B
- <td>
+ <td width="107">
<p>p2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">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.<br>
- <td>
+ <td width="535">
<p>Add a miminum of 10 placeholders to Annex B.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>DE-25
<td>
<p>Annex B
- <td>
+ <td width="107">
<p>p2
- <td>
+ <td width="38">
<p>te
- <td>
+ <td width="510">
<p style=
"margin-top: 0.04in; margin-bottom: 0.04in">DE-25
Specifying a minimum of 17 recursively nested template
@@ -22478,27 +22523,28 @@
. The conclusion is that the metric "number of recursively
nested template instantiations" is inapposite.
- <td>
+ <td width="535">
<p>Remove the bullet "Recursively nested template
instantiations [17]".
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 38
<td>
- <p>C.2 [diffs.library]
+ <p>C.2<br>
+ [diffs.library]
- <td>
+ <td width="107">
<p>1
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>What is ISO/IEC 1990:9899/DAM
1? My guess is that's a typo for ISO/IEC
@@ -22508,59 +22554,59 @@
<p>make reference to things
which were introduced by Amd.1).
- <td>
+ <td width="535">
<p>One need probably a reference
to the document which introduce char16_t and
<p>char32_t in C (ISO/IEC TR 19769:2004?).
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>UK<br>
344
<td>
<p align="justify">Appendix D
- <td>
+ <td width="107">
<p align="justify"><br>
- <td>
+ <td width="38">
<p align="justify">Ge
- <td>
+ <td width="510">
<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.
- <td>
+ <td width="535">
<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.
- <td>
+ <td width="89">
<p>
<tr valign="top">
- <td>
+ <td width="29">
<p>FR 39
<td>
<p>Index
- <td>
+ <td width="107">
<p>
- <td>
+ <td width="38">
<p>ed
- <td>
+ <td width="510">
<p>Some definitions seem not
indexed (such as /trivially copyable/ or
@@ -22570,10 +22616,10 @@
increase the usefulness; having a separate index of all
definitions is something which could also be considered).
- <td>
+ <td width="535">
<p>
- <td>
+ <td width="89">
<p>
</table><hr>
\ No newline at end of file
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk