Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r51567 - sandbox/committee/LWG
From: bdawes_at_[hidden]
Date: 2009-03-03 08:32:47


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

Log:
cleanup
Text files modified:
   sandbox/committee/LWG/0xCD1_Comments.html | 12745 ++++++---------------------------------
   1 files changed, 1942 insertions(+), 10803 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:32:44 EST (Tue, 03 Mar 2009)
@@ -25,23 +25,23 @@
       <td width="29">
         <p><b>MB</b><b><br></b><br>
 
- <td width="118">
+ <td width="75">
         <p><b>Clause No./<br>
         Subclause No./<br>
         Annex<br></b>(e.g. 3.1)
 
- <td width="85">
+ <td width="31">
         <p><b>Para/<br>
- Figure/<br>Table/<br>Note</b><td width="62">
+ Figure/<br>Table/<br>Note</b><td width="38">
         <p><b>Type </b>
 
- <td width="514">
+ <td width="375">
         <p><b>Comment (justification for change) by the MB</b>
 
- <td width="536">
+ <td width="466">
         <p><b>Proposed change by the MB</b>
 
- <td width="178">
+ <td width="225">
         <p align="center" style=
         "margin-top: 0.07in; margin-bottom: 0.04in; page-break-inside: avoid">
         <b>Disposition</b>
@@ -50,8882 +50,18 @@
 
     <tr valign="top">
       <td width="29">
- <p>FR 1
-
- <td width="118">
- <p>General<br>
- Comment
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ge
-
- <td width="514">
- <p>Interactions between several
- new features appear obscure, and very few examples are
- offered to guide understanding of the formal text on
- interaction between these new additions.
-
- <p>We worry about the complexity
- of the programming model so created.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 1
-
- <td width="118">
- <p align="left">1-16
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">ge/te
-
- <td width="514">
- <p align="left">The
- active issues identified in WG21 N2803, C++ Standard Core
- Language Active Issues, must be addressed and appropriate
- action taken.
-
- <p align="left">
- <br>
-
- <p align="left">
- <font color="#000080"><u><a href=
- "http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html">
- http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html></u></font>
-
- <td width="536">
- <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.
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>CA-1
-
- <td width="118">
- <p>
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>Ge
-
- <td width="514">
- <p>There are quite a number of defects for the current CD
- recorded in SC22/WG21-N2803 and N2806
-
- <td width="536">
- <p>Consider these comments and update ISO/IEC CD 14882
- accordingly
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-1
-
- <td width="118">
- <p>1 through 16
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ge/te
-
- <td width="514">
- <p>DE-1 Consider addressing a significant part of the
- unresolved core language issues presented in WG21 document
- N2791 "C++ Standard Core Language Active Issues, Revision
- 59", available at
-
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
- .
-
- <td width="536">
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>CH 2
-
- <td width="118">
- <p>all
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The issues on the issues lists shall be addressed before
- the standard becomes final.
-
- <td width="536">
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 3
-
- <td width="118">
- <p align="left">all
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p>Latin abbreviations are presented incorrectly.
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 3
-
- <td width="118">
- <p>1 [intro.scope]
-
- <td width="85">
- <p>2
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>C++ is split at the end of line.
-
- <td width="536">
- <p align="left">&nbsp;<td width="178">
- <p align="left">&nbsp;<tr valign="top">
- <td width="29">
- <p align="left">US 4
-
- <td width="118">
- <p align="left">1.1
-
- <td width="85">
- <p align="left">2
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">There is a bad line break in
- "C++".
-
- <td width="536">
- <p align="left">&nbsp;<td width="178">
- <p align="left">&nbsp;<tr valign="top">
- <td width="29">
- <p>UK 1
-
- <td width="118">
- <p align="justify">1.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">List of additional facilities over C has
- been extended with this standard, so should be mentioned in
- the introductory material.
-
- <td width="536">
- <p align="left">Add the following to the list in 1.1p2:
- atomic operations concurrency alignment control
- user-defined literals attributes
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 4
-
- <td width="118">
- <p>1.2 [intro.refs]
-
- <td width="85">
- <p>1
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>Is the lack of reference to ISO/CEI 9899/AC3:2007
- voluntary?
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 2
-
- <td width="118">
- <p align="justify">1.2
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">... not sure ...
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 3
-
- <td width="118">
- <p align="justify">1.3.1
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Revise the
- definition of argument to answer question such as: Are
- lambda-captures arguments? Are type names in a throw-spec
- arguments? 'Argument' to casts, typeid, alignof, alignas,
- decltype and sizeof? why in x[arg] : arg is not an
- agrument, but the value forwarded to operator[]() is ? Does
- not apply to operators as call-points not bounded by
- parenthises ? Similar for copy initialization and
- conversion? what are Deduced template 'arguments'? what are
- 'default arguments'? can attributes have arguments? what
- about concepts, requires clauses and concept_map
- instantiations? What about user-defined literals where
- parens are not used?
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 4
-
- <td width="118">
- <p align="justify">1.3.3
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 5
-
- <td width="118">
- <p>1.3.4<br>
- [defns.<br>
- dynamic.type]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>"The dynamic type of an rvalue expression is its static
- type." Is this true with rvalue references?
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 5
-
- <td width="118">
- <p>1.3.5
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The wording is unclear as to whether it is the input or
- the implementation "that is not a well-formed program".
-
- <td width="536">
- <p>Reword to clarify that it is the input that is here
- considered not well-formed.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 6
-
- <td width="118">
- <p>1.3.6<br>
- [defns.<br>
- impl.defined]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>There is a page break between the title and the
- paragraph.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 7
-
- <td width="118">
- <p>1.3.13<br>
- [defns.<br>
- undefined]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>[intro.execution]/5 explicitly allows non causal
- undefined behaviour,
-
- <td width="536">
- <p>Adding it to the note outlying possible undefined
- behaviours.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 6
-
- <td width="118">
- <p align="left">1.3.14
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">ge
-
- <td width="514">
- <p align="left">
- Unspecified behavior does not clearly state whether or not
- undefined behavior is permitted. (The standard says that
- "usually, the range of possible behaviors is delineated",
- but what happens if the range is not delineated? Is a
- crash, or worse, allowed?) <br>
-
- <td width="536">
- <p align="left">Clearly state whether or not
- Unspecified behavior includes undefined behavior.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 8
-
- <td width="118">
- <p>1.4<br>
- [intro.<br>
- compliance]
-
- <td width="85">
- <p>8
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <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 width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK 5
-
- <td width="118">
- <p align="justify">1.5
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <p align="left">Missing checklist of implementation defined
- behaviour (see ISO/IEC TR 10176, 4.1.1p6)
-
- <td width="536">
- <p align="left">Provide a new annex with the missing
- checklist
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 6
-
- <td width="118">
- <p align="justify">1.5
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <p align="left">Missing annex describing potential
- incompatibility to previous edition of the standard (see
- ISO/IEC TR 10176, 4.1.1p9)
-
- <td width="536">
- <p align="left">Provide a new annex with the missing
- documentation. See n2733(08-0243) for a starting point
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 7
-
- <td width="118">
- <p>1.5
-
- <td width="85">
- <p>2
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>There is no mention of Clause 17.
-
- <td width="536">
- <p>Include Clause 17 among the list of Clauses that specify
- the Standard Library.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 8
-
- <td width="118">
- <p>1.5
-
- <td width="85">
- <p>2
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 width="536">
- <p>Mention concepts and concept maps among the list of
- entities.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 9
-
- <td width="118">
- <p align="left">1.6
-
- <td width="85">
- <p align="left">1
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The
- syntax description does not account for lines that wrap.<br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 10
-
- <td width="118">
- <p align="left">1.7
-
- <td width="85">
- <p align="left">3
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The term thread is used before
- defined.
-
- <td width="536">
- <p align="left"><font color=
- "#000000">R</font>eference 1.10 [intro.multithread].
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>US 11
-
- <td width="118">
- <p>1.7
-
- <td width="85">
- <p>&#182; 3 last sent.
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The phrase &#8220;threads of execution&#8221; should be
- accompanied by a reference to [intro.multithread].
-
- <td width="536">
- <p>Insert the recommended reference.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 12
-
- <td width="118">
- <p>1.7
-
- <td width="85">
- <p>&#182; 3 first sent.
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>A memory location is not an object as the sentence
- claims.
-
- <td width="536">
- <p>Clarify that a memory location &#8220;holds&#8221; an
- object rather than that it &#8220;is&#8221; an object.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 13
-
- <td width="118">
- <p>1.7
-
- <td width="85">
- <p>&#182; 3 last sent.
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>It is unclear what is meant by memory locations that are
- "separate": are they distinct? non-overlapping? how much
- "separation" is needed?
-
- <td width="536">
- <p>Provide either a better definition of
- &#8220;separate&#8221; or reword (this and subsequent
- paragraphs) to avoid this term.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 14
-
- <td width="118">
- <p>1.7
-
- <td width="85">
- <p>&#182; 4
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 width="536">
- <p>Delete the &#8220;no matter&#8230;&#8221; phrase, or
- resolve the contradiction in a different way.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 15
-
- <td width="118">
- <p>1.7
-
- <td width="85">
- <p>&#182; 5
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>A struct does not &#8220;contain&#8221; memory
- locations.
-
- <td width="536">
- <p>Reword so that a struct is &#8220;held in&#8221; one or
- more memory locations.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 16
-
- <td width="118">
- <p>1.9
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>
-
- <td width="514">
- <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&#8221;.
-
- <td width="536">
- <p>Remove/replace various occurrences of "sequence" in 1.9.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 8
-
- <td width="118">
- <p align="justify">1.9
-
- <td width="85">
- <p align="justify">5
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Update first sentance as: A conforming
- implementation executing a well-formed program shall
- produce the same observable behavior as one of the possible
- SETS OF execution sequences of the corresponding instance
- of the abstract machine CONFORMING TO THE MEMORY MODEL
- (1.10) with the same program and the same input.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 7
-
- <td width="118">
- <p align="justify">1.9
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Does the term 'sequence' imply all
- reads/writes through volatile memory much be serialized,
- and cannot occur in parallel on truly parallel hardware?
- Allow for multiple concurrent sequences where each sequence
- is constrained by this observable behaviour rule, and
- multiple sequences are constrained by the memory model and
- happens-before relationships defined in 1.10
-
- <td width="536">
- <p align="left">Replace 'sequence' with 'sequences'.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 9
-
- <td width="118">
- <p>1.9<br>
- [intro.execution]
-
- <td width="85">
- <p>16
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>This example use int *v while the other examples seems
- to use notation like int* v.
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 17
-
- <td width="118">
- <p>1.10
-
- <td width="85">
- <p>1
-
- <td width="62">
- <p>Ge
-
- <td width="514">
- <p align="left">This definition of
- &#8220;thread&#8221; 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 width="536">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">Replace first
- sentence of para 1 as follows:
-
- <p align="left" style=
- "margin-top: 0.04in; margin-bottom: 0.04in">Under a hosted
- implementation, a C++ program can have more than one thread
- of execution (a.k.a. thread) running concurrently. Each
- thread is a single flow of control within a program.
- Anything whose address may be determined by a thread,
- including but not limited to static objects, storage
- obtained via new or by any dynamic allocator, directly
- addressable storage obtained through implementation-defined
- functions, and automatic variables, are accessible to all
- threads in the same program.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 9
-
- <td width="118">
- <p align="justify">2.1
-
- <td width="85">
- <p align="justify">2, 4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Replace
- undefined behaviour with conditionally supported behavior.
- Conditional behaviour may be implementation defined,
- although suggest there is a reasonable default in each
- case. For creating a universal-character name, splice text
- to create a universal-character. In the case of a file
- ending without a newline, treat as if the newline was
- implictly added, with an empty line to follow if the last
- character was a back-slash.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK 10
-
- <td width="118">
- <p align="justify">2.1
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">How the compiler treats non-empty sequences
- of whitespace should be left unspecified, rather than
- implementation-defined.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 10
-
- <td width="118">
- <p>2.1 [lex.phases]/5<br>
- and<br>
- 2.2 [lex.charset]/3
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>[defns.multibyte] "the
- extended character set."
-
- <p>[lex.charset]/3 cited below
- implies that there is an extended character set per locale.
-
- <p>[lex.phases]/5 "Each [...]
- universal-character-name [...] is converted to the
- corresponding member of the execution character set"
-
- <p>[lex.charset]/3 "The values
- of the members of the execution character sets are
- implementation defined, and any additional members are
- locale-specific." <br>
-
- <p>Together they seem to imply
- that what is locale-specific is if a value is valid or not
- for the current locale, not the representation of a given
- universal character. <br>
-
- <p>This is not the behaviour of
- at least some compilers I've access to which are allowing
- different codes for the same abstract character in
- different locale. During phase 5, they are using an
- implementation defined char set.
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>11
-
- <td width="118">
- <p align="justify">2.3
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Deprecate the whole of 2.3 and move it to
- appendix D.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>12
-
- <td width="118">
- <p align="justify">2.4, 2.8
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">This undefined
- behaviour in token concatenation is worrying and we believe
- hard to justify. An implementation should either support
- this in a defined way, or issue a diagnosic. Documenting
- existing practice should not break existing
- implementations, although unconditionally requiring a
- diagnostic would lead to more portable programs.
-
- <td width="536">
- <p align="left">Replace undefined behaviour with
- conditionally supported behaviour with implementation
- defined semantics.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 18
-
- <td width="118">
- <p>2.4
-
- <td width="85">
- <p>&#182; 2
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The paragraph begins with an empty line.
-
- <td width="536">
- <p>Delete the empty line.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 11
-
- <td width="118">
- <p>2.4<br>
-&nbsp;[lex.pptokens]
-
- <td width="85">
- <p>3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>There are spurious empty lines.
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 12
-
- <td width="118">
- <p>2.5 [lex.digraph]<br>
-&nbsp;and 2.11<br>
-&nbsp;[lex.key]/2
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The alternative representations are reserved as such
- even in attribute. Is that what is wanted?
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FI 2
-
- <td width="118">
- <p>2.5
-
- <td width="85">
- <p lang="fi-FI" style="margin-top: 0.04in">Table 2
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>Add eq, for spelling out == in order to distinguish it
- from the assignment operator.
-
- <td width="536">
- <p>See eq-keyword.doc, eq-keyword.ppt
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>13
-
- <td width="118">
- <p align="justify">2.9
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>14
-
- <td width="118">
- <p align="justify">2.11
-
- <td width="85">
- <p align="justify">table 3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The table is
- nearly sorted, but not quite. It was sorted in previous
- versions of the standard.
-
- <td width="536">
- <p align="left">Sort the table.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 1
-
- <td width="118">
- <p>2.11
-
- <td width="85">
- <p align="left">Table 3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>Keywords in the table are listed disorderly. Also, a
- part of a frame of the table is not drawn.
-
- <td width="536">
- <p align="left">Sort it in alphabetical order.
- Complete the table frame.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 19
-
- <td width="118">
- <p>2.13.1
-
- <td width="85">
- <p>Table 5,<br>
-&nbsp;rows &#8220;l or<br>
-&nbsp;L&#8221; and &#8220;ll or
- LL&#8221;
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The final entry in the last column (&#8220;unsigned long
- int&#8221;) is incorrect.
-
- <td width="536">
- <p>Replace the incorrect entries by &#8220;unsigned long
- long int&#8221;.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 20
-
- <td width="118">
- <p align="left">2.13.1,<br>
- 2.13.3
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">Long strings of digits in
- literals are a continuing problem in the production and
- maintenance of programs.
-
- <td width="536">
- <p align="left">
- Adopt the 1983 technology of Ada and use underscores to
- separate digits. <font color="#000080" size="2" style="font-size: 11pt"><u><a href=
- "http://www.google.com/url?sa=D&amp;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>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>15
-
- <td width="118">
- <p align="justify">2.13.2
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Inconsistency between definition of a
- multicharacter literal and a wide character literal
- containing multiple c-chars.
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>16
-
- <td width="118">
- <p align="justify">2.13.2
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Not immediately clear why the question mark
- needs escaping. A note would help.
-
- <td width="536">
- <p align="left">Add a note
- explaining that the ? character may need escaping to avoid
- accidentally creating a trigraph.<td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 2
-
- <td width="118">
- <p align="left">2.13.4
-
- <td width="85">
- <p align="left">
- 1<sup>st</sup> <font size="2" style=
- "font-size: 11pt">para, 2<sup>nd</sup> line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">Typo, R"..." should be
- R"[...]"
-
- <td width="536">
- <p>Correct typo.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 3
-
- <td width="118">
- <p align="left">2.13.4
-
- <td width="85">
- <p align="left">2<sup>nd</sup> <font size="2"
- style="font-size: 11pt">para</font><td width="62">
- <p>te
-
- <td width="514">
- <p>We think that the explanation of d-char-sequence is not
- enough.
-
- <td width="536">
- <p align="left">Add
- the following.
-
- <ol>
- <li>
- <p align="left" style=
- "margin-bottom: 0in; widows: 0; orphans: 0">Add the
- following to the explanation of d-char-sequence, more
- easily to understand.
- </ol>
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">...prefix is a
- raw string literal.
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">The
- d-char-sequence is used as delimiter.
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">The terminating
- d-char-sequence of ...
-
- <ol start="2">
- <li>
- <p align="left" style=
- "margin-bottom: 0in; widows: 0; orphans: 0">Add the
- following note that there are square brackets in
- r-char-sequence.
- </ol>
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">[Note:
-
- <p align="left" style=
- "margin-left: 0.83in; margin-bottom: 0in">char foo[] =
- R&#8221;<i>delimiter</i>[[a-z] specifies a range which
- matches any lowercase letter from "a" to
- "z".]<i>delimiter</i>&#8221;;
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in"><br>
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">the expression
- statement behaves exactly the same as
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in"><br>
-
- <p align="left" style=
- "margin-left: 0.83in; margin-bottom: 0in">char foo[]="[a-z]
- specifies a range which matches any lowercase letter from
- \"a\" to \"z\".";
-
- <p align="left" style=
- "text-indent: 0.69in; margin-bottom: 0in">- end note]
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 4
-
- <td width="118">
- <p align="left">2.13.4
-
- <td width="85">
- <p align="left">3<sup>rd</sup> <font size="2"
- style="font-size: 11pt">para, <br>
- 1st line of
- example</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo. Lack of a necessary backslash in the first line of
- the example as follows:
-
- <p align="left">
- <br>
-
- <p align="left">
- const char *p = R"[a
-
- <p align="left">b
-
- <p align="left">
- c]";
-
- <p align="left">
- <br>
-
- <p align="left">
- should be
-
- <p align="left">
- <br>
-
- <p align="left">
- const char *p = R"[a\
-
- <p align="left">b
-
- <p align="left">c]";
-
- <td width="536">
- <p align="left">Correct typo.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 21
-
- <td width="118">
- <p>2.13.4
-
- <td width="85">
- <p>&#182; 3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The paragraph, marked as a Note, contains an embedded
- example not marked as such.
-
- <td width="536">
- <p>Denote the code (and perhaps also its commentary) as an
- Example.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 22
-
- <td width="118">
- <p>2.13.4
-
- <td width="85">
- <p>&#182; 3
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The code does not have the effect predicted by its
- accompanying narrative.
-
- <td width="536">
- <p>Append a backslash to the first line of the code.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 5
-
- <td width="118">
- <p align="left">2.13.4
-
- <td width="85">
- <p align="left">
- 11<sup>th</sup> <font size="2" style=
- "font-size: 11pt">para, Table 7</font>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>It is not explicit how to combine raw-string and
- non-raw-string.
-
- <td width="536">
- <p>Add rules containing raw-string in the table 7.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 13
-
- <td width="118">
- <p>2.13.4<br>
- [lex.string]
-
- <td width="85">
- <p>3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>Shouldn't the assert be
-
- <p>assert(std::strcmp(p, "a\nb\nc") == 0);
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>17
-
- <td width="118">
- <p align="justify">2.13.4
-
- <td width="85">
- <p align="justify">10
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">It would be
- preferred for attempts to modify string literals to be
- diagnosable errors. This is not possible due to the
- deprecated implicit conversion to pointer to
- null-terminated character sequence of non-const characters.
- If this deprecated conversion were remove (see other
- comments) then string literals are always accessed through
- const types, and the compiler can enforce the no
- modification rule. The only exception would be using
- const_cast to cast away constness, but this is already
- covered under the const_cast rules so needs no further
- detail here.
-
- <td width="536">
- <p align="left">(asssuming deprecated conversion to
- non-const array is removed or can be turned off) Strike the
- sentence on undefined behaviour.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>18
-
- <td width="118">
- <p align="justify">2.13.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The addition of
- static_assert (7p4) to the language raises the need to
- concatenate string representations of integral constant
- expressions (typically from a sizeof or alignof expression)
- with narrow string literals to provide an informative error
- message. There is no need to support arbitrary constant
- expressions and especially not floating point values or
- formatting flags. Likewise, the need is purely to support
- static_assert so only narrow string literal support is
- required, although generalizing to other literal types
- would be useful.
-
- <td width="536">
- <p align="left">Define a syntax to support string-ization
- of integral constant expressions in a form eligible for
- string literal concatenation, 2.13.4p6. Suggested syntax:
- I" integral-constant-expression ". There is no raw variant,
- although it could combine with type specifier in the same
- way that the R prefix does, supporting u8I, uI, UI and LI.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>19
-
- <td width="118">
- <p align="justify">2.13.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Refactor
- string-literal grammar as: (note - current Drupal view
- loses formatting which is vital to clearly read the
- grammar) string-literal: string-literal-type-specifierOPT
- string-literal-body string-literal-type-specifier: one of
- u8 u U L string-literal-body: " s-char-sequenceOPT " R
- raw-string
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 14
-
- <td width="118">
- <p>3 [basic]
-
- <td width="85">
- <p>7
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>"In general it is necessary to determine whether a name
- denotes one of these entities before parsing the program
- that contains it."
-
- <td width="536">
- <p>Would prefer
-
- <p>"... before continuing to
- parse the program that contains it."
-
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">or even
-
- <p>"... to complete the parsing
- of the program that contains it."
-
- <p>as some names denotes entities declared after the first
- occurrence.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 15
-
- <td width="118">
- <p>3 [basic]
-
- <td width="85">
- <p>8
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <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 width="536">
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>20
-
- <td width="118">
- <p align="justify">3
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <p align="left">Chapter 3
- ("Basic concepts") provides common definitions used in the
- rest of the document. Now that we have concepts as a
- primary feature, the title of this chapter can be confusing
- as it does not refer to the language feature but to
- definitions used in the document.
-
- <td width="536">
- <p align="left">Change the title to "Basic definitions".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>21
-
- <td width="118">
- <p align="justify">3
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Rename the chapter Basic ???. THe note in
- p2 specifically needs similar rewording
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>22
-
- <td width="118">
- <p align="justify">3
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">References are
- frequently considered variables, but this definition only
- applies to objects.
-
- <td width="536">
- <p align="left">Add "or reference" after both uses of
- "object"
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>23
-
- <td width="118">
- <p align="justify">3.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">
- alias-declarations are not definitions and should be added
- to the list
-
- <td width="536">
- <p align="left">Add alias-declaration after typedef
- declaration.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>24
-
- <td width="118">
- <p align="justify">3.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- fix this wording in-place will be verbose and risk raising
- more confusion than it solves, so suggest a footnote to
- call out the special case
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>25
-
- <td width="118">
- <p align="justify">3.1
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Example is
- misleading as implicitly defined default constructor uses
- default initialization, not value initialization, for
- non-static data members. In the case of std::String this
- makes no difference, but it makes a big difference for
- fundamental types and pointers.
-
- <td width="536">
- <p align="left">Remove the : s() from the illustrated
- default constructor: struct C { std::string s; C() { }
- C(const C&amp; x): s(x.s) { } C&amp; operator=(const C&amp;
- x) { s = x.s; return *this; } ~C() { } };
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>26
-
- <td width="118">
- <p align="justify">3.2
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Either include references in the definition
- of 'variable' (see earlier comment) or add reference to the
- list in this paragraph.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>27
-
- <td width="118">
- <p align="justify">3.2
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">A class type
- must be complete when catching exceptions, even by
- reference or pointer. See 15.3.
-
- <td width="536">
- <p align="left">Add "when used in an exception-handler
- (15.3)" to the list.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 16
-
- <td width="118">
- <p>3.3<br>
- [Declarative<br>
- regions and scopes.]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The scope of function
- parameters is defined, but what is the scope of template
- parameters?
-
- <td width="536">
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>28
-
- <td width="118">
- <p align="justify">3.3.1
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Class templates
- are not classes, so we should include this case.
-
- <td width="536">
- <p align="left">ammend "class" to "class or class template"
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK
-
- <p>29
-
- <td width="118">
- <p align="justify">3.3.10
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 17
-
- <td width="118">
- <p>3.5 [Program<br>
-&nbsp;and linkage]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>This section does not specify
- whether concept names have linkage.
-
- <p>Do they or not? If concept
- names do not have linkage, then a note is appropriate, and
- that would be a bit surprising and curious. What is the
- rationale?
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 30
-
- <td width="118">
- <p align="justify">3.5
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Add a note to clarify that concepts don't
- need linkage.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 31
-
- <td width="118">
- <p align="justify">3.5
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">What is the linkage of names declared
- inside a namespace, in turn declared inside an anonymous
- namespace? It is not clear why such a namespace has no
- linkage, and there is no language suggesting its memmbers
- should lose linkage with it, which we assume is the
- intended consequence.
-
- <td width="536">
- <p align="left">Clarify rules for namespaces inside nested
- namespaces, or remove the restriction.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 23
-
- <td width="118">
- <p align="left">3.5
-
- <td width="85">
- <p align="left">6
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">Bad
- paragraph break.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 18
-
- <td width="118">
- <p>3.5<br>
- [basic.link]
-
- <td width="85">
- <p>6
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The paragraph number is not aligned with the text.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 19
-
- <td width="118">
- <p>3.6 [Start<br>
-&nbsp;and<br>
-&nbsp;termination]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>This section completely
- ignores the real world and practical case of dynamically
- linked or loaded libraries. In current computing
- environments, they are ubiquitous and they cannot be
- ignored in
-
- <p>practical C++ programs. The
- Standard
-
- <p>should address this aspect.
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 32
-
- <td width="118">
- <p align="justify">3.6.1
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Do we really want to allow: constexpr int
- main() { return 0; } as a valid program?
-
- <td width="536">
- <p align="left">Add constexpr to
- the list of ill-formed things to annotate main <br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 24
-
- <td width="118">
- <p align="left">3.6.1
-
- <td width="85">
- <p align="left">4
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">std::quick_exit is not
- referenced.
-
- <td width="536">
- <p align="left">
- Reference std::quick_exit as well as std::exit in saying
- that automatic objects are not destroyed. It should
- <font size="2" style="font-size: 11pt"><strong>not</strong>
- do so in saying that calling std::quick_exit is undefined
- from within destructors for static or thread duration
- objects.</font>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>US 25
-
- <td width="118">
- <p>3.6.3
-
- <td width="85">
- <p>&#182; 2 last sent.
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The parenthesized phrase, introduced via
- &#8220;i.e.&#8221; is in the nature of an example.
-
- <td width="536">
- <p>Change &#8220;i.e.&#8221; to &#8220;e.g.&#8221;
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 6
-
- <td width="118">
- <p align="left">3.7.4.1
-
- <td width="85">
- <p align="left">4<sup>th</sup> <font size="2"
- style="font-size: 11pt">para,<br>
-&nbsp;4<sup>th</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo.
-
- <p align="left">
- Lack of a comma right after &#8220;(3.7.2)&#8221; in the
- sentence while there are commas after any other recitations
- like &#8220;(3.7.1)&#8221;. It is just a unification
- matter.
-
- <p align="left">
- <br>
-
- <p align="left">[
- Note: in particular, a global allocation function is not
- called to allocate storage for objects with static storage
- duration (3.7.1), for objects or references with thread
- storage duration (3.7.2) for objects of type std::type_info
- (5.2.8), or for the copy of an object thrown by a throw
- expression (15.1). -end note ]
-
- <p align="left">
- <br>
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">should be
-
- <p align="left">
- <br>
-
- <p align="left">[
- Note: in particular, a global allocation function is not
- called to allocate storage for objects with static storage
- duration (3.7.1), for objects or references with thread
- storage duration (3.7.2), for objects of type
- std::type_info (5.2.8), or for the copy of an object thrown
- by a throw expression (15.1). -end note ]
-
- <p align="left"><br>
-
- <td width="536">
- <p>Correct typo.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>DE-3
-
- <td width="118">
- <p>3.7.4.3
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">DE-3 It is
- unclear whether the following code has well-defined
- behavior; none of the bullets in the second paragraph seem
- to apply.
-
- <p align="left" style=
- "margin-top: 0.04in; margin-bottom: 0.04in">int&amp; i =
- *new int(5);
-
- <p align="left">delete &amp;i;
-
- <td width="536">
- <p>Clarify that &amp;i is considered a safely-derived
- pointer value.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 26
-
- <td width="118">
- <p align="left">3.8
-
- <td width="85">
- <p align="left">1 and 5
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">Use of object fields during
- destruction is excessively and erroneously constrained.
-
- <td width="536">
- <p align="left">See
- the attached document "Issues with the C++ Standard" under
- Chapter 3 "Use of objects, especially from other threads,
- during destruction".
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>US 27
-
- <td width="118">
- <p>3.9
-
- <td width="85">
- <p>&#182; 9 first sent.
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>There is a superfluous/extraneous &#8220;and&#8221;.
-
- <td width="536">
- <p>Delete &#8220;and&#8221; from the phrase &#8220;and
- std::nullptr_t&#8221;.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 20
-
- <td width="118">
- <p>3.9 [Types]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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
- both unfortunate and confusing, given past practice of the
- committee to maintain greater compatibility with C99. We
- strongly suggest that the phrase 'effective type' not be
- used in such an incompatible way.
-
- <td width="536">
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 7
-
- <td width="118">
- <p align="left">3.9.2
-
- <td width="85">
- <p align="left">3<sup>rd</sup> <font size="2"
- style="font-size: 11pt">para,<br>
-&nbsp;13<sup>th</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>over-aligned type was added as new notion. So it is
- preferable to add the link after that.
-
- <td width="536">
- <p align="left">Add
- (3.11) after over-aligned type as the link.
-
- <p align="left">[ Note: pointers to
- over-aligned types<font color="#008000">(3.11)</font>
- <font size="2" style="font-size: 11pt">have no special
- representation, but their range of valid values is
- restricted by the extended alignment requirement. This
- International Standard specifies only two ways of obtaining
- such a pointer: taking the address of a valid object with
- an over-aligned type<font color="#008000">(3.11)</font>,
- and using one of the runtime pointer alignment functions.
- An implementation may provide other means of obtaining a
- valid pointer value for an over-aligned type<font color=
- "#008000">(3.11)</font>.&#8212;end note ]</font>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 28
-
- <td width="118">
- <p>3.9.3
-
- <td width="85">
- <p>&#182; 5 first sent.
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">The closing
- braces of the first two sets are preceded by extraneous
- space.
-
- <td width="536">
- <p>Delete the extra spaces.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>DE 4
-
- <td width="118">
- <p>4.2
-
- <td width="85">
- <p>p2
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 width="536">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">Consider
- applying the proposed resolution presented in core issue
- 693 in WG21 document N2714 &#8220;C++ Standard Core
- Language Active Issues, Revision 58&#8220;, available at
-
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2714.html
- ; or remove only the conversions to "pointer to char16_t",
- "pointer to char32_t" in 4.2 paragraph 2 and 15.1 paragraph
- 3.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>CH 1
-
- <td width="118">
- <p>4.9 and 5.2.9
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>With respect to the target type, pointer to members
- should behave like normal pointers (least surprise
- principle).
-
- <td width="536">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">The standard
- should allow implicit conversions from ``pointer to member
- of <tt>T</tt> of type <i>cv</i> <tt>D</tt>'' to ``pointer
- to member of <tt>T</tt> of type <i>cv</i> B'', where D is
- of class type and B is a public base of D, It should allow
- explicit conversion the other way around.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>DE-5
-
- <td width="118">
- <p>4.11,<br>
-&nbsp;5.3.1,<br>
-&nbsp;5.5
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>DE-5 Ref-qualification has not been integrated with
- pointer-to-members.
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 33
-
- <td width="118">
- <p align="justify">4.13
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 34
-
- <td width="118">
- <p align="justify">4.13
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">6th bullet, "the
- rank of char" - first letter should be capitalised for
- consistency with the other bullets
-
- <td width="536">
- <p align="left">The rank of char
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 36
-
- <td width="118">
- <p align="justify">5.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Delete this paragraph.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 37
-
- <td width="118">
- <p align="justify">5.1
-
- <td width="85">
- <p align="justify">11
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Member function
- templates are not member functions, so should also be
- listed in the 3rd bullet
-
- <td width="536">
- <p align="left">Add member function templates to the 3rd
- bullet
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 38
-
- <td width="118">
- <p align="justify">5.1
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">this might be useful in a few more places
- than it is permitted, specifically in decltype expressions
- within a class. Two examples that would be ill-formed at
- class scope without changes: typedef decltype( *this )
- this_type; decltype( [this]{ return this-&gt;memfun(); } )
- my_lambda;
-
- <td width="536">
- <p align="left">... words to follow ...
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 8
-
- <td width="118">
- <p align="left">5.1
-
- <td width="85">
- <p align="left">7<sup>th</sup> <font size="2"
- style="font-size: 11pt">para, Syntax rules</font>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p align="left">In
- the current syntax definition, a scope operator(::) cannot
- be applied to decltype, but it should be. It would be
- useful in the case to obtain member type(nested-type) from
- an instance as follows:
-
- <p align="left">
- vector&lt;int&gt; v;
-
- <p align="left">decltype(v)::value_type i = 0;
- // int i = 0;
-
- <td width="536">
- <p align="left">Add
- &#8220;decltype ( expression ) :: &#8220; to
- nested-name-specifier syntax like below.
-
- <p align="left">
- <br>
-
- <p align="left">
- nested-name-specifier:
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">type-name ::
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">namespace-name ::
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">
- nested-name-specifier identifier ::
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">
- nested-name-specifier templateopt simple-template-id ::
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">
- nested-name-specifieropt concept-id ::
-
- <p align="left" style=
- "text-indent: 0.13in; margin-bottom: 0in">decltype (
- expression ) ::
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 9
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p align="left">It
- would be preferable that &#8220;&amp;&amp;&#8221; could be
- specified in a lambda expression to declare move capture.
-
- <p align="left">
- <br>
-
- <p align="left">
- Here is an example from N2709.
-
- <p align="left">
- <br>
-
- <p align="left">
- template&lt;typename F&gt;
-
- <p align="left">
- std::unique_future&lt;typename
- std::result_of&lt;F()&gt;::type&gt; spawn_task(F f){
-
- <p align="left">
- typedef typename std::result_of&lt;F()&gt;::type
- result_type;
-
- <p align="left">
- <br>
-
- <p align="left">
- struct local_task {
-
- <p align="left">
- std::promise&lt;result_type&gt; promise;
-
- <p align="left">F
- func;
-
- <p align="left">
- local_task(local_task const&amp; other)=delete;
-
- <p align="left">
- local_task(F func_):
-
- <p align="left">
- func(func_)
-
- <p align="left">{}
-
- <p align="left">
- <br>
-
- <p align="left">
- local_task(local_task&amp;&amp; other):
-
- <p align="left">
- promise(std::move(other.promise)),
-
- <p align="left">
- f(std::move(other.f))
-
- <p align="left">{}
-
- <p align="left">
- <br>
-
- <p align="left">
- void operator() {
-
- <p align="left">try
-
- <p align="left">{
-
- <p align="left">
- promise.set_value(f());
-
- <p align="left">}
-
- <p align="left">
- catch(...)
-
- <p align="left">{
-
- <p align="left">
- promise.set_exception(std::current_exception());
-
- <p align="left">}
-
- <p align="left">}
-
- <p align="left">};
-
- <p align="left">
- <br>
-
- <p align="left">
- local_task task(std::move(f));
-
- <p align="left">
- <br>
-
- <p align="left">
- std::unique_future&lt;result_type&gt;
- res(task.promise.get_future());
-
- <p align="left">
- std::thread(std::move(task));
-
- <p align="left">
- return res;
-
- <p align="left">}
-
- <p align="left">
- <br>
-
- <p align="left">
- This can be rewritten simply as follows if move capture can
- be used in a lambda expression.
-
- <p align="left">
- <br>
-
- <p align="left">
- template&lt;typename F&gt;
-
- <p align="left">
- std::unique_future&lt;typename
- std::result_of&lt;F()&gt;::type&gt; spawn_task(F f){
-
- <p align="left">
- typedef typename std::result_of&lt;F()&gt;::type
- result_type;
-
- <p align="left">
- <br>
-
- <p align="left">
- std::promise&lt;result_type&gt; promise;
-
- <p align="left">
- std::unique_future&lt;result_type&gt;
- res(promise.get_future());
-
- <p align="left">
- std::thread([&amp;&amp;promise, &amp;&amp;f]() {
-
- <p align="left">try
-
- <p align="left">{
-
- <p align="left">
- promise.set_value(f());
-
- <p align="left">}
-
- <p align="left">
- catch(...)
-
- <p align="left">{
-
- <p align="left">
- promise.set_exception(std::current_exception());
-
- <p align="left">}
-
- <p align="left">});
-
- <p align="left">
- return res;
-
- <p align="left">}
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add
- move capture in a lambda expression.
-
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 10
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p align="left">In
- the current syntax definition, a returned type of a
- function object cannot be obtained by using result_of from
- an unnamed function object generated by a lambda expression
- because it doesn&#8217;t have result type.
-
- <p align="left">
- <br>
-
- <p align="left">
- template &lt;class F&gt;
-
- <p align="left">
- void foo(F f)
-
- <p align="left">{
-
- <p align="left">
- typedef std::result_of&lt;F()&gt;::type result; // error
-
- <p align="left">}
-
- <p align="left">
- foo([]{});
-
- <p align="left">
- <br>
-
- <p align="left" style=
- "margin-left: 0in; margin-bottom: 0in">If
- &#8220;Callable&#8221; or &#8220;Predicate&#8221; concept
- is specified, a returned type can be obtained from a
- function object without result_type. But it is preferable
- to be able to obtain it with template.
-
- <td width="536">
- <p align="left">Add
- result_type to the syntax of an unnamed function object
- generated by a lambda expression.
-
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 29
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The
- standard does not state whether or not direct recursion of
- lambdas is possible.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 30
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">
- <font color="#000000">The standard does not clarify the
- meaning of</font> <font size="2" style=
- "font-size: 11pt"><code><font color=
- "#000000">this</font></code> <font color="#000000">in
- lambdas. Does it mean this lambda, or this class within
- which the lambda is nested?</font></font>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 31
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">
- <font color="#000000">The current wording does not specify
- how context capturing and name resolution</font>
- <font size="2" style="font-size: 11pt">take place when the
- inner lambda refers to the outer lambda's locals variables
- and parameters.</font>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 45
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">para 2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Lambda is a language feature with an
- apparent dependency on &lt;functional&gt;. This increases
- dependency of language on library, and is inconsistent with
- the definition of freestanding in 17.6.2.4.
-
- <td width="536">
- <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
- function object"; and after "context.", insert " A closure
- object may be used without any need for
- &lt;functional&gt;." This makes clear what may already be
- implied, namely that lambdas can be used in freestanding
- implementations and don't increase dependency of language
- on library. (Marked as technical comment anyway because
- this clarity is technically important).
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US
- 32
-
- <p align="left"><br>
-
- <td width="118">
- <p align="left">5.1.1
-
- <td width="85">
- <p align="left">3
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The
- final italic "this" in the paragraph should be a teletype
- "this".
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 39
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">11
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Add "F has an implicitly-declared
- destructor".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 40
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">12
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">If one or more
- names in the effective capture set are preceded by &amp;,
- the effect of invoking a closure object or a copy after the
- innermost block scope of the context of the lambda
- expression has been exited is undefined. That is too
- restrictive. The behaviour should be undefined iff the
- lifetime of any of the variables referenced has ended. This
- should be safe and legal; currently it has undefined
- behaviour: int i; reference_closure&lt;void ()&gt; f; if
- (blah) { f = [&amp;i]() { }; } if (f) f();
-
- <td width="536">
- <p align="left">If one or more names in the effective
- capture set are preceded by &amp;, the effect of invoking a
- closure object or a copy after the lifetime of any of the
- variables referenced has ended is undefined.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 41
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">12
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">For argument dependant lookup (3.4.2) the
- associated namespaces for a class include its bases, and
- associated namespaces of its bases. Requiring the result of
- a lambda expression *to dervide from*
- std::reference_closure means that ADL will look in
- namespace std when the lambda capture is entirely by
- reference, which might have surprising results. Also,
- relying on the idea of implicitly slicing objects is
- uncomfortable.
-
- <td width="536">
- <p align="left">Replace inheritance with implicit
- conversion.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 42
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <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),
- where R is the return type and P is the parameter-type-list
- of the lambda expression." Additionally it might be good to
- (a) allow conversion to function reference (b) allow extern
- "C" function pointer types
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 43
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">12
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The note spells
- out the intent that objects from lambda-expressions with an
- effective capture list of references should be implemented
- as a pair of pointers. However, nothing in the rest of
- 5.1.1 lifts the requirement of to declare a reference
- member for each captured name, and a non-normative note is
- not enough to relax that.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">... provvide exceptions in the right places
- ...
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 44
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">12
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">There is a
- strong similarity between a [&amp;]{} lambda capturing a
- stack frame, and a [this]{} lambda binding a member
- function to a class instance. The reference_closure
- requirement should be extended to the second case, although
- we need some syntax to create such an object that is
- distinct from the existing pointer-to-member syntax. This
- would be a cleaner alternative to the new std::mem_fn
- library component.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Extend reference_closure requirement to
- cover [this] lambdas. Consider a simple syntax for creating
- such bound expressions.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 46
-
- <td width="118">
- <p align="justify">5.1.1
-
- <td width="85">
- <p align="justify">para 12
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The requirement that a lambda meeting
- appropriate conditions be an object derived from
- reference_closure makes lambda the language feature
- dependent on &lt;functional&gt;, which increases dependency
- of the language on the library and bloats the definition of
- freestanding C++.
-
- <td width="536">
- <p align="left">Replace text "is
- publicly derived from" with "shall be implemented in a
- manner indistinguishable from". This places an ABI
- constraint on reference closures such that compiler and
- library implementer have to do compatible things. But it
- cuts the dependency of lambda syntax on &lt;functional&gt;.
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-6
-
- <td width="118">
- <p>5.1.1, 20.7.18
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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
- appears in a constrained context and the return type or a
- parameter type for the lambda depend on a template
- parameter (see 14.10), such a use is ill-formed.
-
- <td width="536">
- <p>In 20.7.18, for the class template
- std::reference_closure, require Returnable for R and
- VariableType for each of the ArgTypes.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-7
-
- <td width="118">
- <p>5.1.1
-
- <td width="85">
- <p>p10
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>DE-7 The note at the end of paragraph 10 appears to be
- garbled.
-
- <td width="536">
- <p>Remove "or references" in the note.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-8
-
- <td width="118">
- <p>5.1.1
-
- <td width="85">
- <p>p10
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>DE-8 The construction of the function call operator
- signature is missing specifications for the ref-qualifier
- and the attribute-specifier.
-
- <td width="536">
- <p>Add bullets that say that the ref-qualifier and the
- attribute-specifier are absent.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>US 33
-
- <td width="118">
- <p>5.1.1
-
- <td width="85">
- <p>11
-
- <td width="62">
- <p>Ge
-
- <td width="514">
- <p>There is no definition of &#8220;move constructor&#8221;
- or &#8220;move operation&#8221;
-
- <td width="536">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">Since this is
- the first place the terms are used, a definition should
- either be added here, or a cross reference to one.
-
- <p>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>DE-9
-
- <td width="118">
- <p>5.1.1
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>DE-9 There is not a single example of a
- lambda-expression in the standard. See also core issue 720
- in WG21 document N2791 "C++ Standard Core Language Active
- Issues, Revision 59", available at
- http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2791.html
- .
-
- <td width="536">
- <p>Add a few well-chosen examples.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 52
-
- <td width="118">
- <p align="justify">5.2
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">This paragraph seens out of place,
- assignment expressions are covered in 5.17
-
- <td width="536">
- <p align="left">Move p3 to subsection 5.17
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 53
-
- <td width="118">
- <p align="justify">5.2.1
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The definition in p1 makes no allowance for
- overloaded operator[] that treats the expression as a
- simple function call, and does not support the
- interchangability of arguments. Howver p2 relies on this
- definition when describing the use of brace-init-lists
- inside [].
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 59
-
- <td width="118">
- <p align="justify">5.2.2
-
- <td width="85">
- <p align="justify">7
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">When there is no parameter for a given
- argument, the argument is passed in such a way that the
- receiving function can obtain the value of the argument by
- invoking va_arg. That shouldn't apply to parameter packs.
- template &lt;class ... Types&gt; void f(Types ... pack);
- f(1, 2, 3);
-
- <td width="536">
- <p align="left">Clarify that this sentence only applies
- where the ellipsis is used.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 60
-
- <td width="118">
- <p align="justify">5.2.5
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Add "and" before vq
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 61
-
- <td width="118">
- <p align="justify">5.2.5
-
- <td width="85">
- <p align="justify">p1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Clarify in footnote 60 that this will not
- happen if the whole expression is an unevaluated operand.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 62
-
- <td width="118">
- <p align="justify">5.2.5
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Replace 'not an lvalue' with 'is an
- rvalue'.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>DE-10
-
- <td width="118">
- <p>5.2.5
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 width="536">
- <p>Adjust the presentation of the types involved as
- appropriate.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 63
-
- <td width="118">
- <p align="justify">5.2.6
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Paragraph 2 is missing its number.
-
- <td width="536">
- <p align="left">Add one.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 64
-
- <td width="118">
- <p align="justify">5.2.7
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">A new name R is introduced for use in
- paragraphs 3 and 4. But R is the same as T.
-
- <td width="536">
- <p align="left">Replace R with T
- and replace "the required result type (which, for
- convenience, will be called R in this description)" with
- "T".
-
- <p align="left"><br>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 65
-
- <td width="118">
- <p align="justify">5.2.7
-
- <td width="85">
- <p align="justify">8
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- of an rvalue references produces a rvalue. (Can an lvalue
- refer to anything anyway?)
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Replace "an lvalue referring to" with
- "reference", twice.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 66
-
- <td width="118">
- <p align="justify">5.2.8
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">an implementation-defined class publicly
- derived from std :: type_info
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 67
-
- <td width="118">
- <p align="justify">5.2.9
-
- <td width="85">
- <p align="justify">1, 2, 3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Paragraph 1 specifies when the result of
- static_cast is an lvalue; repeating it is unnecessary.
-
- <td width="536">
- <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
- an rvalue.". In para 3, delete "The result is an lvalue if
- T is an lvalue reference type (8.3.2), and an rvalue
- otherwise."
-
- <p align="left"><br>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 54
-
- <td width="118">
- <p align="justify">5.2.10
-
- <td width="85">
- <p align="justify">3, 6
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">In para 6,
- replace unspecified with implementation-defined.
- Alternatively, delete paragraph 3, since individual cases
- are labelled appropriately.
-
- <p align="left"><br>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 55
-
- <td width="118">
- <p align="justify">5.2.10
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Strike the note
- about definition of casting away constness, preserve the
- cross-reference. The second sentance on reintrepret_cast to
- its own type should move out of the note into the normative
- text.
-
- <p align="left"><br>
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 56
-
- <td width="118">
- <p align="justify">5.2.10
-
- <td width="85">
- <p align="justify">5
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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
- good to call attention to the changed semantics with a
- note.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 57
-
- <td width="118">
- <p align="justify">5.2.10
-
- <td width="85">
- <p align="justify">8
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 58
-
- <td width="118">
- <p align="justify">5.2.11
-
- <td width="85">
- <p align="justify">9
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- &#8220;pointer to T1&#8221; to the type &#8220;pointer to
- T2&#8221; casts away constness. That doesn't cover rvalue
- references.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Replace lvalue with "lvalue or rvalue"
- twice.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US
- 34
-
- <p align="left"><br>
-
- <td width="118">
- <p align="left">5.3
-
- <td width="85">
- <p align="left">1
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The list of unary operator
- should be in teletype font.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 68
-
- <td width="118">
- <p align="justify">5.3.1
-
- <td width="85">
- <p align="justify">2-9
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">All the unary operands other than * return
- rvalues - but this is not stated.
-
- <td width="536">
- <p align="left">Add a paragraph
- 1a "The following unary operators all produce results that
- are rvalues."
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 69
-
- <td width="118">
- <p align="justify">5.3.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- templates? Launch threads with expressions found via
- concept map lookup? Hit problems creating std::function
- objects? Does the problem only occur if we use qualified
- lookup to explicitly name a concept map? Does it only kick
- in if we rely on the implicit function implementation
- provided by a concept_map, so some types will work and
- others won't for the same algorithm?!
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">... unknown ...
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 70
-
- <td width="118">
- <p align="justify">5.3.3
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The sizeof
- operator shall not be applied to ... an enumeration type
- before all its enumerators have been declared We should
- allow enum E : int; sizeof(E).
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Change "an enumeration type" to "an
- enumeration type whose underlying type is not fixed".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 71
-
- <td width="118">
- <p align="justify">5.3.4
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The type of an allocated object wih the
- type specifier auto is determined by the rules of copy
- initialization, but the initialization applied will be
- direct initialization. This would affect classes which
- declare their copy constructor explicit, for instance. For
- consistency, use the same form of initiailization for the
- deduction as the new expression.
-
- <td width="536">
- <p align="left">Replace T x = e; with T x(e);
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 72
-
- <td width="118">
- <p align="justify">5.3.4
-
- <td width="85">
- <p align="justify">7
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The library
- headers have been carefully structured to limit the
- dependencies between core language and specific headers.
- The exception thrown should be catchable by a handler for a
- type lised in &lt;exception&gt; header in cluase 18. This
- might be accomplished by moving length_error into the
- &lt;exception&gt; header, but its dependency on logic_error
- with its std::string constructors suggest this is not a
- good idea. Prefer to pick an existing exception instead.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Throw std::bad_alloc instead of
- std::length_error.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 73
-
- <td width="118">
- <p align="justify">5.3.4
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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
- the single word 'literal' before class type will clarify
- this.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add 'literal' before 'class type'
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 74
-
- <td width="118">
- <p align="justify">5.3.4
-
- <td width="85">
- <p align="justify">8
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">operators, like
- constructors and destructors, do not have names. However,
- in certain circumstances they can be treated as if they had
- a name, but usually the stanadard is very clear not to
- actually describe their name as a distinct property.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Change "the allocation function&#8217;s
- name is operator new" to "the allocation function is named
- operator new" and similarly for operator delete.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 35
-
- <td width="118">
- <p align="justify">5.3.4
-
- <td width="85">
- <p align="justify">9
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Missing period in middle of paragraph
- between "in the scope of T" and "If this lookup fails"
-
- <td width="536">
- <p align="left">Add a period
- between "in the scope of T" and "If this lookup fails"
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 75
-
- <td width="118">
- <p align="justify">5.3.5
-
- <td width="85">
- <p align="justify">8
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Swap order of the note and normative text.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 21
-
- <td width="118">
- <p>5.3.6<br>
- [Alignof
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>Should not the type of alignof-expression be of type
- std::max_align_t?
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 35
-
- <td width="118">
- <p align="left">5.8
-
- <td width="85">
- <p align="left">2 and 3
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">
- There is curious spacing in the expressions "E1 &lt;&lt;E2"
- and "E1 &gt;&gt;E2". This is a formatting change since
- previous versions of the Standard.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 47
-
- <td width="118">
- <p align="justify">5.14 / 5.15
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Why are the
- descriptions of order of evaluation of expressions and side
- effects different between &amp;&amp; and || operators. The
- interaction with the memory model should be identical, so
- identical words should be used to avoid accidential
- inconsistencies in interpretation.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Pick one form of wording as 'the best' and
- apply it in both places.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 48
-
- <td width="118">
- <p align="justify">5.18
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The defining
- feature of the comma operator is the guaranteed sequencing
- of two expressions. This guarantee is lost when presented
- with an overloaded operator, and this change is subtle
- enough to call attention to it.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add: [Note: There are no guarantees on the
- order of value computation for an overloaded comma operator
- -- end note]
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 49
-
- <td width="118">
- <p align="justify">5.19
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <p align="left">Add an escape
- clause to allow the implementation to reject excessively
- deep nesting of constexpr function evaluations. (This can
- possibly be a note, since it is arguable that this point is
- handled by the general rule on resource limits in 1.4/2. A
- sufficiently smart compiler could use tail recursion above,
- meaning that it would never run out of memory given this
- program though.)
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 50
-
- <td width="118">
- <p align="justify">5.19
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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 width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 51
-
- <td width="118">
- <p align="justify">5.19
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">typeid
- expressions can never be constant, whether or not the
- operand is a polymorphic class type. The result of the
- expression is a reference, and the typeinfo class that the
- reference refers to is polymorphic, with a virtual
- destructor - it can never be a literal type.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Strike the words "whose operand is of a
- polymorphic class type" on the bullet for typeid
- expressions.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 76
-
- <td width="118">
- <p align="justify">6.3
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Do we really need two different terms that
- say the same thing?
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 22
-
- <td width="118">
- <p>6.4.2<br>
-&nbsp;[The switch<br>
-&nbsp;statement]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The constant-expression in
-
- <p>
-
- <p>case constant-expression
-
- <p>
-
- <p>should be allowed to be of
- any constant expression of literal type for which a
- constexpr comparison operator (operator&lt; and operator==)
- is in scope. Now that constant expressions of other
- integral types are evaluated at compile time, the
- restriction for case-labels is at best artificial.
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 77
-
- <td width="118">
- <p align="justify">6.5
-
- <td width="85">
- <p align="justify">5
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The terms i/o
- operation, synchronize operation and atomic operation have
- very specific meanings within the standard. The paragraph
- would be much easier to understand with the terms
- crossreferenced.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Profide a cross-reference for the terms:
- i/o operation, synchronize operation and atomic operation
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 11
-
- <td width="118">
- <p align="left">6.5.4
-
- <td width="85">
- <p align="left">1<sup>st</sup> <font size="2"
- style="font-size: 11pt">para,<br>
-&nbsp;5<sup>th</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>There is no _RangeT type in the equivalent code to
- &#8220;range-base for&#8221; statement. It existed in
- N2049.
-
- <td width="536">
- <p align="left">Add
- a typedef for _RangeT in the example as follows:
-
- <p align="left">
- <br>
-
- <p align="left">{
-
- <p align="left">
- &nbsp;&nbsp;&nbsp; <u>typedef decltype( expression )
- _RangeT;</u>
-
- <p align="left">
- &nbsp;&nbsp;&nbsp; auto &amp;&amp; __range = ( expression
- );
-
- <p align="left">
- &nbsp;&nbsp;&nbsp; for ( auto __begin =
- std::Range&lt;_RangeT&gt;:: begin(__range),
-
- <p align="left">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- &nbsp; __end = std::Range&lt;_RangeT&gt;:: end(__range);
-
- <p align="left">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- __begin != __end;
-
- <p align="left">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- ++__begin )
-
- <p align="left">
- &nbsp;&nbsp;&nbsp; {
-
- <p align="left">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- for-range-declaration = *__begin;
-
- <p align="left">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statement
-
- <p align="left">
- &nbsp;&nbsp;&nbsp; }
-
- <p align="left">}
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 78
-
- <td width="118">
- <p align="justify">6.5.4
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Including the header
- &lt;iterator_concepts&gt; is far too unwieldy to enable an
- important and (expected to be) frequently used syntax.
-
- <td width="536">
- <p align="left">Merge
- &lt;iterator_concepts&gt; into &lt;concepts&gt; and change
- 6.5.4p2 to refer to &lt;concepts&gt;, or make the Range
- concept fundamental along with the other support concepts
- in 14.9.4 and strike any reference to including a header.
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 79
-
- <td width="118">
- <p align="justify">6.5.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The definition
- of for (for-range-declaration : expression) statement is
- expanded in terms which require a Range concept, and the
- program is ill-formed if &lt;iterator_concepts&gt; isn't
- included. For users, iterating through old-fashioned
- arrays, this is a sledge-hammer to crack a nut and compares
- poorly with other languages. It's also not possible to
- implement this without adversely impacting the freestanding
- definition in 17.6.2.4.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">When expression is an array a of length N
- whose length is known at compile time, expand range-for as
- 'for (... p=a, p!=a+N, p++) ...' without requiring the
- Range concept or &lt;iterator_concepts&gt;. Also, when
- expression is an initializer_list, expand range-for
- similarly without requiring &lt;iterator_concepts&gt;.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-11
-
- <td width="118">
- <p>6.9
-
- <td width="85">
- <p>p1
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">DE-11 A
- sentence in paragraph 1 reads: "Outside of a constrained
- context, the late-checked block has no effect." This, at
- face value, specifies that the <em>compound-statement</em>
- of such a late-checked block is never executed, which
- appears to be unintended.
-
- <p>
-
- <td width="536">
- <p>State that such a late-checked block has the same
- meaning as if the late_check keyword were absent.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 80
-
- <td width="118">
- <p align="justify">7
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Many of the
- sections and major subsections open with a sentence
- summarising the content. I'm not sure this is necessary;
- this isn't a tutorial. The problem with these summaries is
- that because they omit much of the detail, they tend to be
- inaccurate. This may not matter, but I feel the document
- would be improved by omitting them. There's a prime example
- here: "Declarations specify how names are to be
- interpreted." Not true for static_assert, an asm
- declaration nor an anonymous bit field.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Strike the first sentence.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 81
-
- <td width="118">
- <p align="justify">7
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- static_assert. It would be useful to add a note mentioning
- this.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add a note: Multiple adjacent string
- literals may be used instead of a single /string-literal/;
- see [lex.phases].
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 82
-
- <td width="118">
- <p align="justify">7
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Paragraph 2
- talks about declarations that can have nested declarations
- within them. It doesn't mention scoped enumerations - but
- according to 7.2/11, "Each scoped enumerator is declared in
- the scope of the enumeration."
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add "scoped enumeration" to the list in the
- second sentence.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 83
-
- <td width="118">
- <p align="justify">7.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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.
- But many sequences of decl-specifiers cannot possibly be a
- type name - eg the sequence "friend int", or "typedef int".
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Not sure. I understand the rule, just not
- how to say it.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 84
-
- <td width="118">
- <p align="justify">7.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The grammar
- includes alignment-specifier as a production for
- decl-specifier, but there is no production for
- alignment-specifier. I suspect this is a holdover from
- before alignment was handled as an attribute.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Delete the production (including the
- duplicate in A6)
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FI 3
-
- <td width="118">
- <p>7.1
-
- <td width="85">
- <p>[dcl.<br>
- spec.<br>
- auto]
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">While
- it&#8217;s considered too late for this standard revision,
- consider loosening the restrictions for auto specifier and
- making it more a mirror of a deduced template function
- parameter.
-
- <p>
-
- <td width="536">
- <p>See restricted-auto.ppt
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 85
-
- <td width="118">
- <p align="justify">7.1.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">... the
- init-declarator-list of the declaration shall not be empty
- (except for global anonymous unions, which shall be
- declared static). Global here means "declared at namespace
- scope". (cf 9.5/3 "Anonymous unions declared in a named
- namespace or in the global namespace shall be declared
- static.").
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Replace "global" with "namespace scope".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 86
-
- <td width="118">
- <p align="justify">7.1.1
-
- <td width="85">
- <p align="justify">2,3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- deprecated in this version of the standard, freeing the
- reserved name up for use in a future standard, much like
- auto has been re-used this time around for being similarly
- useless.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Deprecate current usage of the register
- keyword.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 87
-
- <td width="118">
- <p align="justify">7.1.1
-
- <td width="85">
- <p align="justify">1, 4, 5
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- combination of keywords should be banned rather than
- required. This would also eliminate the one of two
- exceptions documented in 7.1.1p1.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Drop requirement to combine static keyword
- with thread_local at block-scope inside a function
- definition.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 36
-
- <td width="118">
- <p align="left">7.1.1
-
- <td width="85">
- <p align="left">4
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The
- permission to use thread_local static data members is
- missing.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add the static members as a
- permitted use.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 23
-
- <td width="118">
- <p>7.1.5<br>
- [constexpr]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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
- be required. For example, the following should be allowed
-
- <p>
-
- <p>template&lt;typename T, int
- N&gt;
-
- <p>int size(const T(&amp;)[N]) {
- return N; }
-
- <p>
-
- <p>int a[] = { 41,42,43,44 };
-
- <p>enum { v = size(a) };
-
- <p style="margin-top: 0.04in"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 12
-
- <td width="118">
- <p align="left">7.1.5
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">It should be
- allowed to define constexpr recursively.
-
- <p align="left">
- There is an explanation in N2235, Generalized Constant
- Expressions&#8212;Revision 5, as follows.
-
- <p align="left">
- <br>
-
- <p align="left" style=
- "margin-left: 0.39in; margin-bottom: 0in">We (still)
- prohibit recursion in all its form in constant expressions.
- That is not strictly necessary because an implementation
- limit on recursion depth in constant expression evaluation
- would save us from the possibility of the compiler
- recursing forever. However, until we see a convincing use
- case for recursion, we don&#8217;t propose to allow it.
-
- <p align="left">
- <br>
-
- <p align="left">
- Then, here are the use cases where allowing recursion for
- constexpr is very useful.
-
- <p align="left">
- <br>
-
- <p align="left">
- Range of problem to be handled with constexpr would become
- extended. For example, user defined type (e.g. Complex
- type) could be placed in ROM area. But with current
- specification, a function defined with constexpr cannot be
- called recursively. As a side effect is not allowed in
- compile-time, it cannot be implemented to repeat anything
- without recursion. Although it could be implemented without
- recursion like func0, func1, func2 in an example below, it
- is not elegant solution.
-
- <p align="left">
- <br>
-
- <p align="left">
- constexpr double func0(double x) { /* ... */}
-
- <p align="left">
- constexpr double func1(double x) { /* call for func0 */ }
-
- <p align="left">
- constexpr double func2(double x) { /* call for func1 */ }
-
- <p align="left">/*
- ... */
-
- <p align="left">
- <br>
-
- <p align="left">-
- Compile-time and runtime
-
- <p align="left">As
- constexpr can be also evaluated both in compile-time and
- runtime, we need to discuss about both cases.
-
- <p align="left">
- <br>
-
- <p align="left">
- Runtime evaluation is just to execute it. If you eliminate
- constexpr keyword, it is executable as of now. Any modern
- compiler may optimize tail recursion easily.
-
- <p align="left">
- <br>
-
- <p align="left">
- Compile-time evaluation is the same thing as template
- recursion. It is necessary to support floating point
- operation, but it is already possible to calculate it in
- compile-time, so it&#8217;s ok.
-
- <p align="left">
- <br>
-
- <p align="left">-
- Sample
-
- <p align="left">
- Here is an example to calculate a square root using
- constexpr recursively.
-
- <p align="left">
- <br>
-
- <p align="left">
- /*constexpr*/ double SqrtHelper(double x, double a, int n)
-
- <p align="left">{
-
- <p align="left">
- return n == 0 ? a : SqrtHelper(x, (x / a + a) / 2.0, n -
- 1);
-
- <p align="left">}
-
- <p align="left">
- <br>
-
- <p align="left">
- /*constexpr*/ double Sqrt(double x)
-
- <p align="left">{
-
- <p align="left">
- return SqrtHelper(x, x, 20);
-
- <p align="left">}
-
- <p align="left">
- <br>
-
- <p align="left" style=
- "margin-top: 0.04in; margin-bottom: 0.04in">/*constexpr*/
- double root2 = Sqrt(2.0); // 1.41421...
-
- <p align="left" style="margin-top: 0.04in">
- <br>
-
- <td width="536">
- <p align="left">
- Allow constexpr recursion.
-
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 37
-
- <td width="118">
- <p align="left">7.1.6.1
-
- <td width="85">
- <p align="left">1
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <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
- CV-qualifiers only describes cv-qualifiers for objects,
- cv-qualifiers for (member) functions being described in
- 8.3.5 Functions.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 89
-
- <td width="118">
- <p align="justify">7.1.6.1
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The two
- normative sentences in this paragraph appear to duplicate
- text elsewhere - but they aren't exact duplicates, which
- introduces uncertainty. 1. "An object declared in namespace
- scope with a const-qualified type has internal linkage
- unless it is explicitly declared extern or unless it was
- previously declared to have external linkage.". This nearly
- repeats 7.1.1/7: "Objects declared const and not explicitly
- declared extern have internal linkage." The former seems to
- allow more wiggle room - can an object be "previously
- declared to have external linkage" without having been
- "explicitly declared extern"? 2. "A variable of
- non-volatile const-qualified integral or enumeration type
- initialized by an integral constant expression can be used
- in integral constant expressions (5.19)." This nearly
- duplicates 5.19/2, bullet 4, 1st sub-bullet - "[... an
- integaral constant expression can use] an lvalue of
- effective integral type that refers to a non-volatile const
- variable or static data member initialized with constant
- expressions". The latter does not allow for lvalues of
- enumeration type (neither scoped not unscoped enumerations
- are integral types - 3.9.1/7, and note 44). This seems to
- be a flaw in 5.19/2.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 90
-
- <td width="118">
- <p align="justify">7.1.6.2
-
- <td width="85">
- <p align="justify">para 1 and table 9
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The grammar in
- paragraph one makes "nested-name-specifier template
- simple-template-id" a simple-type-specifier, but unlike all
- the others it is omitted from table 9.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add a row to table 9 mentioning
- simple-template-id and punting to clause 14 (cf
- decltype(expression)).
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 91
-
- <td width="118">
- <p align="justify">7.1.6.2
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- used, and with the same meaning, except as otherwise
- indicated." When the first bullet point of this paragraph,
- describing the type denoted by decltype(e), says "if e is
- an id-expression ... decltype(e) is the type of the entity
- named by e", 5.1/5 is not excluded, which would imply that
- decltype((e)) was also the type of e. But the intention
- appears that it should be caught by the third bullet and
- treated as an lvalue expression, so decltype((e)) should be
- a reference to the type of e. Conversely, the second bullet
- point says "(parentheses around e are ignored)", which is
- redundant because of 5.1/5.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 92
-
- <td width="118">
- <p align="justify">7.1.6.3
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The note
- correctly indicates that, if T is a template type
- parameter, then "friend class T;" is ill-formed. It might
- be worth pointing out at the same time that the alternative
- "friend T;" is now allowed - see 11.4/3.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Either strike the note or add reference to
- 11.4/3 and/or mention of "friend T;".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 93
-
- <td width="118">
- <p align="justify">7.1.6.3
-
- <td width="85">
- <p align="justify">Grammar before para 1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">In the third
- production, "enum ::opt nested-name-specifieropt
- identifier", enum should not be in italics; its referring
- to the enum keyword.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Change to keyword font
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 94
-
- <td width="118">
- <p align="justify">7.1.6.4
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <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
- return type of a function is specified explicitly at the
- end of a function declarator.
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 95
-
- <td width="118">
- <p align="justify">7.1.6.4
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- else not listed). Specifically, it isn't allowed in a
- type-id in a new-expression. That allows "new auto (42)",
- but not "new (auto)(42)". However, 5.3.4/2 suggests the
- latter should be allowed "If the auto type-specifier
- appears in the type-specifier-seq of a new-type-id or
- type-id of a new-expression ...". The inconsistency should
- be resolved, ideally in favour of allowing both forms.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Change "in a new-type-id" to "in a
- new-type-id or type-id in a new-expression".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 24
-
- <td width="118">
- <p>7.1.6.4<br>
-&nbsp;[auto<br>
-&nbsp;specifier]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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
- in template parameter declarations, as in
-
- <p>
-
- <p>template&lt;auto n&gt; struct
- X { /* &#8230; */ };
-
- <p>
-
- <p>X&lt;903&gt; x;
-
- <p>
-
- <p>
- X&lt;&amp;Widget::callback&gt; y;
-
- <p>
-
- <p>instead of the current, often
- verbose and cumbersome
-
- <p>
-
- <p><span lang=
- "fr-FR">template&lt;typename T, T n&gt; struct X { /*
- &#8230;</span> <font face="Consolas, monospace">*/
- };</font>
-
- <p>
-
- <p>X&lt;int,903&gt; x;
-
- <p>X&lt;void
- (Widget::*)(),&amp;Widget::callback&gt; y;
-
- <p>
-
- <p>We understand that 'auto' is
- used in 14.1/18 in a different way (for constrained
- template), but that usable appears very strange syntax,
- unnatural and does not fit well with the usage in this
- section.
-
- <p style="margin-top: 0.04in"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 38
-
- <td width="118">
- <p align="left">7.2
-
- <td width="85">
- <p align="left">1
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The
- discussion of attribute specifiers should be a separate
- paragraph.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 39
-
- <td width="118">
- <p align="left">7.2
-
- <td width="85">
- <p align="left">2
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The
- paragraph says in part "An opaque-enum-declaration
- declaring an unscoped enumeration shall not omit the
- enum-base." This statement implies that the base may be
- omitted for scoped enumerations, which is somewhat
- inconsistent with paragraph 3 and somewhat consistent with
- paragraph 5.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 13
-
- <td width="118">
- <p align="left">7.2
-
- <td width="85">
- <p align="left">para 3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">In
- the description for an unscoped enumeration, enum-base in
- redeclaration must be the same underlying type as in the
- 1st declaration, but it is not described explicitly, while
- it is referred that all enum-bases in redeclarations must
- specify the same underlying type.
-
- <p align="left"><br>
-
- <td width="536">
- <p>Replace the description, "same underlying type", with
- "same as underlying type of (previous) declaration."
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 96
-
- <td width="118">
- <p align="justify">7.2
-
- <td width="85">
- <p align="justify">7
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- indicates that the underlying type is as if E had a single
- enumerator with value 0, but that does not define the
- values of E.)
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 97
-
- <td width="118">
- <p align="justify">7.2
-
- <td width="85">
- <p align="justify">9
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Missing
- punctuation after "blue" in: "The possible values of an
- object of type color are red, yellow, green, blue these
- values can be converted ..."
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 98
-
- <td width="118">
- <p align="justify">7.2
-
- <td width="85">
- <p align="justify">5
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- to an integral type (especially needed for scoped enums,
- which do not promote), and would allow use of
- numeric_limits. In general it makes generic programming
- with enumerations easier.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add a TransformationTrait to 20.5.6 that
- returns the underlying type of an enumeration type.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 99
-
- <td width="118">
- <p align="justify">7.2
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">It is unclear
- whether an enumeration type is complete after an
- opaque-enum-declaration. This paragraph only says so in a
- note, and the general rule in 3.9/5 ("Incompletely-defined
- object types ... are incomplete types") is unclear in this
- situation.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Move "an enumeration declared by an
- opaque-enum-declaration ... is a complete type" from the
- note to normative text.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 14
-
- <td width="118">
- <p align="left">7.3.1
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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
- defined with same name in other namespace was referred.
-
- <p align="left" style=
- "margin-left: 0.45in; text-indent: -0.25in; margin-bottom: 0in">
- - It seems that the behavior of the following case is not
- defined. So we think that it is necessary to define that.
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">namespace Q {
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">inline namespace
- V {
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">int g;
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">}
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">int g;
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">}
-
- <p align="left" style=
- "margin-left: 0.67in; margin-bottom: 0in">Q::g =1;//
- ill-fromed, Q::V::g =1;, or Q::g = 1;?
-
- <p align="left" style=
- "margin-left: 0.45in; text-indent: -0.25in; margin-bottom: 0in">
- - Add that the following case is ill-formed to more easily
- to understand.
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">namespace Q {
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">inline namespace
- V1{
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">int g;
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">}
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">inline namespace
- V2{
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">int g;
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">}
-
- <p align="left" style=
- "margin-left: 0.5in; margin-bottom: 0in">}
-
- <p align="left" style=
- "text-indent: 0.44in; margin-bottom: 0in">Q::g
- =1;//ill-formed
-
- <p align="left" style="text-indent: 0.44in">
- <br>
-
- <td width="536">
- <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
- defined with same name in other namespace was referred.
-
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 100
-
- <td width="118">
- <p align="justify">7.3.3
-
- <td width="85">
- <p align="justify">10 and 13
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Para 10 says "A
- using-declaration is a declaration and can therefore be
- used repeatedly where (and only where) multiple
- declarations are allowed." Para 13 says "Since a
- using-declaration is a declaration, the restrictions on
- declarations of the same name in the same declarative
- region (3.3) also apply to using-declarations." These
- appear to be saying exactly the same thing.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Delete para 10, moving its example into
- para 13.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 101
-
- <td width="118">
- <p align="justify">7.3.3
-
- <td width="85">
- <p align="justify">20
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">If a
- using-declaration uses the keyword typename and specifies a
- dependent name (14.6.2), the name introduced by the
- using-declaration is treated as a typedef-name (7.1.3).
- That doesn't specify at all what the effect of using
- typename with a non-dependent name is. Is it allowed? What
- about outside any template? What if the name isn't a type?
- (14.6/4 doesn't cover this, I think.)
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Allow typename for non-dependent names iff
- they refer to a type.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-12
-
- <td width="118">
- <p>7.3.3
-
- <td width="85">
- <p>p15
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">DE-12
- Overriding and hiding of member functions named in
- using-declarations should consider ref-qualifiers, because
- they are part of the function type.
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 25
-
- <td width="118">
- <p>7.3.3<br>
-&nbsp;[The using<br>
-&nbsp;declaration]
-
- <td width="85">
- <p>Para 21
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>The syntax for concept map alias is unnecessarily both
- confused and verbose.
-
- <td width="536">
- <p>We strongly suggest
- simplifications, e.g.
-
- <p>using N1::C&lt;int&gt;;
-
- <p>that fits well with existing
- constructs. The syntactic complexity is too high for a new
- feature presumably designed to support sound programming.
-
- <p>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 102
-
- <td width="118">
- <p align="justify">7.3.4
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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
- the same entity and do not declare functions, the use of
- the name is ill-formed." But the example uses declaration
- of functions, so is not covered by this paragraph.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Move the example to paragraph 7, and/or
- replace it with an appropriate example.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 40
-
- <td width="118">
- <p align="left">7.6
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The
- list of attributes is missing an attribute to indicate that
- a function with a <font size="2" style=
- "font-size: 11pt"><code>throw()</code> (throws nothing)
- clause need not have the <code>unexpected()</code> catch
- clause generated. This attribute was a motivating example
- for the attribute syntax, and its omission is
- surprising.</font>
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add the attribute.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 41
-
- <td width="118">
- <p align="left">7.6
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">A
- common problem is unintentionally declaring a new virtual
- member function instead of overriding a base virtual member
- function.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">An attribute stating intent to
- override would enable better diagnostics.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 26
-
- <td width="118">
- <p>7.6<p>&nbsp;[Attributes]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>Are they part of object types
- or not? The section does not appear to indicate that
- clearly.
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FI 1
-
- <td width="118">
- <p>7.6
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>Add override-attribute for functions in order to avoid
- mistakes when overriding functions.
-
- <td width="536">
- <p>See override&#173;-attribute.doc, override-attribute.ppt
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 27
-
- <td width="118">
- <p>7.6.1
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>This section specifies that
- no name lookup is performed on any identifier contained in
- an attribute-token. This in particular implies that, for
- example, it is impossible to define a template class
- parameterized by its alignment. That restriction is
- unacceptable.
-
- <p>The original alignment
- proposal made that useful construct possible.
-
- <p>Furthermore paragraph 7.6.1/2
- appears contradictory with the rest of that section --
- since no name lookup is performed, how a 'type-id'is
- determined?
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 103
-
- <td width="118">
- <p align="justify">7.6.1
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Attributes should support pack expansion.
- For example, this would be extremely useful with the align
- attribute, directly supporting the (removed) functionality
- of aligned_union. NOte that aligned_union was removed as
- varaiant-unions were considered a complete replacement -
- however this is not true for variadic templates. Adding
- this support to attributes would remove the remaining need,
- and support similar attributes in the future.
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 104
-
- <td width="118">
- <p align="justify">7.6.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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
- nested under a more specific subsection.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">7.6.1p1 should move up one level to become
- 7.6p1. There grammar should remain under 7.6.1
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 105
-
- <td width="118">
- <p align="justify">7.6.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Allowing only one level of namespaces in
- attributes seems unnecessarily limiting.
-
- <td width="536">
- <p align="left">To: attribute-scoped-token:
- attribute-namespace :: identifier add attribute-namespace
- :: attribute-scoped-token
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 106
-
- <td width="118">
- <p align="justify">7.6.2
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Extensive use of
- alignment and related terms without cross reference.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add cross-reference to 3.11.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 15
-
- <td width="118">
- <p align="left">7.6.2
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">An abbreviation
- of 7.6.2 should be &#8220;[decl.attr.align]&#8221; instead
- of &#8220;[dcl.align]&#8221;.<br>
- Section name &#8220;[dcl.align]&#8221; is not consistent
- with others, because others in 7.6 are the form of
- &#8220;dcl.attr.*&#8221;. In N2761, the section name of
- 7.1.7 had been changed from &#8220;[dcl.align]&#8221; to
- &#8220;[dcl.attr.align]&#8221;, but in N2800 it was
- reverted to &#8220;[dcl.align]&#8221; along with a change
- of section number, 7.1.7 to 7.6.2.
-
- <p>
-
- <td width="536">
- <p>Change "[dcl.align]" of 7.6.2 to "[decl.attr.align]".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 107
-
- <td width="118">
- <p align="justify">7.6.3
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">While undefined
- behaviour might be the best we can guarantee, it would be
- helpful to encourage implementations to diagnose function
- definitions that might execute a return.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 108
-
- <td width="118">
- <p align="justify">7.6.4
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">It is unclear
- why no diagnostic is required for an easily detectable
- violation. It is even more surprising that the associated
- footnote mandates behaviour for an ill-formed program.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Strike "no diagnostic required" and the
- associated footnote.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 42
-
- <td width="118">
- <p align="left">7.6.4
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The
- meaning of the <font size="2" style=
- "font-size: 11pt"><code>[[final]]</code> attribute applied
- to classes is inconsistent with other languages and not
- desirable in its own right.</font>
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">
- Modify the semantics of <font size="2" style=
- "font-size: 11pt"><code>[[final]]</code> applied to
- classes. See the attached paper "Issues with the C++
- Standard" under Chapter 7 "Meaning of
- <code>[[final]]</code> attribute applied to
- classes".</font>
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 109
-
- <td width="118">
- <p align="justify">7.6.5
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Replace "Compilation" with "Translation" in
- two places
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>
-
- <td width="118">
- <p align="justify"><br>
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify"><br>
-
- <td width="514">
- <p align="left"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 110
-
- <td width="118">
- <p align="justify">7.6.5
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The code in the
- example (compilation unit A) has:
- "foo_head[i].load(memory_order_consume)". foo_head[i] is of
- type foo *, so it does not have a load member.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Change the type of foo_head to
- atomic&lt;foo *&gt;[].
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 43
-
- <td width="118">
- <p align="left">8
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">
- With the introduction of late-specified return types for
- functions and lambda expressions, we now have three
- different syntaxes for declaring functions. The <font size=
- "2" style="font-size: 11pt"><code>-&gt;</code> late
- declaration is used in two. The <code>auto</code> keyword
- is used in one, but also used differently in variable
- definitions.</font>
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Some simplification is needed.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 111
-
- <td width="118">
- <p align="justify">8.3.5
-
- <td width="85">
- <p align="justify">13
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Example missing
- closing bracket in template&lt;typename... T&gt; void f(T
- (* ...t)(int, int);
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add closing bracket like this:
- template&lt;typename... T&gt; void f(T (* ...t)(int, int));
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 44
-
- <td width="118">
- <p align="left">8.3.5
-
- <td width="85">
- <p align="left">13
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">In
- the Example, "template void f(T (* ...t)(int, int);" is
- missing a close parenthesis.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">It presumably should read:
- "template void f(T (* ...t))(int, int);".
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 45
-
- <td width="118">
- <p align="left">8.3.5
-
- <td width="85">
- <p align="left">13
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">At present,
- function parameter packs can only occur at the end of a
- parameter-declaration-list. This restriction unnecessarily
- prohibits uses of function parameter packs in cases where
- template argument deduction isn&#8217;t needed, e.g.,
-
- <p align="left"><br>
-
- <p align="left">
- template&lt;class... T&gt; struct X { };
-
- <p align="left">
- template&lt;class... T1, class... T2&gt;
-
- <p align="left">struct
- X&lt;pair&lt;T1, T2&gt;...&gt; {
-
- <p align="left">void f(T1...,
- T2...);
-
- <p align="left">};
-
- <p align="left"><br>
-
- <p align="left">More
- importantly, this restriction is inconsistent with the way
- pack expansions are handled. For example, this template is
- well-formed (but X&lt;T..., int&gt; is a non-deduced
- context):
-
- <p align="left"><br>
-
- <p align="left">
- template&lt;class... T&gt; void f(X&lt;T..., int&gt;);
-
- <p align="left"><br>
-
- <p align="left">Therefore, the restriction that limits
- function parameter packs to the end of the
- parameter-declaration-list should be removed. Instead,
- function parameter packs not at the end of the
- parameter-declaration-list should be considered non-deduced
- contexts.
-
- <td width="536">
- <p align="left">In 8.3.5p13,
- remove the sentence &#8220;<span lang="">A function
- parameter pack, if present, shall occur at the end of the
- parameter-declaration-list.&#8221;</span>
-
- <p align="left"><br>
-
- <p align="left"><span lang="">In
- 14.8.2.1p1, replace the phrase &#8220;For a function
- parameter pack&#8221; with &#8220;For a function parameter
- pack that occurs at the end of a</span> <font size="3"
- face="Helvetica, sans-serif"><span lang=
- ""><i>parameter-declaration-list</i>&#8221;.</span></font>
-
- <p align="left"><br>
-
- <p align="left"><span lang=
- "">Replace the note text &#8220;A function parameter pack
- can only occur at the end of a
- parameter-declaration-</span>list (8.3.5).&#8221; with
- &#8220;A function parameter pack that does not occur at the
- end of a parameter-declaration-list is a non-deduced
- context.&#8221;
-
- <p align="left"><br>
-
- <p align="left">In 14.8.2.5p5,
- add a new bullet: &#8220;A function parameter pack that
- does not occur at the end of its
- parameter-declaration-list.&#8221;
-
- <p align="left"><br>
-
- <p align="left">In 14.8.2.5p10,
- replace &#8220;<span lang="">If</span> <font size="3" face=
- "Helvetica, sans-serif">the parameter-declaration
- corresponding to Pi is a function parameter pack&#8221;
- with &#8220;<span lang="">If</span> <font size="3">the
- parameter-declaration corresponding to Pi is a function
- parameter pack and Pi occurs at the end of the
- parameter-declaration-list&#8221;.</font></font>
-
- <p align="left"><br>
-
- <p align="left">Replace
- <font size="3" face="Helvetica, sans-serif"><span lang=
- "">the note text &#8220;A function parameter pack can only
- occur at the end of a parameter-declaration-</span>list
- (8.3.5).&#8221; with &#8220;A function parameter pack that
- does not occur at the end of a parameter-declaration-list
- is a non-deduced context.&#8221;</font>
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-13
-
- <td width="118">
- <p>8.4
-
- <td width="85">
- <p>p2
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 width="536">
- <p>Properly quote the grammar from 8.3.5.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 16
-
- <td width="118">
- <p align="left">8.5
-
- <td width="85">
- <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 width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo, duplicated "in"
-
- <p align="left">"The initialization that
- occurs in in the forms"
-
- <td width="536">
- <p>Remove one.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 46
-
- <td width="118">
- <p align="left">8.5.3
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <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.
- For example, consider vector&#8217;s push_back operation:
-
- <p align="left">requires
- MoveConstructible&lt;T&gt; void push_back(T&amp;&amp;);
-
- <p align="left">requires
- CopyConstructible&lt;T&gt; void push_back(const T&amp;);
-
- <p align="left"><br>
-
- <p align="left">For a
- copy-constructible T (which is also move-constructible),
- push_back does the right thing. However, if T is something
- that is move-constructible (e.g., unique_ptr&lt;int&gt;),
- the second overload is removed from considered (it is
- effectively SFINAE&#8217;d away), so only the first
- overload remains. Therefore, one could accidentally call
- push_back with an lvalue of type T, and push_back would
- silently move from the lvalue. The same problem occurs
- without concepts (albeit less frequently).
-
- <p align="left"><br>
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Prohibit rvalue
- references from binding to lvalues.
-
- <p align="left"><br>
-
- <p align="left">Unfortunately
- this change will break some current use cases of rvalue
- reference including the use of rvalue streams, and of the
- forward function itself. To resolve this we may want to
- consider three types of references:
-
- <p align="left"><br>
-
- <ol>
- <li>
- <p align="left">The current
- reference.
-
- <li>
- <p align="left">A non-const
- reference that only binds to rvalues.
-
- <li>
- <p align="left">A non-const
- reference that will bind to both lvalues and rvalues.
- </ol>
-
- <p align="left"><br>
-
- <p align="left">Still another solution would be to adopt
- the &#8220;deleted function&#8221; solution for all
- functions. This solution is described in comment for 12.1,
- 12.4, 12.8, but restricted to special functions in that
- comment. (See US NN).
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 49
-
- <td width="118">
- <p align="left">8.5.4
-
- <td width="85">
- <p align="left">6
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">In the Example, the comments
- could be improved.
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 112
-
- <td width="118">
- <p align="justify">9
-
- <td width="85">
- <p align="justify">4-9
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <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
- referenced.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add appropriate forward references to
- 14.9.4
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 113
-
- <td width="118">
- <p align="justify">9.4.2
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Mis-applied edit from the paper n2756
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 50
-
- <td width="118">
- <p align="left">12.1,<br>
-&nbsp;12.4,<br>
-&nbsp;12.8
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">
- Implicitly-declared default constructors, destructors, copy
- constructors, and copy assignment operators are deleted
- when their definitions would be ill-formed. However, unlike
- with overloading and template argument deduction, access
- control is performed as part of the check for making one of
- these special function deleted. This inconsistency should
- be removed.
-
- <p align="left"><br>
-
- <p align="left">This change
- would sacrifice some backward compatibility in favor of
- consistency. With the current wording, checking that the
- following class &#8216;A&#8217; is CopyConstructible would
- proceed without error (it is not CopyConstructible):
-
- <p align="left">class A {
- A(const A&amp;); };
-
- <p align="left">With the
- proposed change, testing whether A is CopyConstructible
- would produce a diagnostic. To fix the problem, the user
- would have to use a deleted function:
-
- <p align="left">class A {
- A(const A&amp;) = delete; };
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">In 12.1p5,
- remove the phrase &#8220;<span lang="">or inaccessible from
- the implicitly-declared default</span> <font size="3" face=
- "Helvetica, sans-serif">constructor&#8221;.</font>
-
- <p align="left"><br>
-
- <p align="left">In 12.4p3,
- remove the phrase &#8220;<span lang="">or a destructor that
- is inaccessible from the implicitly-declared
- destructor,&#8221; and the phrase &#8220;or a destructor
- that is inaccessible from the</span> <font size="3" face=
- "Helvetica, sans-serif">implicitly-declared
- destructor<span lang="">&#8221;.</span></font>
-
- <p align="left"><br>
-
- <p align="left">In 12.8p5,
- remove the phrase &#8220;<span lang="">or inaccessible from
- the implicitly-declared copy constructor&#8221; from the
- two places it occurs.</span>
-
- <p align="left"><br>
-
- <p align="left">In 12.8p10,
- remove the phrase &#8220;<span lang="">or inaccessible from
- the implicitly-declared copy assignment operator&#8221;
- from the two places it occurs.</span>
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 28
-
- <td width="118">
- <p>12.6.1<br>
-&nbsp;[Explicit<br>
-&nbsp;initialization]
-
- <p>
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>This section, in particular the example with `g' appears
- contradictory with the syntax for uniform initialization.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 51
-
- <td width="118">
- <p align="left">12.6.2
-
- <td width="85">
- <p align="left">2
-
- <td width="62">
- <p align="left">ed
-
- <td width="514">
- <p align="left">The
- discussion of delegating constructors should be in its own
- paragraph.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 114
-
- <td width="118">
- <p align="justify">12.6.2
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Despite all the attempts to unify
- initialization syntax, it is still not possible to
- copy-initialize base classes or non-static data members,
- which means the explicit keyword cannot have a bearing
- during evaluation of a constructor. A minimal addition to
- the grammar, allowing an optional = between the
- mem-initializer-id and braced-init-list would allow the
- user to choose between copy and direct initialization
-
- <td width="536">
- <p align="left">Ammend the
- grammar for mem-initializer: mem-initializer-id =OPT
- braced-init-list Extend p3 to allow for Copy Initialization
- if the optional = is present: 3 The expression-list or
- braced-init-list in a mem-initializer is used to initialize
- the base class or non-static data member subobject denoted
- by the mem-initializer-id according to the initialization
- rules of 8.5 for direct-initialization, OR
- COPY-INITIALIZATION IF THE OPTIONAL = IS PRESENT BETWEEN
- THE MEM-INITIALIZER-ID and the BRACED-INIT-LIST.
- [Example:...
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>US 52
-
- <td width="118">
- <p>13.5.8
-
- <td width="85">
- <p>&#182; 5
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>A word is misspelled.
-
- <td width="536">
- <p>Change &#8220;shal&#8221; to &#8220;shall&#8221;.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 115
-
- <td width="118">
- <p align="justify">14
-
- <td width="85">
- <p align="justify">6-11
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <p align="left">Exported
- templates were a great idea that is generally understood to
- have failed. In the decade since the standard was adopted,
- only one implementation has appeared. No current vendors
- appear interested in creating another. We tentatively
- suggest this makes the feature ripe for deprecation. Our
- main concern with deprecation is that it might turn out
- that exported constrained templates become an important
- compile-time optimization, as the constraints would be
- checked once in the exported definition and not in each
- translation unit consuming the exported declarations.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 116
-
- <td width="118">
- <p align="justify">14
-
- <td width="85">
- <p align="justify">6-11
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- it would mean.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Either prohibit exporting concept map
- templates, or more directly address what it means to export
- a concept map.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 117
-
- <td width="118">
- <p align="justify">14
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <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
- and resolution, rather than defining new callable code,
- they are not seen to present the same problems that
- prevented class and function templates in the past.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Allow template aliases to be declared
- inside a function scope, and consider scoped concept maps.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 118
-
- <td width="118">
- <p align="justify">14
-
- <td width="85">
- <p align="justify">6-11
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Exported
- templates are a complicated feature with surprisingly
- little text. To make this important text more visible,
- split it off into its own subclause [temp.export]
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Create a new subclause [temp.export]
- containing 14p6-11. Move 14p12 ahead of this subclause.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 119
-
- <td width="118">
- <p align="justify">14
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- 'regular' concept map. Believe this is an oversight that
- the linkage words were not updated to provide an exception,
- rather than linkage of concept maps is intended.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 120
-
- <td width="118">
- <p align="justify">14.1
-
- <td width="85">
- <p align="justify">9
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">As this is the
- first time the phrase &#8220;parameter pack&#8221; appears
- in Ch 14 I would like to see the section 8.3.5 referenced
- here (as well as in 14.1p17).
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Insert &#8220;(8.3.5)&#8221; after
- &#8220;parameter pack&#8221;
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 121
-
- <td width="118">
- <p align="justify">14.1
-
- <td width="85">
- <p align="justify">18
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The example
- (that follows the normative text) has no begin example
- marker
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Prefix the example code with "[ Example:"
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>FR 29
-
- <td width="118">
- <p>14.3<br>
-&nbsp;[Template<br>
-&nbsp;arguments]
-
- <p>
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>Constant expressions of any literal type should be
- allowed as template arguments.
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 53
-
- <td width="118">
- <p align="left">14.5.1
-
- <td width="85">
- <p align="left">5
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">If the
- requirements of a constrained member that is a copy
- constructor, copy assignment operator, or destructor are
- not satisfied, then that user-declared special function
- will not exist. It appears that, in this case, the special
- function will then be <font size="3" face=
- "Helvetica, sans-serif"><i>implicitly</i> <font size=
- "3">defined, which is likely to either (a) fail to compile
- or (b) produce a function with the wrong semantics. For
- example:</font></font>
-
- <p align="left">
- template&lt;ObjectType T&gt; class vector {
-
- <p align="left">T* first, last,
- end;
-
- <p align="left">public:
-
- <p align="left">requires
- CopyConstructible&lt;T&gt; vector(const vector&amp;);
-
- <p align="left">};
-
- <p align="left"><br>
-
- <p align="left">If instantiated with a type that is not
- CopyConstructible, vector will get an implicitly-defined
- copy constructor that performs a copy of the pointers.
-
- <td width="536">
- <p align="left">Add to 14.5.1p5:
-
- <p align="left">If the constrained member is a copy
- constructor (12.8), destructor (12.4), or copy assignment
- operator and its template requirements are not satisfied,
- then a copy constructor, destructor, or copy assignment
- operator, respectively, with the same signature as the
- constrained member (after substituting the class
- template&#8217;s template arguments for its template
- parameters) will be declared as a deleted function (8.4).
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 122
-
- <td width="118">
- <p align="justify">14.5.3
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Variadic
- templates should be supported in axioms. There are axioms
- in the library that rely on this feature, such as the
- FrontEmplacement axiom in FrontEmplacementContainer
- (23.1.6.1p10)
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 30
-
- <td width="118">
- <p>14.5.7<br>
-&nbsp;[Template<br>
-&nbsp;aliases]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>When are two template alias
- names equivalent?
-
- <p>
-
- <p>E.g. given
-
- <p>
- template&lt;template&lt;class&gt; class&gt; struct X { };
-
- <p>
-
- <p>
- template&lt;typename,typename&gt; struct Y { };
-
- <p>
-
- <p>template&lt;typename T&gt;
-
- <p>using Z1 = Y&lt;int,T&gt;;
-
- <p>
-
- <p>template&lt;typename T&gt;
-
- <p>using Z2 = Y&lt;int,T&gt;;
-
- <p>
-
- <p>Are the types X&lt;Z1&gt; and
- X&lt;Z2&gt; equivalent?
-
- <p>We would suggest yes (since
- Z1&lt;T&gt; and Z2&lt;T&gt; are the same for all T), but we
- do not see any wording to that effect.
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 17
-
- <td width="118">
- <p align="left">14.7.2
-
- <td width="85">
- <p align="left">2<sup>nd</sup> <font size="2"
- style="font-size: 11pt">para, 15<sup>th</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo.
-
- <p align="left">if
- that namespace is inline, any namespace from its enclosing
- namespace set.
-
- <p align="left">
- <br>
-
- <p align="left">
- should be
-
- <p align="left">
- <br>
-
- <p align="left">if
- that namespace is inline, any namespace <font size="2"
- style="font-size: 11pt"><font color=
- "#339966">forming</font> its enclosing namespace
- set.</font>
-
- <p align="left"><br>
-
- <td width="536">
- <p>Replace "from" with "forming"
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-14
-
- <td width="118">
- <p>14.7.3
-
- <td width="85">
- <p>p1
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>DE-14 The bulleted list neither addresses "member
- function template of a class" nor "member class template of
- a class".
-
- <td width="536">
- <p>Add the respective bullets.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 18
-
- <td width="118">
- <p align="left">14.7.3
-
- <td width="85">
- <p align="left">2<sup>nd</sup> <font size="2"
- style="font-size: 11pt">para, 2<sup>nd</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo,
-
- <p align="left">any
- namespace from its enclosing namespace set
-
- <p align="left">
- <br>
-
- <p align="left">
- should be
-
- <p align="left">
- <br>
-
- <p align="left">any
- namespace <font size="2" style=
- "font-size: 11pt"><font color="#339966">forming</font> its
- enclosing namespace set</font>
-
- <p align="left"><br>
-
- <td width="536">
- <p>Replace "from" with "forming"
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>JP 19
-
- <td width="118">
- <p align="left">14.8.2
-
- <td width="85">
- <p align="left">6<sup>th</sup> <font size="2"
- style="font-size: 11pt">para, 1<sup>st</sup>
- line</font>
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p align="left">
- Typo, duplicated "is"
-
- <p align="left" style=
- "margin-top: 0.04in; margin-bottom: 0.04in">"At certain
- points in the template argument deduction process it <u>is
- is</u> necessary"
-
- <p align="left" style="margin-top: 0.04in">
- <br>
-
- <td width="536">
- <p align="left" style="margin-top: 0.04in">
- Remove one
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 54
-
- <td width="118">
- <p style=
- "margin-top: 0.04in; margin-bottom: 0.04in">14.9<br>
-&nbsp;[concept],
-
- <p>14.10<br>
-&nbsp;[temp.<br>
- constrained]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>ge
-
- <td width="514">
- <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 width="536">
- <p>I propose no specific change here.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 55
-
- <td width="118">
- <p>14.9.1
-
- <td width="85">
- <p>&#182; 6
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The paragraph number is in the wrong place, causing a
- grammar rule to be indented more than its fellows.
-
- <td width="536">
- <p>Move the paragraph number so as to follow the grammar
- rules, thus numbering the single sentence, &#8220;The body
- of a concept &#8230; .&#8221;
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 56
-
- <td width="118">
- <p>14.9.1
-
- <td width="85">
- <p>&#182; 6
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The sentence contains two references to 14.9.1.3
- [concept.req].
-
- <td width="536">
- <p>Change the second such reference (at the end of the
- sentence) to 14.9.1.4 [concept.axiom].
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 57
-
- <td width="118">
- <p>14.9.1.4
-
- <td width="85">
- <p>&#182; 3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>A word is misplaced, changing the intended meaning.
-
- <td width="536">
- <p>Change &#8220;only find &#8230; if&#8221; to &#8220;find
- &#8230; only if&#8221;.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>US 58
-
- <td width="118">
- <p>14.9.1.4
-
- <td width="85">
- <p>&#182; 3
-
- <td width="62">
- <p>ed
-
- <td width="514">
- <p>The listed phrases are not grammatically parallel.
-
- <td width="536">
- <p>Insert &#8220;in&#8221; before &#8220;one&#8221; so as
- to obtain &#8220;... in the concept, in one of its less
- refined concepts, or in an associated requirement.&#8221;
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 59
-
- <td width="118">
- <p align="left">14.9.1.4
-
- <td width="85">
- <p align="left"><br>
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">Axioms are under-specified and provide
- little benefit to programmers, so they should be removed
- from the working paper. The optimizations permitted by
- axioms (see 14.9.1.4p4-5) are not compulsory (and,
- therefore, programmers cannot rely on them) and the
- semantics expressed by axioms cannot be verified by any
- implementation. The resulting specification has lead to
- great confusion (see the reflector thread &#8220;Are
- floating point types Regular?&#8221; starting with
- c++std-lib-22717). Given the level of confusion and the
- inability to verify the correctness of axioms, it is likely
- that many axioms written by programmers (including those
- specified in the candidate draft) will be incorrect.
-
- <td width="536">
- <p align="left">Remove clause
- 14.9.1.4 [concept.axiom]
-
- <p align="left">In 2.11p1,
- remove &#8220;axiom&#8221; from the list of keywords.
-
- <p align="left"><br>
-
- <p align="left">In 14.5.8p7,
- remove &#8220;, or if the resulting concept map fails to
- satisfy the axioms of the corresponding concept&#8221;
-
- <p align="left"><br>
-
- <p align="left">In 14.9.1p6,
- remove axiom-definition from the list of grammar
- productions for concept-member-specifier. Remove &#8220;,
- and axioms&#8221; from the final sentence, and instead
- &#8220;and&#8221; prior to &#8220;associated
- requirements&#8221; in the final sentence.
-
- <p align="left"><br>
-
- <p align="left"><br>
-
- <p align="left">Remove paragraph
- 14 of clause 14.9.2.
-
- <p align="left"><br>
-
- <p align="left">In 14.10.1p6,
- remove the sentence, &#8220;When the
- concept-instance-alias-def appears in the optional
- requires-clause of an axiom-definition (14.9.1.4), the
- potential scope of the identifier begins at its point of
- declaration and terminates at the end of the
- axiom-de&#64257;nition.&#8221;
-
- <p align="left"><br>
-
- <p align="left">In clauses
- 20.2.5, 20.2.8, 23.1.6.1, 23.1.6.2, and 24.1.4, remove the
- axiom-definitions and replace them with paragraphs (denoted
- Requires, Postconditions, or Effects, as appropriate) that
- express the intended semantics of the concepts from which
- the axiom-definitions were removed.
-
- <p align="left"><br>
-
- <p align="left">In 24.1.4p2,
- replace the word &#8220;axiom&#8221; with
- &#8220;condition.&#8221;
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>FR 31
-
- <td width="118">
- <p>14.9.1.4<br>
-&nbsp;[Axioms]
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>This section states that an
- axiom-definition defines a new semantics axiom but is
- unusually vague as to what those semantics might be.
-
- <p>
-
- <p>The use of the '==' and '!='
- with completely new semantics, unrelated to anything we
- have seen before in C++ is both unwise and confusing,
- especially if the types involved in the expressions happen
- to have operator== and operator!= defined.
-
- <p>We strongly suggest use of
- different tokens, e.g. <font face=
- "Consolas, monospace">&#61683;, and opposed to this obscure
- usage/overload.</font>
-
- <p>The description is very
- vague. How many times is an implementation permitted to
- replace one expression by another one when they have side
- effects?
-
- <p>
-
- <td width="536">
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>DE-15
-
- <td width="118">
- <p>14.9.1.4
-
- <td width="85">
- <p>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <p>DE-15 There is no implementation experience for axioms.
- Use of axioms is an area of active scientific research. It
- is likely that syntax changes will become necessary to make
- good use of axioms; having the syntax space already crowded
- is unhelpful. Axioms ought to be useful in concepts
- applicable to floating-point types (such as
- EqualityComparable), but IEEE floating-point types have
- special values such as NaN violating the axioms.
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 123
-
- <td width="118">
- <p align="justify">14.9.1.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- time behaviour. A concept describes purely syntactic
- requirements at compile time. Where an auto concept will
- match anything that meets the syntax requirements, there is
- no way to know if the axioms will be met or not, and no way
- to opt out via some kind of negative concept map.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add a paragraph making axioms ill-formed
- inside an auto concept.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="justify" style=
- "margin-right: -0.18in; margin-bottom: 0in">UK<br>
- 124
-
- <p>
-
- <td width="118">
- <p align="justify">14.9.1.4
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Spelling mistake, double-e in were.
-
- <td width="536">
- <p align="left">weere -&gt; were
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 125
-
- <td width="118">
- <p align="justify">14.9.1.4
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">The implicit
- equality comparison operator available to axioms has no
- semantic. It is not clear what expressing the condition if(
- a == b ) { conditional-axiom } would mean if a and b are
- not truly EqualityComparable. We suspect the intent of the
- 'implicit defefinition' is to support declaring the
- equivalence of statements, a context where the operator
- will not actually be evaluated.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Define the semantics of the implicitly
- declared comparison operators, or restrict their usage to
- declaring equivalence between statements.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 126
-
- <td width="118">
- <p align="justify">14.9.4
-
- <td width="85">
- <p align="justify">41
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Move the second sentence to the Requires
- clause in paragraph 42.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 127
-
- <td width="118">
- <p align="justify">14.9.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Provide a
- diagram clearly showing refinement relationship between the
- different support concepts. Several were created during
- development of this clause and they were very helpful.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Provide the diagram.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 128
-
- <td width="118">
- <p align="justify">14.9.4
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">A non-normative
- note: [Note: 'move only' types that are constructible from
- rvalue references may be Returnable, but not
- CopyConstructible(20.1.8) - end note]
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>JP 20
-
- <td width="118">
- <p align="left">14.9.4
-
- <td width="85">
- <p align="left">2<sup>nd</sup> <font size="2"
- style="font-size: 11pt">para</font>
-
- <td width="62">
- <p>te
-
- <td width="514">
- <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 &#8220;3.9
- Types&#8221;, so we think that it is necessary to add
- concept to trivially copyable type like
- &#8220;TriviallyCopyableType&#8221;.
-
- <p align="left" style=
- "margin-left: 0.2in; text-indent: -0.2in; margin-top: 0.04in">
- <br>
-
- <td width="536">
- <p align="left" style="margin-top: 0.04in">Add
- TriviallyCopyableType that is trivially copyable type as
- concept.
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 129
-
- <td width="118">
- <p align="justify">14.10.1,<br>
-&nbsp;20.1.2
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">It should be
- possible to support boolean constant expressions as
- requirements without resorting to defining the True concept
- in the library. Boolean expressions are very likely to be
- constraints when deadline with non-type template parameters
- and variadic templates, and constraints in these cases
- should feel just as natural as constraints on the type
- system.
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p align="left">US 60
-
- <td width="118">
- <p align="left">14.10.1
-
- <td width="85">
- <p align="left">1
-
- <td width="62">
- <p align="left">te
-
- <td width="514">
- <p align="left">The use of &amp;&amp; as the separator for
- a list of requirements has shown itself to be a serious
- teachability problem. The mental model behind
- &#8216;&amp;&amp;&#8217; treats concepts as simple
- predicates, which ignores the role of concepts in
- type-checking templates. The more programmers read into the
- &#8216;&amp;&amp;&#8217; (and especially try to fake ||
- with &amp;&amp; and !), the harder it is for them to
- understand the role of concept maps. Simply changing the
- separator to &#8216;,&#8217; would eliminate a significant
- source of confusion.
-
- <td width="536">
- <p align="left">Replace
-
- <p align="left">
- requirement-list:
-
- <p align="left">requirement-list
- ... [opt] &amp;&amp; requirement
-
- <p align="left">requirement ...
- [opt]
-
- <p align="left"><br>
-
- <p align="left">with
-
- <p align="left"><br>
-
- <p align="left">requirement-list
-
- <p align="left">requirement-list
- ...[opt] , requirement
-
- <p align="left">requirement ...
- [opt]
-
- <p align="left"><br>
-
- <p align="left">In 14.5.4p6,
- replace the first sentence with:
-
- <p align="left">The
- instantiation of an expansion produces a comma-separated
- list E1, E2, ..., EN, where N is the number of elements in
- the pack expansion parameters.
-
- <p align="left"><br>
-
- <td width="178">
- <p align="left"><br>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 130
-
- <td width="118">
- <p align="justify">15.1
-
- <td width="85">
- <p align="justify">4
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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.
- That is in conflict with the sentance "When the last
- remaining active handler for the exception exits by any
- means other than throw; the temporary object is destroyed
- and the implementation may deallocate the memory for the
- temporary object;"
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Update sentence to allow for exceptions
- held in excpetion_ptr objects.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 131
-
- <td width="118">
- <p align="justify">15.3
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">A handler
- catching its parameter by rvalue-reference is syntactically
- valid, but will never be activated.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Disallow handlers catching by
- rvalue-reference.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 132
-
- <td width="118">
- <p align="justify">15.3
-
- <td width="85">
- <p align="justify">16
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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
- constructor template taking arguments by non-const
- reference. A footnote explaining such cases would be
- helpful, or the sentance could be rewritten using
- copy-initialization instead of directly calling a copy
- constructor.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Rewite using copy-initialization rather
- than directly invoking the copy constructor
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 133
-
- <td width="118">
- <p align="justify">15.4
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Template aliases
- have the same semantics as a typedef so should also be
- disallowed
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">add "or alias-declaration" after "shall not
- appear in a typedef declaration".
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 134
-
- <td width="118">
- <p align="justify">15.4
-
- <td width="85">
- <p align="justify">6
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Either strike the quoted sentance, or add a
- note explaining why it is worth calling special attention
- to this class.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 135
-
- <td width="118">
- <p align="justify">15.4
-
- <td width="85">
- <p align="justify">8
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <p align="left">Unclear if std::unexpected is called before
- or after the function arguments have been destroyed
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 136
-
- <td width="118">
- <p align="justify">15.4
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ge
-
- <td width="514">
- <p align="left">Exception specifications have proven close
- to worthless in practice, while adding a measurable
- overhead to programs. The feature should be deprecated. The
- one exception to the rule is the empty throw specification
- which could serve a legitimate optimizing role if the
- requirement to call the runtime unexpected mechanism was
- relaxed in this case.
-
- <td width="536">
- <p align="left">Move 15.4 and the parts of 15.5 that refer
- to it to Appendix D. Replace 15.4 with a simpler
- specification for empty throw specifications, where the
- std::unexpected call is conditionally supported allowing
- vendors to choose between optimizing and providing runtime
- checks. Ideally require vendors to provide a mode where the
- runtime checks are always disabled.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 137
-
- <td width="118">
- <p align="justify">15.5
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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
- forward reference to the library clause 18.7.5
-
- <p align="left"><br>
-
- <td width="536">
- <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 width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 138
-
- <td width="118">
- <p align="justify">15.5.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <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 width="536">
- <p align="left">Merge the third bullet into the first
- bullet as a note or example.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 139
-
- <td width="118">
- <p align="justify">15.5.1
-
- <td width="85">
- <p align="justify">1
-
- <td width="62">
- <p align="justify">Te
-
- <td width="514">
- <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,
- This is clearly not true.
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Strike the word 'user' from the first
- bullet point.
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 140
-
- <td width="118">
- <p align="justify">15.5.2
-
- <td width="85">
- <p align="justify">2
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">The detailed
- specification can fool people into thinking an exception
- will automatically be translated into bad_exception, where
- the default behaviour of std::unexcepted is to immediately
- call std::terminate();
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add a note highlighting the default
- behaviour of std::unexpected if the user does not supply a
- hander-function
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 141
-
- <td width="118">
- <p align="justify">15.6
-
- <td width="85">
- <p align="justify"><br>
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">This whole
- subclause is redundant due to 15.1p5 and 15.3p17
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Strike 15.6
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 142
-
- <td width="118">
- <p align="justify">16.3.5
-
- <td width="85">
- <p align="justify">3
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">This paragraph
- opens with "[ Note" but has no corresponding "end note ]"
-
- <p align="left"><br>
-
- <td width="536">
- <p align="left">Add "end note ]"
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
- <p>UK<br>
- 143
-
- <td width="118">
- <p align="justify">16.3.5
-
- <td width="85">
- <p align="justify">7
-
- <td width="62">
- <p align="justify">Ed
-
- <td width="514">
- <p align="left">Example uses #define t(x,y.z) x ## y ## z
-
- <td width="536">
- <p align="left">Change "x,y.z" to "x,y,z"
-
- <td width="178">
- <p>
-
- <tr valign="top">
- <td width="29">
         <p align="left">US 2
 
- <td width="118">
+ <td width="75">
         <p align="left">17-30
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge/te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         active issues identified in WG21 N2806, C++ Standard
         Library Active Issues, must be addressed and appropriate
@@ -8937,60 +73,63 @@
         <p align="left">
         <font color="#000080"><u><a href=
         "http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html">
- http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html></u></font>
+
http://www.open-std.org/><br>
+ <a href=
+ "
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html">
+ jtc1/sc22/wg21/docs/lwg-active.html</a></u></font>
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Acknowledged<tr valign="top">
       <td width="29">
         <p>FR 2
 
- <td width="118">
+ <td width="75">
         <p>General<br>
 &nbsp;Comment
 
- <td width="85">
+ <td width="31">
         <p>Library
 
- <td width="62">
+ <td width="38">
         <p>ge
 
- <td width="514">
+ <td width="375">
         <p>The adoption of the library `constexpr' proposal was not
         reflected in the draft, despite formal WG21 committee vote.
 
- <td width="536">
+ <td width="466">
         <p>FR 2
 
- <td width="178">
+ <td width="225">
         <p>Editorial; sent to Pete Becker<tr valign="top">
       <td width="29">
         <p align="left">US 61
 
- <td width="118">
+ <td width="75">
         <p align="left">17 onward
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p>The concepts core language feature is applied to only
         some of the Standard Library clauses, and even then not
         always consistently.
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Review all
         clauses of the Standard Library, and consistently apply
@@ -9000,77 +139,77 @@
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agreed. Duplicates CA2<tr valign="top">
       <td width="29">
         <p>CA-2
 
- <td width="118">
+ <td width="75">
         <p style="margin-top: 0.04in">17 Library
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>Ge
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         &#8220;Concepts&#8221; are a significant new addition to
         the language, but are not exploited uniformly in the
         library as documented in CD 14882.
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Fix
         the standard library so that &#8220;Concepts&#8221; are
         used appropriately in the library.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agreed; We intend to address this.<tr valign="top">
       <td width="29">
         <p align="left">US 62
 
- <td width="118">
+ <td width="75">
         <p align="left">17-30
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">Provide concepts
         and requirements clauses for all standard library templates
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Agreed. Duplicates CA2<br>
 
     <tr valign="top">
       <td width="29">
         <p>US 63
 
- <td width="118">
+ <td width="75">
         <p style="margin-top: 0.04in; margin-bottom: 0.04in">17-30
 
         <p>
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>The behavior of the library in the presence of threads
         is incompletely specified.
 
@@ -9084,10 +223,10 @@
         at() to different characters in the same non-const string
         really introduce a data race?
 
- <td width="536">
+ <td width="466">
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     17 SG: should go to threads group; misclassified in document<p>
@@ -9096,16 +235,16 @@
       <td width="29">
         <p>DE-2
 
- <td width="118">
+ <td width="75">
         <p>17 through 30
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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
@@ -9113,20 +252,20 @@
         standard library apparently has not been reviewed for
         marking non-single-parameter constructors as "explicit".
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Robert Klarer to address this one<tr valign="top">
       <td width="29">
         <p>JP 21
 
- <td width="118">
+ <td width="75">
         <p align="left">
         <br>
 
@@ -9141,13 +280,13 @@
 &nbsp;27.8.1,<br>
 &nbsp;28.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Support of char16_t/char32_t is insufficient. The basic_xxx
         classes of &lt;iostream&gt;, &lt;fstream&gt;,
@@ -9158,7 +297,7 @@
         Functions such as stoi, to_string in &#8216;21.4 Numeric
         Conversion&#8217; does not support char16_t/char32_t types.
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Add commented
         lines corresponding to char16_t, char32_t.
@@ -9958,7 +1097,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Previously considered; we decided not to do it. We believe it is not too
@@ -9968,24 +1107,24 @@
         <p>UK<br>
         144
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">List of contents of library should be
         extened to cover new clauses
 
- <td width="536">
+ <td width="466">
         <p align="left">Add "regular expressions, atomic operations
         and threads"
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -9993,27 +1132,27 @@
         <p>UK<br>
         145
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         <span lang="en-US">Summary of numeric facilities should
         mention random numbers</span>
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add random number framework to the list of
         library facilities
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10021,24 +1160,24 @@
         <p>UK<br>
         146
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Add a summary paragraph for regular
         expressions
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a summary paragraph for regular
         expressions
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10046,22 +1185,22 @@
         <p>UK<br>
         147
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Add a summary paragraph for threads
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a summary paragraph for threads
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10069,16 +1208,16 @@
         <p>UK<br>
         148
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 12
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -10086,11 +1225,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Make sure tables are rendered in the
         section to which they relate.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10098,28 +1237,28 @@
         <p>UK<br>
         149
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Define Utf16-oriented stream classes and
         Uft32-oriented stream classes for streams of
         char16_t/char32_t values.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10127,16 +1266,16 @@
         <p>UK<br>
         150
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -10146,7 +1285,7 @@
         with singular iterators suggest the term 'singular object'
         or 'the object is in a singular state'.
 
- <td width="536">
+ <td width="466">
         <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
@@ -10161,7 +1300,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10169,26 +1308,26 @@
         <p>UK<br>
         151
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Missing
         crossreference to 17.3.17 [defns.repositional.stream]
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add cross-reference in the existing empty
         brackets
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10196,16 +1335,16 @@
         <p>UK<br>
         152
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.12
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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'
@@ -10213,10 +1352,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Clarify terms and usage
 
- <td width="178">
+ <td width="225">
         <p>
 
     we think we're removing this; Howard to create LWG issue. Howard, see [func.referenceclosure.cons]<tr valign="top">
@@ -10224,16 +1363,16 @@
         <p>UK<br>
         153
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.17
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">If a
         repositional stream can only seek to a position previously
         encountered, then an arbitrary-positional-stream cannot
@@ -10241,11 +1380,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Strike the word 'only'. A note might be
         added to reinforce the intent
 
- <td width="178">
+ <td width="225">
         <p>
 
     editorial; sent to Pete Becker<tr valign="top">
@@ -10256,23 +1395,23 @@
 
         <p>
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.20
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Missing definition of a stable partition
         algorithm
 
- <td width="536">
+ <td width="466">
         <p align="left">Add definition from 25.2.12p7
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10280,24 +1419,24 @@
         <p>UK<br>
         155
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Add clause 28 to list that use this
         definition of character
 
- <td width="536">
+ <td width="466">
         <p align="left">Add clause 28 to list that use this
         definition of character
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10305,27 +1444,27 @@
         <p>UK<br>
         156
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.3.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Add regular
         expressions to set of templates using character container
         type
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add regular expressions to set of templates
         using character container type
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10333,16 +1472,16 @@
         <p>UK<br>
         157
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Add concepts to
         the ordered list of presentation
 
@@ -10350,10 +1489,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add concepts into the sequence
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10361,26 +1500,26 @@
         <p>UK<br>
         158
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">templates are neither classes nor functions
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace
         'classes' and 'functions' with 'classes and class
         templates' and 'functions and function templates'
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10388,27 +1527,27 @@
         <p>UK<br>
         159
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 152
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Strike the footnote, or replace 'existing'
         with 'original' or similar
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10416,16 +1555,16 @@
         <p>UK<br>
         160
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -10437,10 +1576,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace 'Requires' with 'Preconditions'
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10448,16 +1587,16 @@
         <p>UK<br>
         161
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -10466,10 +1605,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Strike 17.5.2.4p4
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10477,16 +1616,16 @@
         <p>UK<br>
         162
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Clause 30 makes
         use of a 'Synchronization' semantic element, that
         frequently appears either between Effects: and
@@ -10494,12 +1633,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add 'Synchronization' to the list either
         between Effects: and Postconditions:, or between Returns:
         and Throws:.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10507,16 +1646,16 @@
         <p>UK<br>
         163
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Many functions
         are defined as "Effects: Equivalent to a...", which seems
         to also define the preconditions, effects, etc. But this is
@@ -10524,11 +1663,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Introduce an explicit "Equivalent to",
         which defines all of the properties of the function.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Tom Plum to open LWG issue; we believe this is related to LWG625<tr valign="top">
@@ -10536,22 +1675,22 @@
         <p>UK<br>
         164
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.3.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Use better names
         for the examples. Ideally totally replace the need by
         constraining all templates in library, so that real
@@ -10560,7 +1699,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10568,17 +1707,17 @@
         <p>UK<br>
         165
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.3.2.2,<br>
 &nbsp;17.5.3.2.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">constraints on
         bitmask and enumation types were supposed to be tightened
         up as part of the motivation for the constexpr feature -
@@ -10586,11 +1725,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Adopt wording in line with the motivation
         described in N2235
 
- <td width="178">
+ <td width="225">
         <p>
 
     Robert Klarer to review<tr valign="top">
@@ -10598,26 +1737,26 @@
         <p>UK<br>
         166
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.3.2.4.1,<br>
 &nbsp;17.5.3.3
 
         <p align="justify"><br>
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">List of library clauses should go up to 30,
         not 27
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace initial refernce to ch27 with ch30
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10625,28 +1764,28 @@
         <p>UK<br>
         167
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.5.3.4<br>
 &nbsp;Private<br>
 &nbsp;members
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Comment marker in wrong place.
 
- <td width="536">
+ <td width="466">
         <p align="left">Change: //
         streambuf* sb; exposition only to streambuf* sb; //
         exposition only To reflect actual usage.
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10654,16 +1793,16 @@
         <p>UK<br>
         168
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">We should make
         it clear (either by note or normatively) that namespace std
         may contain inline namespaces, and that entities specified
@@ -10674,13 +1813,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Howard will create issue to adopt UK words (some have reservations whether
@@ -10689,16 +1828,16 @@
         <p>UK<br>
         169
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This phrasing
         contradicts later freedom to implement the C standard
         library portions in the global namespace as well as std.
@@ -10706,10 +1845,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Resolve conflict in either place
 
- <td width="178">
+ <td width="225">
         <p>
 
     Bill Plaugher to open issue. If the wording is too broad we need to add an
@@ -10718,16 +1857,16 @@
         <p>UK<br>
         170
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -10739,14 +1878,14 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a new header &lt;std&gt; that has the
         effect of including everything in tables 13 and 14, except
         &lt;iosfwd&gt; and &lt;cassert&gt;. Add an additional
         header &lt;fwd&gt; that adds all declarations from
         &lt;std&gt; but no definitions.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Alisdair to open issue. We prefer
@@ -10757,16 +1896,16 @@
         <p>UK<br>
         171
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Does
         freestanding implementation require a full implementation
         of all listed headers? The reference to abort, at_exit and
@@ -10777,12 +1916,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Either strike the references to abort,
         at_exit and exit, or clarify which headers only require
         partial support.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10790,26 +1929,26 @@
         <p>UK<br>
         172
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">No reference to
         new functions quick_exit and at_quick_exit
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add reference to quick_exit and
         at_quick_exit
 
- <td width="178">
+ <td width="225">
         <p>
 
     NAD. We do not belive at_exit and at_quick_exit should be required by
@@ -10818,27 +1957,27 @@
         <p>UK<br>
         173
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">table 15
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         &lt;initializer_list&gt; is missing from headers required
         in freestanding implementations.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add 18.8, initializer lists,
         &lt;initializer_list&gt;, to the end of the table.
 
- <td width="178">
+ <td width="225">
         <p>
 
     LWG is interested in N2814, but we're concerned whether CWG will accept
@@ -10846,17 +1985,17 @@
       <td width="29">
         <p>JP 23
 
- <td width="118">
+ <td width="75">
         <p align="left">17.6.2.4
 
- <td width="85">
+ <td width="31">
         <p align="left">2<sup>nd</sup> <font size="2"
         style="font-size: 11pt">para, Table 15</font>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">There is a
         freestanding implementation including &lt;type_traits&gt;,
@@ -10870,12 +2009,12 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         &lt;type_traits&gt;, &lt;array&gt;, &lt;ration&gt; to Table
         15.
 
- <td width="178">
+ <td width="225">
         <p>
 
     LWG is interested in N2814, but we're concerned whether CWG will accept
@@ -10886,16 +2025,16 @@
         <p>UK<br>
         174
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.3.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -10904,13 +2043,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10918,26 +2057,26 @@
         <p>UK<br>
         175
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.4.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Local types can
         now be used to instantiate templates, but don't have
         external linkage
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the reference to external linkage
 
- <td width="178">
+ <td width="225">
         <p>
 
     we accept the proposed solution. Martin will draft an issue.<tr valign="top">
@@ -10945,25 +2084,25 @@
         <p>UK<br>
         176
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.4.3.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 175
 
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Reference to namespace ::std should be
         17.6.4.2
 
- <td width="536">
+ <td width="466">
         <p align="left">Change referfence from 17.6.4.3 to 17.6.4.2
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10971,26 +2110,26 @@
         <p>UK<br>
         177
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.4.3.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Strike the sentence
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -10998,25 +2137,25 @@
         <p>UK<br>
         178
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.4.8
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Strike the sentence
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11024,16 +2163,16 @@
         <p>UK<br>
         179
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.4.8
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">According to the
         4th bullet there is a problem if "if any replacement
         function or handler function or destructor operation throws
@@ -11042,28 +2181,28 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace the word 'throws' with 'propogates'
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agreed. Alisdair will draft an issue.<tr valign="top">
       <td width="29">
         <p>JP 22
 
- <td width="118">
+ <td width="75">
         <p align="left">17.6.5.7
 
- <td width="85">
+ <td width="31">
         <p align="left">4<sup>th</sup> <font size="2"
         style="font-size: 11pt">para, 1<sup>st</sup>
         line</font>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         statement below describes relation among two or more
         threads using words &#8220;between threads&#8221;:<br>
@@ -11077,7 +2216,7 @@
         such case, &#8220;among&#8221; is preferred instead of
         &#8220;between&#8221;.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Change "between threads" to "among threads".
 
@@ -11085,7 +2224,7 @@
         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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11093,16 +2232,16 @@
         <p>UK<br>
         180
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.5.10
 
- <td width="85">
+ <td width="31">
         <p align="justify">1, 4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">It should not be
         possible to strengthen the exception specification for
         virtual functions as this could break user code. Note this
@@ -11113,11 +2252,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add restriction that exception
         specification of virtual functions cannot be tightened.
 
- <td width="178">
+ <td width="225">
         <p>
 
     NAD, the standard already has the desired restriction.<tr valign="top">
@@ -11125,16 +2264,16 @@
         <p>UK<br>
         181
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.5.10
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 186
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -11142,12 +2281,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Clarify that this note does not mean the
         functions are genuinely declared with the specification,
         but are treated as-if.
 
- <td width="178">
+ <td width="225">
         <p>
 
     We agree that the footnote is wrong and it will be removed. Pete will handle
@@ -11156,16 +2295,16 @@
         <p>UK<br>
         182
 
- <td width="118">
+ <td width="75">
         <p align="justify">17.6.5.10
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 188
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">It is very
         helpful to assume all exceptions thrown by the standard
         library derive from std::exception. The 'encouragement' of
@@ -11173,10 +2312,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Make this footnote normative
 
- <td width="178">
+ <td width="225">
         <p>
 
     NAD. We cannot mandate all standard-library functions that might use some
@@ -11185,16 +2324,16 @@
         <p>UK<br>
         184
 
- <td width="118">
+ <td width="75">
         <p align="justify">18 -&gt; 30
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The new
         alias-declaration syntax is generally easier to read than a
         typedef declaration. This is especially true for complex
@@ -11202,29 +2341,29 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace all typedef declarations in the
         standard library with alias-declarations, except in the
         standard C library.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 24
 
- <td width="118">
+ <td width="75">
         <p align="left">18
 
- <td width="85">
+ <td width="31">
         <p align="left">2<sup>nd</sup> <font size="2"
         style="font-size: 11pt">para, Table 16</font>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Subclauses are listed in Table 16 as:
 
@@ -11240,7 +2379,7 @@
         "text-indent: 0.06in; margin-top: 0.04in">"18.7 Exception
         handling &#8230;".
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-left: 0.06in; text-indent: -0.06in; margin-bottom: 0in">
         Sort them in the increasing order<br>
@@ -11257,55 +2396,55 @@
         <p align="left" style=
         "text-indent: 0.06in; margin-top: 0.04in"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 25
 
- <td width="118">
+ <td width="75">
         <p align="left">18.1
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>FR 32
 
- <td width="118">
+ <td width="75">
         <p>18.2.1<br>
 &nbsp;[Numeric<br>
 &nbsp;limits]
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>The definition of
         numeric_limits&lt;&gt; as requiring a regular type is both
         conceptually wrong and operationally illogical. As we
@@ -11318,30 +2457,30 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>DE-16
 
- <td width="118">
+ <td width="75">
         <p>18.2.1
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">DE-16 The class
         template numeric_limits should not specify the Regular
@@ -11356,31 +2495,31 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p>Specify a concept requirement with fewer constraints as
         appropriate, for example SemiRegular.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 26
 
- <td width="118">
+ <td width="75">
         <p align="left">18.2.1.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         numeric_limits does not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -11422,23 +2561,23 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>DE-17
 
- <td width="118">
+ <td width="75">
         <p>18.2.6
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">DE-17 The class
         type_index should be removed; it provides no additional
@@ -11446,12 +2585,12 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p>Specify concept maps for "const type_info *" as required
         by the ordered and unordered containers and remove the
         class type_index.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11459,42 +2598,42 @@
         <p>UK<br>
         185
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.3.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">There is no
         header &lt;stdint&gt;, it should either be &lt;stdint.h&gt;
         or &lt;cstdint&gt;
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace &lt;stdint&gt; with &lt;cstdint&gt;
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>DE-18
 
- <td width="118">
+ <td width="75">
         <p>18.4
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">DE-18 The
         proposed C++ standard makes a considerable number of
@@ -11516,14 +2655,14 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11531,16 +2670,16 @@
         <p>UK<br>
         186
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 221
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -11549,10 +2688,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the footnote
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11560,27 +2699,27 @@
         <p>UK<br>
         187
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">9
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Clarify the intended meaing of "thread
         safe"
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11588,16 +2727,16 @@
         <p>UK<br>
         188
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">12
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The function
         _Exit does not appear to be defined in this standard.
         Should it be added to the table of functions
@@ -11605,10 +2744,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Depends on where _Exit comes from
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11616,21 +2755,21 @@
         <p>UK<br>
         189
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.4, 18.7
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The addition of the [[noreturn]] attribute
         to the language will be an important aid for static
         analysis tools.
 
- <td width="536">
+ <td width="466">
         <p align="left">The following
         functions should be declared in C++ with the [[noreturn]]
         attribute: abort exit quick_exit terminate unexpected
@@ -11638,31 +2777,31 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 27
 
- <td width="118">
+ <td width="75">
         <p align="left">18.4, 18.9,<br>
 &nbsp;18.7.2.2,<br>
 &nbsp;18.7.3.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">
         Consider to add the attribute [[noreturn]] to such
         functions,
@@ -11687,7 +2826,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11695,28 +2834,28 @@
         <p>UK<br>
         190
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.5.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">various
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">It is not entirely clear how the current
         specification acts in the presence of a garbage collected
         implementation.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11724,21 +2863,21 @@
         <p>UK<br>
         191
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.5.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Rephrase the
         second bullet in terms of a new handler being installed,
         and update any definition of handler function necessary to
@@ -11746,7 +2885,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11754,16 +2893,16 @@
         <p>UK<br>
         192
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.5.1.2
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -11773,11 +2912,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Fix 5.3.4p7 by required std::bad_alloc
         rather than std::length_error
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11785,27 +2924,27 @@
         <p>UK<br>
         193
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.5.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Change 3rd bullet: call either abort(),
         exit() or quick_exit();
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11813,16 +2952,16 @@
         <p>UK<br>
         194
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The inclusion of
         type_index and hash&lt;type_index&gt; in &lt;typeinfo&gt;
         brings dependencies into &lt;typeinfo&gt; which are
@@ -11831,30 +2970,30 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move type_index and hash&lt;type_index&gt;
         out of &lt;typeinfo&gt; and into a new header,
         &lt;typeindex&gt;.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 28
 
- <td width="118">
+ <td width="75">
         <p align="left">18.6,<br>
 &nbsp;18.7,<br>
 &nbsp;19.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Errors reported by Exception classes are of types char or
         std::string only. For example, std::exception is declared
@@ -11864,31 +3003,31 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Consider other types.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 29
 
- <td width="118">
+ <td width="75">
         <p align="left">18.7.6
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         throw_with_nested does not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -11911,55 +3050,55 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 30
 
- <td width="118">
+ <td width="75">
         <p align="left">18.7.6
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Consider nested_exception to support tree structure.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 31
 
- <td width="118">
+ <td width="75">
         <p align="left">18.7.6
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">It
         is difficult to understand in which case nested_exception
         is applied.
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Consider to add
         a sample program which rethrows exception.
@@ -11967,7 +3106,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -11975,16 +3114,16 @@
         <p>UK<br>
         195
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.8
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The class
         definition of std::initializer_list contains concept-maps
         to Range which should be out of the class, and in
@@ -11994,11 +3133,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Delete the two concept maps from
         std::initializer_list.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -12006,21 +3145,21 @@
         <p>UK<br>
         196
 
- <td width="118">
+ <td width="75">
         <p align="justify">18.8.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Concept maps for initializer_list to Range
         should not be in language support headers, but instead in
         iterator concepts.
 
- <td width="536">
+ <td width="466">
         <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
@@ -12030,7 +3169,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -12038,22 +3177,22 @@
         <p>UK<br>
         197
 
- <td width="118">
+ <td width="75">
         <p align="justify">19
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Provide a
         constructor for every exception class in clause 19
         accepting a std::string by rvalue reference, with the
@@ -12061,23 +3200,23 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 32
 
- <td width="118">
+ <td width="75">
         <p align="left">19.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Messages returned by the member function what() of standard
         exception classes seem difficult to judge.
@@ -12118,34 +3257,34 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>US 64
 
- <td width="118">
+ <td width="75">
         <p>19.3
 
- <td width="85">
+ <td width="31">
         <p>1
 
- <td width="62">
+ <td width="38">
         <p>Ge
 
- <td width="514">
+ <td width="375">
         <p><font color="#000000">&#8220;</font> See also: ISO C
         7.1.4, 7.2, Amendment 1 4.3.<font color="#000000">&#8221;
         It is unclear why this cross reference is here. Amendment 1
         was to C89, not C99.</font>
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Delete this
         cross reference. If necessary, expand the main text to
@@ -12153,7 +3292,7 @@
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     The statement made in the comment was already aired prior to the last vote.
@@ -12163,16 +3302,16 @@
       <td width="29">
         <p align="left">US 65
 
- <td width="118">
+ <td width="75">
         <p align="left">20
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <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
@@ -12180,7 +3319,7 @@
         don't have any obvious connection to allocators, including
         basic concepts and simple components like pair and tuple.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Sketch of proposed resolution: Eliminate scoped allocators,
         replace allocator propagation traits with a simple uniform
@@ -12206,7 +3345,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -12214,21 +3353,21 @@
         <p>UK<br>
         198
 
- <td width="118">
+ <td width="75">
         <p align="justify">20
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The organization of clause 20 could be
         improved to better group related items, making the standard
         easier to navigate.
 
- <td width="536">
+ <td width="466">
         <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
@@ -12261,7 +3400,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree that this is editorial -- forward to project editor. (effective
@@ -12270,16 +3409,16 @@
         <p>UK<br>
         199
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.1.1, 20.1.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The requirement
         that programs do not supply concept_maps should probably be
         users do not supply their own concept_map specializations.
@@ -12291,10 +3430,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace the term 'program' with 'user'.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree change 'program' to 'user' in clauses 20.1.1 and 20.1.2<tr valign="top">
@@ -12302,21 +3441,21 @@
         <p>UK<br>
         200
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.1.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Either require
         CopyConstructible&lt;F&gt; as part of Predicate, or create
         a refined concept, StdPredicate, used throughout the
@@ -12325,7 +3464,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     We agree that adding constraints to predicate is a good idea. Predicate
@@ -12338,20 +3477,20 @@
         <p>UK<br>
         201
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The Consistency axiom for
         LessThanComparable will not compile.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a requires
         clause to the Consistency axiomL requires
         HasLessEquals&lt;T&gt; &amp;&amp;
@@ -12361,7 +3500,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     After consultation with the submitter, we agreed that the suggestion was in
@@ -12369,21 +3508,21 @@
       <td width="29">
         <p>JP 33
 
- <td width="118">
+ <td width="75">
         <p align="left">20.1.5
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         LessThanComparable and EqualityComparable don't correspond
         to NaN.
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Apply
         concept_map to these concepts at FloatingPointType
@@ -12391,7 +3530,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     We believe that no change is necessary, but it should be reviewed by a group
@@ -12401,57 +3540,57 @@
       <td width="29">
         <p>US 66
 
- <td width="118">
+ <td width="75">
         <p>20.1.10
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>Application of the "Regular" concept to floating-point
         types appears to be controversial (see long discussion on
         std-lib reflector).
 
- <td width="536">
+ <td width="466">
         <p>State that the &#8220;Regular&#8221; concept does not
         apply to floating-point types.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Recommend that we handle the same as JP 33.<tr valign="top">
       <td width="29">
         <p>JP 34
 
- <td width="118">
+ <td width="75">
         <p align="left">20.2
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         Though N2672 pointed at adding
         "#include&lt;initializer_list&gt;", it isn't reflected.
 
- <td width="536">
+ <td width="466">
         <p align="left">add
         followings
 
         <p align="left" style="margin-top: 0.04in">
         #include &lt;initializer_list&gt; // for concept_map
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree that the omission of <code>#include
@@ -12465,53 +3604,53 @@
       <td width="29">
         <p>US 67
 
- <td width="118">
+ <td width="75">
         <p>20.2.1
 
- <td width="85">
+ <td width="31">
         <p>&#182; 5 first sent.
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>Some connective words are missing.
 
- <td width="536">
+ <td width="466">
         <p>Insert &#8220;corresponding to&#8221; before &#8220;an
         lvalue reference type.&#8221;
 
- <td width="178">
+ <td width="225">
         <p>
 
     Yes. Forward to project editor.<tr valign="top">
       <td width="29">
         <p>JP 35
 
- <td width="118">
+ <td width="75">
         <p align="left">20.2.3
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo,
 
         <p align="left">"stdforward" should be
         "std::forward"
 
- <td width="536">
+ <td width="466">
         <p align="left">Correct typo.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Yes. Forward to project editor.<tr valign="top">
@@ -12519,16 +3658,16 @@
         <p>UK<br>
         202
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -12536,36 +3675,36 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the std:: qualification from these
         references to pair.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Yes. Forward to project editor.<tr valign="top">
       <td width="29">
         <p>US 68
 
- <td width="118">
+ <td width="75">
         <p>20.2.12
 
- <td width="85">
+ <td width="31">
         <p>IntegralLike
 
- <td width="62">
+ <td width="38">
         <p>te/ed
 
- <td width="514">
+ <td width="375">
         <p>The code defining the context is syntactically
         incorrect.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Editorial. The correct section is 20.1.12, not 20.2.12. Forward to project
@@ -12574,16 +3713,16 @@
         <p>UK<br>
         203
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.3.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">1-4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The ratio_xyz
         types have a misplaced '}'. For example: template &lt;class
         R1, class R2&gt; struct ratio_add { typedef see below}
@@ -12591,43 +3730,43 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the '}' to after the typedef: template
         &lt;class R1, class R2&gt; struct ratio_add { typedef see
         below type; };
 
- <td width="178">
+ <td width="225">
         <p>
 
     Yes. Forward to project editor.<tr valign="top">
       <td width="29">
         <p>JP 36
 
- <td width="118">
+ <td width="75">
         <p align="left">20.4.2.1
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo.
 
         <p align="left" style="margin-top: 0.04in">"it
         it" should be "it is"
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Correct typo.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Yes. Forward to project editor.<tr valign="top">
@@ -12635,16 +3774,16 @@
         <p>UK<br>
         204
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.5
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 41
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -12652,11 +3791,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Restore aligned_union template that was
         removed by LWG issue 856.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree that aligned_union is not completely redundant. We are investigating
@@ -12664,24 +3803,24 @@
       <td width="29">
         <p>US 69
 
- <td width="118">
+ <td width="75">
         <p>20.5
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>This section, dealing with tuple&lt;&gt;, should be in
         the same section as the similar utility pair&lt;&gt;.
 
- <td width="536">
+ <td width="466">
         <p>Restructure Clause 20 so as to bring these similar
         components together.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Editorial (effective duplicate of UK 198). Forward to project editor.<tr valign="top">
@@ -12689,16 +3828,16 @@
         <p>UK<br>
         205
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.5.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         integral_constant objects should be usable in
         integral-constant-expressions. The addition to the language
@@ -12707,12 +3846,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a constexpr conversion operator to
         class tempalate integral_constant: constexpr operator
         value_type() { return value; }
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree: Add a constexpr conversion operator to class template
@@ -12721,16 +3860,16 @@
         <p>UK<br>
         206
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.5.5
 
- <td width="85">
+ <td width="31">
         <p align="justify">para 4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Currently the
         std says: "In order to instantiate the template
         is_convertible&lt;From, To&gt;, the following code shall be
@@ -12740,7 +3879,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change: "In order to instantiate the
         template is_convertible&lt;From, To&gt;, the following code
         shall be well formed:" To: "The template
@@ -12748,7 +3887,7 @@
         indirectly from true_type if the following code is well
         formed:"
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree with the proposed resolution: Section 20.5.5, Change: &quot;In order to
@@ -12759,20 +3898,20 @@
         <p>UK<br>
         207
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.5.6.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 36
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">suffix "::type" is missing from the some of
         the examples.
 
- <td width="536">
+ <td width="466">
         <p align="left">Change:
         Example:remove_const&lt;const volatile int&gt;::type
         evaluates to volatile int, whereas remove_const&lt;const
@@ -12796,7 +3935,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     We tend to agree. Forward to project editor. Also recommend that the word
@@ -12804,16 +3943,16 @@
       <td width="29">
         <p>JP 37
 
- <td width="118">
+ <td width="75">
         <p align="left">20.5.7
 
- <td width="85">
+ <td width="31">
         <p align="left">Table 41
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo.
 
@@ -12843,31 +3982,31 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         &#8221;.&#8221;
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree. Forward to project editor.<tr valign="top">
       <td width="29">
         <p>US 70
 
- <td width="118">
+ <td width="75">
         <p>20.6
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>Specifications now expressed via narrative text are more
         accurately and clearly expressed via executable code.
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Wherever
         concepts are available that directly match this
@@ -12879,7 +4018,7 @@
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     (The correct reference is section 20.5, not 20.6) We think that this is a
@@ -12889,23 +4028,23 @@
       <td width="29">
         <p>US 71
 
- <td width="118">
+ <td width="75">
         <p>20.6.7
 
- <td width="85">
+ <td width="31">
         <p>Table 51, last row, column 3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>The grammar is incorrect.
 
- <td width="536">
+ <td width="466">
         <p>Change &#8220;conversion are&#8221; to &#8220;conversion
         is&#8221;.
 
- <td width="178">
+ <td width="225">
         <p>
 
     (The correct reference is section 20.5.7, table 41, last row). Agree:
@@ -12913,16 +4052,16 @@
       <td width="29">
         <p>JP 38
 
- <td width="118">
+ <td width="75">
         <p align="left">20.6.12.1.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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>
@@ -12956,7 +4095,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         the following requirements.<br>
         "<font color="#000000">it has a public move constructor
@@ -12965,7 +4104,7 @@
         <p align="left" style="margin-top: 0.04in">Add
         the MoveConstructible.
 
- <td width="178">
+ <td width="225">
         <p>
 
     We were not clear about what the submitter really intended. Requiring that
@@ -12979,20 +4118,20 @@
       <td width="29">
         <p>JP 39
 
- <td width="118">
+ <td width="75">
         <p align="left">20.6.16.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         There are no requires corresponding to F of std::function.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -13043,7 +4182,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree with one correction: <span class="twikiNewLink">CopyConstructible?</span>
@@ -13053,22 +4192,22 @@
       <td width="29">
         <p>JP 40
 
- <td width="118">
+ <td width="75">
         <p align="left">20.6.16.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -13102,28 +4241,28 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Agree, though minor. Forward to project editor (who may disregard).<tr valign="top">
       <td width="29">
         <p>JP 41
 
- <td width="118">
+ <td width="75">
         <p align="left">20.6.16.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         There are no requires corresponding to R and Args of
         UsesAllocator.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -13161,7 +4300,7 @@
 
         <p align="left" style="margin-top: 0.04in">}
 
- <td width="178">
+ <td width="225">
         <p>
 
     This change would be redundant because function&lt;&gt; is already sufficiently
@@ -13169,16 +4308,16 @@
       <td width="29">
         <p>JP 42
 
- <td width="118">
+ <td width="75">
         <p align="left">20.6.16.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">The requires
         are wrong.
@@ -13188,7 +4327,7 @@
         by a definition of function, then it's a mistake to
         designate followings by MoveConstructible.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -13288,7 +4427,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     As with JP 41, these constraints are redundant given that function&lt;&gt; is
@@ -13298,26 +4437,26 @@
         <p>UK<br>
         208
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.6.17
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Consensus is that this is an expansion of the scope of C++0X and so we
@@ -13326,20 +4465,20 @@
         <p>UK<br>
         209
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Smart pointers cannot be used in
         constrained templates
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide
         constraints for smart pointers
 
@@ -13347,7 +4486,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     We look forward to a paper on this topic. We recommend no action until a
@@ -13356,16 +4495,16 @@
         <p>UK<br>
         213
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">std::allocator
         should be constrained to simplify its use on constrained
         contexts. This library component models allocation from
@@ -13377,13 +4516,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">The primary allocator template should be
         constrained to require ObjectType&lt;T&gt; and
         FreeStoreAllocatable&lt;T&gt;. Further operations to be
         constrained as required.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -13391,26 +4530,26 @@
         <p>UK<br>
         214
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7.8
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         raw_storage_iterator needs constraining as an iterator
         adaptor to be safely used in constrained templates
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Constrain the raw_storage_iterator template
 
- <td width="178">
+ <td width="225">
         <p>
 
     We look forward to a paper on this topic. We recommend no action until a
@@ -13419,21 +4558,21 @@
         <p>UK<br>
         210
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7.11
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Specialized algorithms for memory
         managenment need requirements to be easily usable in
         constrained templates
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide
         constraints for all algorithms in 20.7.11
 
@@ -13441,7 +4580,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     We look forward to a paper on this topic. We recommend no action until a
@@ -13449,79 +4588,79 @@
       <td width="29">
         <p>DE-20
 
- <td width="118">
+ <td width="75">
         <p>20.7.12
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>DE-20 The section heading and the first sentence use the
         term "template function", which is undefined.
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Replace
         "template function" by "function template".
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 72
 
- <td width="118">
+ <td width="75">
         <p align="left">20.7.12
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         bind should support move-only functors and bound arguments.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>DE-21
 
- <td width="118">
+ <td width="75">
         <p>20.7.12.1.3
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p>Add the missing specification in the same section, or
         add a cross-reference indicating the section where the
         specification appears.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -13529,16 +4668,16 @@
         <p>UK<br>
         211
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7.12.2.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">11
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -13546,12 +4685,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change signature here and in the synopsis
         to: unique_ptr&amp; operator=(nullptr_t); Strike the
         sentance an note before the Effects clause.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -13559,16 +4698,16 @@
         <p>UK<br>
         212
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.7.13.7
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -13578,55 +4717,55 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move this specification to 18.5. Move the
         declarations into the header &lt;new&gt;.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>DE-22
 
- <td width="118">
+ <td width="75">
         <p>20.7.16.2
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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&lt;T1&gt;, because it (arguably) "contains" T1.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 73
 
- <td width="118">
+ <td width="75">
         <p align="left">20.7.18
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         std::reference_closure template is redundant with
         std::function and should be removed.
@@ -13659,7 +4798,7 @@
 
         <p align="left" style="margin-left: 0.25in"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove 20.7.18
         [func.referenceclosure].
 
@@ -13667,23 +4806,23 @@
 
         <p align="left">Remove 5.1.1 paragraph 12.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 74
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">Scoped
         allocators represent a poor trade-off for standardization,
         since (1) scoped-allocator--aware containers can be
@@ -13711,7 +4850,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove support
         for scoped allocators from the working paper. This includes
         at least the following changes:
@@ -13741,79 +4880,79 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>US 74
 
- <td width="118">
+ <td width="75">
         <p>20.8.2.2
 
- <td width="85">
+ <td width="31">
         <p>(a) synopsis (b) after &#182; 14
 
- <td width="62">
+ <td width="38">
         <p>te/ed
 
- <td width="514">
+ <td width="375">
         <p>A concept name is twice misspelled.
 
- <td width="536">
+ <td width="466">
         <p>Change &#8220;Hasconstructor&#8221; to
         &#8220;HasConstructor&#8221; (twice).
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>US 75
 
- <td width="118">
+ <td width="75">
         <p>20.8.2.2
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>Allocator concepts are incomplete
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">See paper:
         http://www.halpernwightsoftware.com/WG21/n2810_allocator_defects.pdf
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 43
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo.
 
         <p align="left" style="margin-top: 0.04in">
         "alloc" should be "Alloc"
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -13853,7 +4992,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -13861,42 +5000,42 @@
         <p>UK<br>
         215
 
- <td width="118">
+ <td width="75">
         <p align="justify">20.8.3.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">6,8
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Extra pair of
         {}, presumably some formatting code gone awry :
         duration&amp; operator-{-}();
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the {} or fix formatting
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 77
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Allocator-specific move and copy behavior for containers
         (N2525) complicates a little-used and already-complicated
@@ -13920,7 +5059,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove 20.8.4.
 
         <p align="left"><br>
@@ -13932,30 +5071,30 @@
         <p align="left">Remove all references to the facilities in
         20.8.4 and 20.8.5 from clause 23.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 78
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8.12,<br>
         20.8.13.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Add
         an interface that performs the conversion. See the
         attached, Issues with the C++ Standard" paper under Chapter
@@ -13965,23 +5104,23 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 79
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8.12.2.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         [unique.ptr.single.ctor]/5 no longer requires for D not to
         be a pointer type. &nbsp;This restriction needs to be put
@@ -14004,26 +5143,26 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 44
 
- <td width="118">
+ <td width="75">
         <p align="left">20.8.13.6
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         1st parameter p and 2nd parameter v is now
         shared_ptr&lt;T&gt; *.
@@ -14033,28 +5172,28 @@
         shared_ptr&lt;T&gt;* then add the "p shall not be a null
         pointer" at the requires.
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Change shared_ptr&lt;T&gt;&amp; or add the "p shall not be
         a null pionter" at the requires.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 45
 
- <td width="118">
+ <td width="75">
         <p align="left">20.9
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Rep, Period, Clock and Duration don't correspond to
         concept.
@@ -14071,32 +5210,32 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>US 80
 
- <td width="118">
+ <td width="75">
         <p>20.9.2.1
 
- <td width="85">
+ <td width="31">
         <p>Heading
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>The section heading does not describe the contents.
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Change the
         heading &#8220;<span lang=
@@ -14107,23 +5246,23 @@
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 81
 
- <td width="118">
+ <td width="75">
         <p align="left">20.9.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         chrono::duration is missing the modulous operator for both
         member and non-member arithmetic. This operator is useful
@@ -14164,7 +5303,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add:
 
         <p align="left"><br>
@@ -14224,30 +5363,30 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>US 82
 
- <td width="118">
+ <td width="75">
         <p>20.9.5.3
 
- <td width="85">
+ <td width="31">
         <p>after &#182; 1
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>The code synopsis has a minor alignment error.
 
- <td width="536">
+ <td width="466">
         <p>Align &#8220;rep&#8221; with the other symbols defined
         in this synopsis.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -14255,24 +5394,24 @@
         <p>UK<br>
         216
 
- <td width="118">
+ <td width="75">
         <p align="justify">21
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">All the containers use concepts for their
         iterator usage, exect for basic_string. This needs fixing.
 
- <td width="536">
+ <td width="466">
         <p align="left">Use concepts for iterator template
         parameters throughout the chapter.
 
- <td width="178">
+ <td width="225">
         <p>
 
     NB comments to be handled by Dave Abrahams and Howard Hinnant with advice
@@ -14281,20 +5420,20 @@
       <td width="29">
         <p>JP 46
 
- <td width="118">
+ <td width="75">
         <p align="left">21.2, 21.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">The
         basic_string does not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">The
         "class Alloc" is changed to "Allocator Alloc".
 
@@ -15288,23 +6427,23 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     See UK 216<tr valign="top">
       <td width="29">
         <p>JP 47
 
- <td width="118">
+ <td width="75">
         <p align="left">21.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo. Missing &#8221;&gt;&#8221;
 
@@ -15325,27 +6464,27 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Correct typo.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 48
 
- <td width="118">
+ <td width="75">
         <p align="left">21.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         char_traits does not use concept.
 
@@ -15369,11 +6508,11 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         a concept for char_traits.
 
- <td width="178">
+ <td width="225">
         <p>
 
     See UK 216<tr valign="top">
@@ -15381,21 +6520,21 @@
         <p>UK<br>
         217
 
- <td width="118">
+ <td width="75">
         <p align="justify">21.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">basic_string refers to
         constructible_with_allocator_suffix, which I thought was
         removed?
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the
         lines: template &lt;class charT, class traits, class Alloc
         struct constructible_with_allocator_suffix&lt;
@@ -15404,7 +6543,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -15412,16 +6551,16 @@
         <p>UK<br>
         218
 
- <td width="118">
+ <td width="75">
         <p align="justify">21.3.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The identity
         "&amp;*(s.begin() + n) == &amp;*s.begin() + n" relies on
         operator&amp; doing the "right thing", which (AFAICS) there
@@ -15432,11 +6571,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">See my recommendations for "23.2.1,
         23.2.6".
 
- <td width="178">
+ <td width="225">
         <p>
 
     NAD, we think. basic_string elements have to be POD and PODs may not have
@@ -15446,26 +6585,26 @@
         <p>UK<br>
         219
 
- <td width="118">
+ <td width="75">
         <p align="justify">21.3.6.6<br>
         [string.<br>
         replace]
 
- <td width="85">
+ <td width="31">
         <p align="justify">11
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Effects refers to "whose first begin() - i1
         elements" However i1 is greater than begin()...
 
- <td width="536">
+ <td width="466">
         <p align="left">Effects refers to "whose first i1 - begin()
         elements"
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -15473,16 +6612,16 @@
         <p>UK<br>
         220
 
- <td width="118">
+ <td width="75">
         <p align="justify">21.3.8.9
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         operator&lt;&lt; for basic_string takes the output stream
         by r-value reference. This is different from the same
@@ -15492,13 +6631,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     We did it differently for basic_string because otherwise rvalue strreaming
@@ -15507,17 +6646,17 @@
       <td width="29">
         <p>FR 33
 
- <td width="118">
+ <td width="75">
         <p>22.1.1<br>
 &nbsp;[locale]
 
- <td width="85">
+ <td width="31">
         <p>3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>ios_base::iostate err = 0;
 
         <p>
@@ -15527,26 +6666,26 @@
 
         <p>goodbit is the solution.
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 49
 
- <td width="118">
+ <td width="75">
         <p align="left">22.1.3.2.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         codecvt does not use concept. For example, create
         CodeConvert concept and change as follows.
@@ -15555,32 +6694,32 @@
         template&lt;<u>CodeConvert</u> Codecvt, class Elem =
         wchar_t&gt; class wstring_convert {
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         a concept for codecvt.
 
- <td width="178">
+ <td width="225">
         <p>
 
     to be handled by Howard Hinnant, Dave Abrahams, Martin Sebor, PJ Plaugher<tr valign="top">
       <td width="29">
         <p>JP 50
 
- <td width="118">
+ <td width="75">
         <p align="left">22.1.3.2.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -15634,49 +6773,49 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     to be handled by PJ Plaugher<tr valign="top">
       <td width="29">
         <p>FI 4
 
- <td width="118">
+ <td width="75">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">22.2.1.4.1
 
         <p>22.2.1.4.2
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p><tt>to_end and to_limit are both used. Only one is
         needed.</tt>
 
- <td width="536">
+ <td width="466">
         <p>Change to_limit to to_end.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>FI 5
 
- <td width="118">
+ <td width="75">
         <p><tt>22.2.1.4.2</tt>
 
- <td width="85">
+ <td width="31">
         <p>#3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in"><tt>[ Note: As
         a result of operations on state, it can return ok or
@@ -15703,21 +6842,21 @@
         from_next is unaltered, to_next is advanced, state is
         altered and return value is partial.</tt>
 
- <td width="536">
+ <td width="466">
         <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. &#8212;end</tt><br>
         <tt>note ]</tt>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>FI 6
 
- <td width="118">
+ <td width="75">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">22.2.1.5
 
@@ -15725,13 +6864,13 @@
 &nbsp;22.2.1.4<br>
 &nbsp;(1,2,3)
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">
         <tt>codecvt_byname is only specified to work with locale
@@ -15749,11 +6888,11 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p><tt>There should be a built-in means to find a codecvt
         with a pair of character set names.</tt>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Martin Sebor interested in solving this problem (also POSIX group), but
@@ -15762,16 +6901,16 @@
       <td width="29">
         <p>FI 7
 
- <td width="118">
+ <td width="75">
         <p>22.2.1.4
 
- <td width="85">
+ <td width="31">
         <p>1,2,3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">The word
         "codeset" is used, whereas the word "character set" is used
@@ -15781,28 +6920,28 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p>Change "codeset" to "character set."
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 51
 
- <td width="118">
+ <td width="75">
         <p align="left">22.2.5.1.1
 
- <td width="85">
+ <td width="31">
         <p align="left">7<sup>th</sup> <font size="2"
         style="font-size: 11pt">para, 1<sup>st</sup>
         line</font>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">A
         parameter `end&#8217; should be `fmtend&#8217;.<br>
         get() function had two `end&#8217; parameters at N2321.
@@ -15820,7 +6959,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -15840,29 +6979,29 @@
         <p align="left" style="margin-top: 0.04in">
         Requires: [fmt,fmtend) shall be a valid range.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 52
 
- <td width="118">
+ <td width="75">
         <p align="left">22.2.5.1,<br>
         22.2.5.2,<br>
         22.2.6.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         InputIterator does not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -16031,28 +7170,28 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     to be handled by Howard Hinnant, Dave Abrahams, Martin Sebor, PJ Plaugher<tr valign="top">
       <td width="29">
         <p>JP 53
 
- <td width="118">
+ <td width="75">
         <p align="left">22.2.5.3 ,<br>
         22.2.5.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         OutputIterator does not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -16165,36 +7304,36 @@
         <p align="left">typedef <u>OutputIter</u>
         iter_type;
 
- <td width="178">
+ <td width="225">
         <p>
 
     to be handled by Howard Hinnant, Dave Abrahams, Martin Sebor, PJ Plaugher<tr valign="top">
       <td width="29">
         <p>JP 54
 
- <td width="118">
+ <td width="75">
         <p align="left">23
 
- <td width="85">
+ <td width="31">
         <p align="left">
         2<sup>nd</sup> <font size="2" style=
         "font-size: 11pt">para, Table 79</font>
 
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         There is not &lt;forward_list&gt; in Table 79.
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         &lt;forward_list&gt; between &lt;deque&gt; and
         &lt;list&gt;.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16202,20 +7341,20 @@
         <p>UK<br>
         221
 
- <td width="118">
+ <td width="75">
         <p align="justify">23
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 79
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The table is missing the new
         &lt;forward_list&gt; header.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         &lt;forward_list&gt; to the table for sequence containers.
         Alternative (technical) solution might be to merge
@@ -16223,7 +7362,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16231,16 +7370,16 @@
         <p>UK<br>
         222
 
- <td width="118">
+ <td width="75">
         <p align="justify">23
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -16257,7 +7396,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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
@@ -16268,38 +7407,38 @@
         not provide the required size operation as it cannot be
         implemented efficiently.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 55
 
- <td width="118">
+ <td width="75">
         <p align="left">23.1.1
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">It
         seems that &#8220;the MinimalAllocator concep&#8221; is the
         typo of &#8220;the MinimalAllocator concept&#8221;.
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Change to &#8230; models the MinimalAllocator
         concep<font color="#339966">t</font><font size="2" style=
         "font-size: 11pt">.</font>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16307,16 +7446,16 @@
         <p>UK<br>
         223
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The library does
         not define the MinimalAllocator or ScopedAllocator
         concepts, these were part of an earlier Allocators proposal
@@ -16324,12 +7463,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the references to MinimalAllocator
         and ScopedAllocator, or add definitions for these concepts
         to clause 20.7.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16337,21 +7476,21 @@
         <p>UK<br>
         224
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">8
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This paragraph implicitly requires all
         containers in clause 23 to support allocators, which
         std::array does not.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add an 'unless
         otherwise specified' rider somewhere in p8, or move the
         whole array container from clause 23 [containers] to clause
@@ -16359,7 +7498,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16367,16 +7506,16 @@
         <p>UK<br>
         225
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 81
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Inconsistent
         words used to say the same thing. Table 80 describes
         iterator/const_iterator typedef as returning an "iterator
@@ -16387,12 +7526,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change return types for
         X::(const)_reverse_iterator to say "iterator type whose
         value type is (const) T".
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16400,16 +7539,16 @@
         <p>UK<br>
         226
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">10
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">&lt;array&gt;
         must be added to this list. In particular it doesn't
         satisfy: - no swap() function invalidates any references,
@@ -16419,12 +7558,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">If &lt;array&gt; remains a container, this
         will have to also reference array, which will then have to
         say which of these points it satisfies.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16432,28 +7571,28 @@
         <p>UK<br>
         227
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 80
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The post-condition for a = rv uses the word
         &#8220;construction&#8221; when it means
         &#8220;assignment&#8221;
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace the word
         &#8220;construction&#8221; with the word
         &#8220;assignment&#8221;
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16461,26 +7600,26 @@
         <p>UK<br>
         228
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Line 4 contains
         a spelling mistake in the fragment "MinimalAllocator
         concep."
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace "concep" with "concept"
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16488,21 +7627,21 @@
         <p>UK<br>
         229
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The fragment "A container may directly call
         constructors" is not technically correct as constructors
         are not callable.
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace "A
         container may directly call constructors and destructors
         for its stored objects" with something similar to "A
@@ -16511,7 +7650,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16519,16 +7658,16 @@
         <p>UK<br>
         230
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         &#8220;implementations shall consider the following
         functions to be const&#8221; - what does this mean? I don't
@@ -16538,33 +7677,33 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Clarify what is meant and what requirements
         an implementation must satisfy.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 56
 
- <td width="118">
+ <td width="75">
         <p align="left">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="left">12<sup>th</sup> <font size="2"
         style="font-size: 11pt">para, Table 84</font>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         `array&#8217; is unstated in Table 84 - Optional sequence
         container operations.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         `array&#8217; to Container field for the following
         Expression.
@@ -16581,7 +7720,7 @@
         <p align="left" style=
         "text-indent: 0.15in; margin-top: 0.04in">a.at(n)
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16589,28 +7728,28 @@
         <p>UK<br>
         231
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">9-11
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16618,27 +7757,27 @@
         <p>UK<br>
         232
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 84
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">match_results
         may follow the requirements but is not listed a general
         purpose library container.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove reference to match_results against
         a[n] operation
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16646,19 +7785,19 @@
         <p>UK<br>
         233
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 84
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Add references to the new containers.
 
- <td width="536">
+ <td width="466">
         <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(),
@@ -16668,7 +7807,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16676,16 +7815,16 @@
         <p>UK<br>
         234
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">Table 84
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Ther reference
         to iterator in semantics for back should also allow for
         const_iterator when called on a const-qualified container.
@@ -16694,11 +7833,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace iterator with auto in semantics for
         back: { auto tmp = a.end(); --tmp; return *tmp; }
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16706,22 +7845,22 @@
         <p>UK<br>
         235
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">&#8220;The library provides three basic
         kinds of sequence containers: vector, list, and
         deque&#8221; - text appears to be out of date re addition
         of array and forward_list
 
- <td width="536">
+ <td width="466">
         <p align="left">Change the text
         to read: &#8220;The library provides five basic kinds of
         sequence containers: array, deque, forward_list, list and
@@ -16729,7 +7868,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16737,16 +7876,16 @@
         <p>UK<br>
         236
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -16763,10 +7902,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove this paragraph
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16774,21 +7913,21 @@
         <p>UK<br>
         237
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Modify the text
         to read: "array, deque, forward_list, list and vector offer
         the programmer different complexity trade-offs and should
@@ -16796,7 +7935,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16804,16 +7943,16 @@
         <p>UK<br>
         238
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -16826,7 +7965,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change 'unspecified' to 'implementation
         defined'. Add "[Note: As itererator and const_iterator have
         identical semantics in this case, and iterator is
@@ -16834,7 +7973,7 @@
         the One Definition Rule by always using const_iterator in
         their function parameter lists -- end note]
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16842,21 +7981,21 @@
         <p>UK<br>
         239
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">85
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Add below
         a.erase(q), a.extract(q), with the following notation:
         a.extract(q), Return type pair&lt;key, iterator&gt;
@@ -16868,7 +8007,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16876,16 +8015,16 @@
         <p>UK<br>
         240
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.1.6.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">12
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The axiom
         EmplacePushEquivalence should be asserting the stronger
         contract that emplace and insert return the same iterator
@@ -16900,7 +8039,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove the * to deference the returned
         iterator either side of the == in the
         EmplacePushEquivalence axiom, rename the axiom
@@ -16911,38 +8050,38 @@
         position, Args... args) { emplace(c, position, args...) ==
         insert(c, position, value_type(args...)); }
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 57
 
- <td width="118">
+ <td width="75">
         <p align="left">23.1.6.3
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo, duplicated "to"
 
         <p align="left" style="margin-top: 0.04in">
         "<u>to to</u> model insertion container concepts."
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Remove one.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16950,26 +8089,26 @@
         <p>UK<br>
         241
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">add exception to 23.1.1p3
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -16977,27 +8116,27 @@
         <p>UK<br>
         242
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">std:: qualification no longer needed for
         reverse_iterator.
 
- <td width="536">
+ <td width="466">
         <p align="left">remove std::
         qualification from std::reverse_iterator&lt;iterator&gt;
         and std::reverse_iterator&lt;const_iterator&gt;
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -17005,16 +8144,16 @@
         <p>UK<br>
         243
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Most containers,
         and types in general have 3 swaps: swap(T&amp;, T&amp;)
         swap(T&amp;&amp;, T&amp;) swap(T&amp;, T&amp;&amp;) But
@@ -17022,10 +8161,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">add the other two swaps.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -17033,17 +8172,17 @@
         <p>UK<br>
         244
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.2.1,<br>
 &nbsp;23.2.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The validity of
         the expression &amp;a[n] == &amp;a[0] + n is contingent on
         operator&amp; doing the &#8220;right thing&#8221; (as
@@ -17056,7 +8195,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Define a ContiguousStrorage and apply it to
         vector,array and string. The Concept (supplied by Alisdair
         M) looks like this: Concept&lt; typename C &gt;
@@ -17065,7 +8204,7 @@
         Contiguous { C c; true = equal_ranges( data( c), data(c) +
         size(c), begin(c)); } };
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -17073,16 +8212,16 @@
         <p>UK<br>
         245
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.2.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -17091,7 +8230,7 @@
         library specification in general. See earlier comment for
         details, that would render this one redundant.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         CopyConstructible requirement to the following signatures:
         template &lt;Predicate&lt;auto, T&gt; Pred&gt; requires
@@ -17111,59 +8250,59 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 58
 
- <td width="118">
+ <td width="75">
         <p align="left">23.2.3.2
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         Unnecessary "{" exists before a word iterator like
         "{iterator before_begin()".
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Remove "{"
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>JP 59
 
- <td width="118">
+ <td width="75">
         <p align="left">23.2.4.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -17202,23 +8341,23 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 83
 
- <td width="118">
+ <td width="75">
         <p align="left">23.2.6.2
 
- <td width="85">
+ <td width="31">
         <p align="left">7
 
- <td width="62">
+ <td width="38">
         <p align="left">ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         "shrink_to_fint" should be "shrink_to_fit".
 
@@ -17227,10 +8366,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17238,16 +8377,16 @@
         <p>UK<br>
         246
 
- <td width="118">
+ <td width="75">
         <p align="justify">23.3.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -17258,12 +8397,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Strike 23.3.2.2 entirely. (but do NOT
         strike these signatures from the class template
         definition!)
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17271,16 +8410,16 @@
         <p>UK<br>
         247
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ge
 
- <td width="514">
+ <td width="375">
         <p align="left">Iterator
         concepts are not extensive enough to merit a whole new
         header, and should be merged into &lt;concpts&gt;. This is
@@ -17292,13 +8431,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the concepts of
         &lt;iterator_concepts&gt; into the &lt;concepts&gt; header.
         We take no position on moving the text from Clause 24 to
         Clause 20 though.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17306,16 +8445,16 @@
         <p>UK<br>
         248
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -17325,11 +8464,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace the reference to container with a
         more appropriate concept
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17337,26 +8476,26 @@
         <p>UK<br>
         250
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">A default implementation should be supplied
         for the post-increment operator to simplify implementation
         of iterators by users.
 
- <td width="536">
+ <td width="466">
         <p align="left">Copy the Effects clause into the concept
         description as the default implementation. Assumes a
         default value for postincrement_result
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17364,16 +8503,16 @@
         <p>UK<br>
         251
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         post-increment operator is dangerous for a general
         InputIterator. The multi-pass guarantees that make it
@@ -17387,12 +8526,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move declaration of postincrement operator
         and postincrement_result type from Interator concept to the
         ForwardIterator concept
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17403,24 +8542,24 @@
 
         <p>
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">istream_iterator is not a class, but a
         class template
 
- <td width="536">
+ <td width="466">
         <p align="left">Change 'class' to 'class template' in the
         note.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17428,16 +8567,16 @@
         <p>UK<br>
         253
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -17445,12 +8584,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17458,27 +8597,27 @@
         <p>UK<br>
         254
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">5
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This
         postcondition for pre-increment operator should be written
         as an axiom
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the postcondition into the concept
         definition as an axiom
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17486,27 +8625,27 @@
         <p>UK<br>
         255
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This
         postcondition for pre-increment operator should be written
         as an axiom
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the postcondition into the concept
         definition as an axiom
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17514,27 +8653,27 @@
         <p>UK<br>
         256
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify">3, 4, 5
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The relationship between pre- and post-
         decrement should be expressed as an axiom.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17542,16 +8681,16 @@
         <p>UK<br>
         257
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">There is a
         reasonable default for postdecrement_result type, which is
         X. X is required to be regular, therefore CopyConstructible
@@ -17560,11 +8699,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add the default : typename
         postincrement_result = X;
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17572,28 +8711,28 @@
         <p>UK<br>
         258
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Copy the Effects clause into the concept
         description as the default implementation. Assumes a
         default value for postincrement_result
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17601,16 +8740,16 @@
         <p>UK<br>
         259
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         postdecrement_result is effectively returning a copy of the
         original iterator value, so should have similar
@@ -17620,11 +8759,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add the requirement: requires Iterator&lt;
         postdecrement_result &gt;;
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17632,22 +8771,22 @@
         <p>UK<br>
         260
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.5
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Move the Effects
         clause into the BidirectionalIterator concept definition as
         an axiom, and as the default implementation for the
@@ -17655,7 +8794,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17663,17 +8802,17 @@
         <p>UK<br>
         249
 
- <td width="118">
+ <td width="75">
         <p align="justify"><span lang=
         "en-US">24.1.6</span>
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The semantic for
         operator+= should also be provided as a default
         implementation to simplify implementation of user-defined
@@ -17681,12 +8820,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Copy the text from the effects clause into
         the RandomAccessIterator concept as the default
         implementaiton.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17694,26 +8833,26 @@
         <p>UK<br>
         261
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">To simplify user
         defined random access iterator types, the
         subscript_reference type should default to reference
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">typename subscript_reference = reference;
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17721,21 +8860,21 @@
         <p>UK<br>
         262
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">3, 4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Effects and post-conditions for operator+
         are more useful if expressed as axioms, and supplied as
         default implementations.
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the effects
         and Postcondition definitions into the RandomAccessIterator
         concept and copy the code in the specification as the
@@ -17743,7 +8882,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17751,21 +8890,21 @@
         <p>UK<br>
         263
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">5
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This requirement on operator-= would be
         better expressed as a default implementation in the
         concept, with a matching axiom
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the
         specification for operator-= from the returns clause into
         an axiom and default implementation within the
@@ -17773,7 +8912,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17781,27 +8920,27 @@
         <p>UK<br>
         264
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Effects clauses are better expressed as
         axioms where possible.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17809,16 +8948,16 @@
         <p>UK<br>
         265
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">8
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This effects
         clause is nonesense. It looks more like an axiom stating
         equivalence, and certainly an effects clause cannot change
@@ -17826,10 +8965,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Strike the Effects clause
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17837,20 +8976,20 @@
         <p>UK<br>
         266
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">9
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">This sentance should be provided as a
         default definition, along with a matching axiom
 
- <td width="536">
+ <td width="466">
         <p align="left">Move the Returns
         clause into the spefication for RandomAccessIterator
         operator- as a default implementation. Move the Effects
@@ -17858,7 +8997,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17866,27 +9005,27 @@
         <p>UK<br>
         267
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">24.1.6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The code in the
         Requires clause for RandomAccessIterator operator[] would
         be better expressed as an axiom.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Rewrite the Requires clause as an axiom in
         the RandomAccessIterator concept
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -17894,16 +9033,16 @@
         <p>UK<br>
         268
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.1.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">12
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -17912,29 +9051,29 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Clean up the note to either avoid using
         language extension, or spell out this is a constraint to
         support extensions.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 60
 
- <td width="118">
+ <td width="75">
         <p align="left">24.1.8
 
- <td width="85">
+ <td width="31">
         <p align="left">1<sup>st</sup> <font size="2"
         style="font-size: 11pt">para</font>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Capability of an iterator is too much restricted by
         concept.
@@ -18106,12 +9245,12 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         InputRange, OutputRange, ForwardRange, BidirectionalRange
         and RandomAccessRange.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18119,26 +9258,26 @@
         <p>UK<br>
         269
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">'decrements for
         negative n' seems to imply a negative number of decrement
         operations, which is odd.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Need simple, clearer wording
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18146,28 +9285,28 @@
         <p>UK<br>
         270
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Split the two overloads into separate
         descriptions, where reachability is permitted to be in
         either direction for RandomAccessIterator
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18175,16 +9314,16 @@
         <p>UK<br>
         271
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">6,7
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">next/prev return
         an incremented iterator without changing the value of the
         original iterator. However, even this may invalidate an
@@ -18193,11 +9332,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace InputIterator constraint with
         FOrwardIterator in next and prev function templates.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18205,16 +9344,16 @@
         <p>UK<br>
         272
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">reverse_iterator
         and move_iterator use different formulations for their
         comparison operations. move_iterator merely requires the
@@ -18233,12 +9372,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Rephrase the reverse_iterator comparison
         operations using only operators &lt; and ==, as per the
         move_iterator specification.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18246,16 +9385,16 @@
         <p>UK<br>
         274
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4, 24.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The subclauses
         for standard iterator adaptors could be better organised.
         There are essentially 3 kinds of iterator wrappers
@@ -18268,13 +9407,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18282,16 +9421,16 @@
         <p>UK<br>
         275
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The constructor
         template taking a single Iterator argument will be selected
         for Copy Initialization instead of the non-template
@@ -18300,11 +9439,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">The reverse_iterator template constructor
         taking a single Iterator argument should be explicit.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18312,16 +9451,16 @@
         <p>UK<br>
         276
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -18329,11 +9468,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Make the member operators taking a
         difference_type argument non-member operators
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18341,16 +9480,16 @@
         <p>UK<br>
         277
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The default
         constructor default-initializes current, rather than
         value-initializes. This means that when Iterator
@@ -18363,7 +9502,7 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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
@@ -18371,7 +9510,7 @@
         iii/ Add a note to the description emphasizing the singular
         nature of a value-initialized reserve iterator.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18379,16 +9518,16 @@
         <p>UK<br>
         278
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">There is an
         inconsistency between the constructor taking an iterator
         and the constructor template taking a reverse_iterator
@@ -18398,11 +9537,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change the const reverse_iterator&lt;U&gt;
         &amp; parameter to pass-by-value
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18410,17 +9549,17 @@
         <p>UK<br>
         279
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.2.12,<br>
         24.4.3.2.12
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -18429,11 +9568,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Specify the return type using either
         decltype or the Iter concept map
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18441,16 +9580,16 @@
         <p>UK<br>
         280
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.2.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The presence of
         the second iterator value is surprising for many readers
         who underestimate the size of a reverse_iterator object.
@@ -18459,11 +9598,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add reverse_iterator expsoition only member
         tmp as a comment to class declaration, as a private member
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18471,16 +9610,16 @@
         <p>UK<br>
         281
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.1.2.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The current
         specification for return value will always be a true
         pointer type, but reverse_iterator supports proxy iterators
@@ -18488,12 +9627,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace the existing returns specification
         with a copy of the operator* specification that returns
         this-&gt;tmp.operator-&gt;
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18501,7 +9640,7 @@
         <p>UK<br>
         282
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.2.1,<br>
         24.4.2.2.2,<br>
         24.4.2.3,<br>
@@ -18509,23 +9648,23 @@
         24.4.2.5,<br>
         24.4.2.6.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">n/a
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Insert iterators of move-only types will
         move from lvalues
 
- <td width="536">
+ <td width="466">
         <p align="left">Add an additional constrained overload for
         operator= that requires
         !CopyConstructible&lt;Cont::value_type&gt; and mark it
         =delete.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18533,17 +9672,17 @@
         <p>UK<br>
         283
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.4.2.5,<br>
         24.4.2.6.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">postincrement operator overloads
         traditionally return by value - insert_iterator is declared
         as return by reference. The change is harmless in this
@@ -18551,41 +9690,41 @@
         matching change for consistency, or this function should
         return-by-value
 
- <td width="536">
+ <td width="466">
         <p align="left">change operator++(int) overload to return
         by value, not reference. Affects both class summary and
         operator definition in p
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 61
 
- <td width="118">
+ <td width="75">
         <p align="left">24.4.3.2.1
 
- <td width="85">
+ <td width="31">
         <p align="left">2<sup>nd</sup> <font size="2"
         style="font-size: 11pt">para, 1<sup>st</sup>
         line</font>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo.
 
         <p align="left" style="margin-top: 0.04in">
         "intializing" should be "in<u>i</u>tializing"
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         "i"
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18593,26 +9732,26 @@
         <p>UK<br>
         284
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The stream
         iterators need constraining with concepts/requrires
         clauses.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18620,27 +9759,27 @@
         <p>UK<br>
         285
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">1,2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Strike p2. Simplify p1 and add a
         cross-reference to the definition of InputIterator concept.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18648,16 +9787,16 @@
         <p>UK<br>
         286
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -18666,12 +9805,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Either provide a similar definition to the
         copy-assign operator as for the copy constructor, or strike
         the copy constructor
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18679,16 +9818,16 @@
         <p>UK<br>
         287
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -18700,12 +9839,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18713,27 +9852,27 @@
         <p>UK<br>
         288
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">The provided specification is vacuous,
         offering no useful information.
 
- <td width="536">
+ <td width="466">
         <p align="left">Either strike
         the specification of the copy constructor, or simply
         replace it with an = default definition.
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18741,16 +9880,16 @@
         <p>UK<br>
         289
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.1.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">It is very hard
         to pick up the correct specification for
         istream_iterator::operator== as the complete specification
@@ -18762,12 +9901,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18775,16 +9914,16 @@
         <p>UK<br>
         290
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -18792,10 +9931,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Replace char * with const charT *
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18803,16 +9942,16 @@
         <p>UK<br>
         291
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">ostream_iterator
         postincrement operator returns by reference rather than by
         value. This may be a small efficiency gain, but it is
@@ -18820,38 +9959,38 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">ostream_iterator operator++(int);
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>FR 34
 
- <td width="118">
+ <td width="75">
         <p>24.5.3<br>
         [istreambuf.<br>
         iterator]
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18859,27 +9998,27 @@
         <p>UK<br>
         292
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Change istreambuf_iterator(0) to
         istreambuf_iterator(nullptr)
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18887,21 +10026,21 @@
         <p>UK<br>
         293
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">2,3,4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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
@@ -18914,7 +10053,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18922,21 +10061,21 @@
         <p>UK<br>
         294
 
- <td width="118">
+ <td width="75">
         <p align="justify">24.5.3.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Implicit converting constructors can be
         invoked at surprising times, so there should always be a
         good reason for declaring one.
 
- <td width="536">
+ <td width="466">
         <p align="left">Mark the two
         single-argument constructors take a stream or stream buffer
         as explicit. The proxy constructor should remain implicit.
@@ -18948,7 +10087,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -18956,16 +10095,16 @@
         <p>UK<br>
         295
 
- <td width="118">
+ <td width="75">
         <p align="justify">25
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">THere is a level
         of redundancy in the library specification for many
         algorithms that can be eliminated with the combination of
@@ -18975,27 +10114,27 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Adopt n2743, or an update of that paper.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 62
 
- <td width="118">
+ <td width="75">
         <p align="left">25, 25.3.1.5,<br>
         26.3.6.5
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-left: 0.2in; text-indent: -0.2in; margin-bottom: 0in">
         The return types of is_sorted_until function and
@@ -19011,14 +10150,14 @@
         <p align="left" style=
         "text-indent: 0.2in; margin-top: 0.04in"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19026,16 +10165,16 @@
         <p>UK<br>
         296
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.1.8
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The 'Returns' of
         adjacent_find requires only HasEqualTo, or a Predicate.
         Requiring EqualityComparable or EquivalenceRelation seems
@@ -19043,11 +10182,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change EqualityComparable to HasEqualTo and
         EquivalnceRelation to Predicate
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19055,28 +10194,28 @@
         <p>UK<br>
         297
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.2.11
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Change 'effects' to, returns, requires,
         complexity to: effects: equivalent to: return copy(first,
         middle, copy(middle, last, result));
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19084,24 +10223,24 @@
         <p>UK<br>
         298
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.2.13
 
- <td width="85">
+ <td width="31">
         <p align="justify">13
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">partition_point requires a partitioned
         array
 
- <td width="536">
+ <td width="466">
         <p align="left">requires: is_partitioned(first, last, pred)
         != false;
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19109,28 +10248,28 @@
         <p>UK<br>
         299
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Change way signature is declared:
         template&lt;InputIterator InIter, OutputIterator&lt;auto,
         RvalueOf&lt;InIter::reference&gt;::type&gt; OutIter&gt;
         OutIter move(InIter first, InIter last, OutIter result);
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19138,16 +10277,16 @@
         <p>UK<br>
         300
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.2.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Since publishing
         the original standard, we have learned that swap is a
         fundamental operation, and several common idioms rely on it
@@ -19163,14 +10302,14 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move primary swap template from
         &lt;algorithm&gt; into &lt;utility&gt;. Move 25.2.3 to
         somewhere under 20.2. Require &lt;algorithm&gt; to #include
         &lt;utility&gt; to access pair and provide legacy support
         for finding swap.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19178,16 +10317,16 @@
         <p>UK<br>
         301
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.2.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">replace and
         replace_if have the requirement: OutputIterator&lt;Iter,
         Iter::reference&gt; Which implies they need to copy some
@@ -19198,11 +10337,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove OutputIterator&lt;Iter,
         Iter::reference&gt; from replace and replace_if
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19210,27 +10349,27 @@
         <p>UK<br>
         302
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">4
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">the concept
         StrictWeakOrder covers the definition of a strict weak
         ordering, described in paragraph 4.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove 4, and mention StrictWeakOrder in
         paragraph 1.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19238,27 +10377,27 @@
         <p>UK<br>
         303
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">This paragraph just describes
         is_partitioned
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19266,26 +10405,26 @@
         <p>UK<br>
         304
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.3.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Format them identically.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19293,68 +10432,68 @@
         <p>UK<br>
         305
 
- <td width="118">
+ <td width="75">
         <p align="justify">25.3.7
 
- <td width="85">
+ <td width="31">
         <p align="justify">1, 9, 17
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Strike the !IsSameType&lt;T, Compare&gt;
         constraint on min/max/minmax algorithms
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 84
 
- <td width="118">
+ <td width="75">
         <p align="left">26
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Parts of the numerics chapter are not concept enabled.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>FR 35
 
- <td width="118">
+ <td width="75">
         <p>26.3<br>
         [Complex<br>
 &nbsp;numbers]
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>Instantiations of the class
         template complex&lt;&gt; have to be allowed for integral
         types, to reflect existing practice and ISO standards
@@ -19362,10 +10501,10 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19373,42 +10512,42 @@
         <p>UK<br>
         306
 
- <td width="118">
+ <td width="75">
         <p align="justify">26.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Random number
         library component cannot be used in constrained templates
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints for the random number
         library
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 63
 
- <td width="118">
+ <td width="75">
         <p align="left">26.4.8.5.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left">No
         constructor of discrete_distribution that accepts
         initializer_list.
@@ -19439,30 +10578,30 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         the following constructer.
 
         <p align="left" style="margin-top: 0.04in">
         <u>discrete_distribution(initializer_list&lt;result_type&gt;);</u>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 64
 
- <td width="118">
+ <td width="75">
         <p align="left">26.5.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">
         &#8220;valarray&lt;T&gt;&amp; operator+=
@@ -19471,12 +10610,12 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         valarray&lt;T&gt;&amp; operator+=
         (initializer_list&lt;T&gt;);
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19484,16 +10623,16 @@
         <p>UK<br>
         307
 
- <td width="118">
+ <td width="75">
         <p align="justify">26.7
 
- <td width="85">
+ <td width="31">
         <p align="justify">Footnote 288
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -19502,35 +10641,35 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Drop the reference to TR1.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 85
 
- <td width="118">
+ <td width="75">
         <p align="left">27
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         input/output chapter is not concept enabled.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -19538,43 +10677,43 @@
         <p>UK<br>
         308
 
- <td width="118">
+ <td width="75">
         <p align="justify">27
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         <span lang="en-US">iostreams library cannot be used from
         constrained templates</span>
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints for the iostreams
         library, clause 27
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 65
 
- <td width="118">
+ <td width="75">
         <p align="left">27.4.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Switch from
         &#8220;unspecified-bool-type&#8221; to<span lang=
@@ -19584,29 +10723,29 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Replace "operator <i>unspecified-bool-type</i>() const;"
         with "explicit operator bool() const;"
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 66
 
- <td width="118">
+ <td width="75">
         <p align="left">27.4.4.3
 
- <td width="85">
+ <td width="31">
         <p align="left">1<sup>st</sup> <font size="2"
         style="font-size: 11pt">para</font>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Switch from
         &#8220;unspecified-bool-type&#8221; to<span lang=
@@ -19616,31 +10755,31 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Replace "operator <i>unspecified-bool-type</i>() const;"
         with "explicit operator bool() const;"
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>FR 36
 
- <td width="118">
+ <td width="75">
         <p>27.6.1.2.2<br>
 &nbsp;[istream.<br>
         formatted.<br>
         arithmetic]
 
- <td width="85">
+ <td width="31">
         <p>1, 2, and 3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>iostate err = 0;
 
         <p>
@@ -19652,29 +10791,29 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>FR 37
 
- <td width="118">
+ <td width="75">
         <p>27.6.1.2.2<br>
 &nbsp;[istream.<br>
         formatted.<br>
         arithmetic]
 
- <td width="85">
+ <td width="31">
         <p>3
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>else if (lval &lt;
         numeric_limits&lt;int&gt;::min()
 
@@ -19688,30 +10827,30 @@
 
         <p>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 67
 
- <td width="118">
+ <td width="75">
         <p align="left">27.7.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         basic_stringbuf dose not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Replace &#8220;class Allocator&#8221; to &#8220;Allocator
         Alloc&#8221;.
@@ -19837,27 +10976,27 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 68
 
- <td width="118">
+ <td width="75">
         <p align="left">27.7.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         basic_istringstream dose not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Replace &#8220;class Allocator&#8221; to &#8220;Allocator
         Alloc&#8221;.
@@ -20014,27 +11153,27 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 69
 
- <td width="118">
+ <td width="75">
         <p align="left">27.7.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         basic_ostringstream dose not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Replace &#8220;class Allocator&#8221; to &#8220;Allocator
         Alloc&#8221;.
@@ -20192,30 +11331,30 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 71
 
- <td width="118">
+ <td width="75">
         <p align="left">27.7.3
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo.
 
         <p align="left">"template" is missing in
         "class basic_ostringstream" of the title of the chapter.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -20234,27 +11373,27 @@
         <p align="left">27.7.3 Class <u>template</u>
         basic_ostringstream
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 72
 
- <td width="118">
+ <td width="75">
         <p align="left">27.7.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         basic_stringstream dose not use concept.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Replace "class Allocator" to "Allocator Alloc".
 
@@ -20406,23 +11545,23 @@
 
         <p align="left" style="margin-top: 0.04in">}
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 73
 
- <td width="118">
+ <td width="75">
         <p align="left">27.8.1.14
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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
@@ -20431,36 +11570,36 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         interface corresponding to wchar_t, char16_t and char32_t.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 86
 
- <td width="118">
+ <td width="75">
         <p align="left">28
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         regular expressions chapter is not concept enabled.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20468,26 +11607,26 @@
         <p>UK<br>
         309
 
- <td width="118">
+ <td width="75">
         <p align="justify">28
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Regular
         expressions cannot be used in constrained templates
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints for the regular
         expression library, clause 28
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20495,25 +11634,25 @@
         <p>UK<br>
         310
 
- <td width="118">
+ <td width="75">
         <p align="justify">28
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The regex chapter uses iterators in the old
         pre-concept style, it should be changed to use concepts
         instead.
 
- <td width="536">
+ <td width="466">
         <p align="left">Use concepts for iterator template
         arguments throughout.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20521,16 +11660,16 @@
         <p>UK<br>
         314
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -20540,13 +11679,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20554,16 +11693,16 @@
         <p>UK<br>
         315
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">p6
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">6 Effects:
         string_type str(first, last); return
         use_facet&lt;collate&lt;charT&gt; &gt;(
@@ -20572,11 +11711,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Reword to effect clause to use legal
         iterator dereferences
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20584,26 +11723,26 @@
         <p>UK<br>
         316
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.4 ff
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The constructors
         for regex classes do not have an r-value overload.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add the missing r-value constructors to
         regex classes.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20611,21 +11750,21 @@
         <p>UK<br>
         317
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.8
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">In the
         basic_regex synopsis, after: basic_regex&amp;
         operator=(const charT* ptr); add: basic_regex&amp;
@@ -20636,23 +11775,23 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p>JP 74
 
- <td width="118">
+ <td width="75">
         <p align="left">28.8
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">
         &#8220;basic_regx &amp; operator=
@@ -20661,11 +11800,11 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         basic_regx &amp; operator= (initializer_list&lt;T&gt;);
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20673,26 +11812,26 @@
         <p>UK<br>
         318
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.8.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">para 22
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Constructor
         definition should appear with the other constructors not
         after assignment ops.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Move para 22 to just after para 17.
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
@@ -20700,16 +11839,16 @@
         <p>UK<br>
         319
 
- <td width="118">
+ <td width="75">
         <p align="justify">28.12.2
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -20722,7 +11861,7 @@
         initializer_lists we should use them to remove this
         particular wart.
 
- <td width="536">
+ <td width="466">
         <p align="left">To the synopsis
         for regex_token_iterator, after template &lt;std::size_t
         N&gt; regex_token_iterator(BidirectionalIterator a,
@@ -20745,33 +11884,33 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left"><br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 87
 
- <td width="118">
+ <td width="75">
         <p align="left">29
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         atomics chapter is not concept enabled. The adopted paper,
         N2427, did have those concepts.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue for concepts in the atomics chapter. See
         N2427. Needs to also consider issues 923 and 924.<br>
 
@@ -20780,26 +11919,26 @@
         <p>UK<br>
         311
 
- <td width="118">
+ <td width="75">
         <p align="justify">29
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Atomic types
         cannot be used generically in a constrained template
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints for the atomics
         library, clause 29
 
- <td width="178">
+ <td width="225">
         <p align="left">Duplicate of US 87.<br>
 
     <tr valign="top">
@@ -20807,23 +11946,23 @@
         <p>UK<br>
         312
 
- <td width="118">
+ <td width="75">
         <p align="justify">29
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The contents of the &lt;stdatomic.h&gt;
         header are not listed anywhere, and &lt;cstdatomic&gt; is
         listed as a C99 header in chapter 17. If we intend to use
         these for compatibility with a future C standard, we should
         not use them now.
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove &lt;cstdatomic&gt; from the C99
         headers in table 14. Add a new header &lt;atomic&gt; to the
         headers in table 13. Update chapter 29 to remove reference
@@ -20832,7 +11971,7 @@
         adds atomic operations to C we can add corresponding
         headers to table 14 with a TR.
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue. Assigned to Lawrence Crowl. May be
         resolvable with a footnote for clarity stating that the header is
         defined where it exists.<br>
@@ -20841,21 +11980,21 @@
       <td width="29">
         <p>JP 75
 
- <td width="118">
+ <td width="75">
         <p align="left">29
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">A
         definition of enum or struct is the style of C using
         typedef.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Change to a style of C++.
 
@@ -21083,7 +12222,7 @@
 
         <p align="left">}
 
- <td width="178">
+ <td width="225">
         <p align="left">Recommend to reject the comment: We believe the current
         syntax is most appropriate for an interface that is intended to be
         highly compatible with C.<br>
@@ -21093,21 +12232,21 @@
         <p>UK<br>
         313
 
- <td width="118">
+ <td width="75">
         <p align="justify">29.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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
@@ -21118,27 +12257,27 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Hans to make proposal. See LWG Issue 926.<br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 88
 
- <td width="118">
+ <td width="75">
         <p align="left">29.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">The "lockfree" facilities do
         not tell the programmer enough.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Expand the "lockfree" facilities. See the attached paper
         "Issues with the C++ Standard" under Chapter 29,
@@ -21146,7 +12285,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue, will require more discussion. Assigned
         to Lawrence. Description of issue should be based on what is in the
         additional notes for US 88.<br>
@@ -21155,16 +12294,16 @@
       <td width="29">
         <p align="left">US 89
 
- <td width="118">
+ <td width="75">
         <p align="left">29.3.1
 
- <td width="85">
+ <td width="31">
         <p align="left">Table 122
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         types in the table "Atomics for standard typedef types"
         should be typedefs, not classes. These semantics are
@@ -21172,11 +12311,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Change the classes to
         typedefs.
 
- <td width="178">
+ <td width="225">
         <p align="left">LWG Issue 937. Direct the editor to turn the types into
         typedefs as proposed in the comment. Paper approved by committee used
         typedefs, this appears to have been introduced as an editorial change.
@@ -21184,20 +12323,20 @@
       <td width="29">
         <p align="left">US 90
 
- <td width="118">
+ <td width="75">
         <p align="left">29.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">Are atomic functions allowed
         to have non-volatile overloads?
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Allow non-volatile overloads. See the attached paper
         "Issues with the C++ Standard, under Chapter 29, "Are
@@ -21205,7 +12344,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue. Assigned to Lawrence Crowl. Should
         explicitly consider the process shared issue.<br>
 
@@ -21213,21 +12352,21 @@
       <td width="29">
         <p align="left">US 91
 
- <td width="118">
+ <td width="75">
         <p align="left">29.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">Whether or not a failed
         compare_exchange is a RMW operation (as used in 1.10
         [intro.multithread]) is unclear.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Make failing compare_exchange operations <font size="2"
         style="font-size: 11pt"><strong>not</strong> be RMW. See
@@ -21236,7 +12375,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue, goes to review. Attention: Howard.
         Group agrees with the resolution as proposed by Anthony Williams in the
         attached note.<br>
@@ -21245,20 +12384,20 @@
       <td width="29">
         <p align="left">US 92
 
- <td width="118">
+ <td width="75">
         <p align="left">29.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">te
 
- <td width="514">
+ <td width="375">
         <p align="left">The effect of
         memory_order_consume with atomic RMW operations is unclear.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Follow the lead of fences [atomics.fences], and promote
         memory_order_consume to memory_order_acquire with RMW
@@ -21266,7 +12405,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue. Assigned to Lawrence. Resolution
         requires proposed wording.<br>
 
@@ -21274,16 +12413,16 @@
       <td width="29">
         <p>JP 76
 
- <td width="118">
+ <td width="75">
         <p align="left">30
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">A
         description for "<i>Throws:</i> Nothing." are not unified.
 
@@ -21291,7 +12430,7 @@
         the part without throw, "<i>Throws:</i> Nothing." should be
         described.
 
- <td width="536">
+ <td width="466">
         <p align="left">Add
         "<i>Throws:</i> Nothing." to the following.
 
@@ -21320,32 +12459,32 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Pass on to editor.<br>
 
     <tr valign="top">
       <td width="29">
         <p align="left">US 93
 
- <td width="118">
+ <td width="75">
         <p align="left">30
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left">ge
 
- <td width="514">
+ <td width="375">
         <p align="left">The
         thread chapter is not concept enabled.
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p align="left">Create an issue. Need to find volunteers to work on
         this.<br>
 
@@ -21357,24 +12496,24 @@
 
         <p>
 
- <td width="118">
+ <td width="75">
         <p align="justify">30
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Threads library cannot be used in
         constrained templates
 
- <td width="536">
+ <td width="466">
         <p align="left">Provide constraints for the threads
         library, clause 30
 
- <td width="178">
+ <td width="225">
         <p align="left">Duplicate of US 93.<br>
 
     <tr valign="top">
@@ -21382,16 +12521,16 @@
         <p>UK<br>
         321
 
- <td width="118">
+ <td width="75">
         <p align="justify">30
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">Throughout this
         clause, the term Requires: is used to introduce compile
         time requirements, which we expect to be replaced with
@@ -21405,32 +12544,32 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Decument Preconditions: paragraphs in
         17.5.2.4, and use consistently through rest of the library.
 
- <td width="178">
+ <td width="225">
         <p align="left">Pass on to editor.<br>
 
     <tr valign="top">
       <td width="29">
         <p>US 94
 
- <td width="118">
+ <td width="75">
         <p>30.1.2
 
- <td width="85">
+ <td width="31">
         <p>1
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>The first sentence of para 1 suggests that no other
         library function is permitted to call operating system or
         low level APIs.
 
- <td width="536">
+ <td width="466">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Rewrite para 1
         as: &#8220; <font color="#000000">Some functions described
@@ -21444,27 +12583,27 @@
 
         <p>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Reclassify as editorial. Pass on to editor, wording roughly as proposed.<tr valign="top">
       <td width="29">
         <p>US 95
 
- <td width="118">
+ <td width="75">
         <p>30.1.3
 
- <td width="85">
+ <td width="31">
         <p>1
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>&#8220;native_handle_type&#8221; is a typedef, not a
         class member.
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Several classes
         described in this Clause have a member native_handle (of
@@ -21481,7 +12620,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Not a defect. native_handle_type is a typedef, but it is also a member of
@@ -21489,19 +12628,19 @@
       <td width="29">
         <p>US 96
 
- <td width="118">
+ <td width="75">
         <p>30.1.4
 
- <td width="85">
+ <td width="31">
         <p>2
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>There is no definition here for monotonic clock.
 
- <td width="536">
+ <td width="466">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">Implementations
         should use a <i>monotonic clock</i> to measure time for
@@ -21511,7 +12650,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue, together with UK 322. Detlef will write the issue, but not
@@ -21520,27 +12659,27 @@
         <p>UK<br>
         322
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.1.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Add at least a note explaining the intent
         for systems that do not support a monotonic clock.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue, together with UK 96. Note that the specification as is
@@ -21551,16 +12690,16 @@
         <p>UK<br>
         323
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">1
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The presence of
         a non-explicit variadic template constructor alongside an
         explicit single-argument constructor can lead to behaviour
@@ -21573,13 +12712,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Mark constructor template &lt;class F,
         class ...Args&gt; thread(F&amp;&amp; f, Args&amp;&amp;...
         args); as explicit and remove the single-argument
         constructor.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue, goes to review. Attention: Howard. Group agrees with the
@@ -21588,23 +12727,23 @@
         <p>UK<br>
         324
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.2.1.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Add thread::id
         support for std::hash
 
@@ -21614,7 +12753,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Not a defect. See [unord.hash], where std::thread:id is already listed as a
@@ -21622,16 +12761,16 @@
       <td width="29">
         <p>JP 77
 
- <td width="118">
+ <td width="75">
         <p align="left">30.2.1.2
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style=
         "margin-top: 0.04in; margin-bottom: 0.04in">
         "CopyConstructible" and "MoveConstructible" in
@@ -21642,86 +12781,86 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">Add
         a concept for constructor of thread.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Subset of US 93. Should be addressed under the issue corresponding to US 93.<tr valign="top">
       <td width="29">
         <p>JP 78
 
- <td width="118">
+ <td width="75">
         <p align="left">30.2.1.2
 
- <td width="85">
+ <td width="31">
         <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 width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">In
         "F and each Ti in Args", 'Ti' is not clear.
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Replace "Ti" with "args"
 
- <td width="178">
+ <td width="225">
         <p>
 
     Pass on to editor.<tr valign="top">
       <td width="29">
         <p>US 97
 
- <td width="118">
+ <td width="75">
         <p>30.2.1.3
 
- <td width="85">
+ <td width="31">
         <p>1
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p>detach-on-destruction may result in
         &#8220;escaped&#8221; threads accessing objects with
         bounded lifetime after the end of their lifetime.
 
- <td width="536">
+ <td width="466">
         <p>See document WG21 N2802=08-0312 written by Hans Boehm.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. To be discussed in full library group.<tr valign="top">
       <td width="29">
         <p align="left">US 98
 
- <td width="118">
+ <td width="75">
         <p align="left">30.2.1.3,<br>
         30.2.1.4
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p align="left"><br>
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">
         Change destruction behavior to undefined behavior, with a
         note strongly encouraging termination. See the attached
@@ -21730,7 +12869,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Duplicate of US 97.<tr valign="top">
@@ -21738,22 +12877,22 @@
         <p>UK<br>
         325
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.3.3
 
- <td width="85">
+ <td width="31">
         <p align="justify">2
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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
@@ -21763,7 +12902,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. The current
@@ -21773,16 +12912,16 @@
         <p>UK<br>
         326
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.3.3.2.1
 
- <td width="85">
+ <td width="31">
         <p align="justify">7
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">The precondition
         that the mutex is not owned by this thread offers
         introduces the risk of un-necessary undefined behaviour
@@ -21796,10 +12935,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Strike 30.3.3.2.1p7
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. Proposed resolution is
@@ -21808,16 +12947,16 @@
         <p>UK<br>
         327
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.3.3.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">4, 9, 14, 19
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">Not clear what
         the specification for error condition
         resource_deadlock_would_occur means. It is perfectly
@@ -21836,12 +12975,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Create an issue. Assigned to Lawrence Crowl. Note: not sure what try_lock
@@ -21852,28 +12991,28 @@
         <p>UK<br>
         328
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.3.3.2.2
 
- <td width="85">
+ <td width="31">
         <p align="justify">20
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">There is a missing precondition that owns
         is true, or an if(owns) test is missing from the effect
         clause
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Handle in same issue as UK 327. Also uncertain that the proposed resolution
@@ -21882,23 +13021,23 @@
         <p>UK<br>
         329
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Provide a simple
         function along the lines of: template&lt; typename F,
         typename ... Args &gt; requires Callable&lt; F, Args...
@@ -21921,7 +13060,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Not a defect. This class of feature has been rejected by the committee as a
@@ -21930,30 +13069,30 @@
         <p>UK<br>
         330
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.1
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <p align="left">30.5.1 (and then 30.5.7) refer to a
         specialisation of
         constructible_with_allocator_prefix&lt;&gt; However this
         trait is not in the CD, so references to it should be
         removed.
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Related to JP 79 and therefore subset of US 93. Should be addressed under
@@ -21961,20 +13100,20 @@
       <td width="29">
         <p>JP 79
 
- <td width="118">
+ <td width="75">
         <p align="left">30.5.1
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">The
         concept of UsesAllocator and Allocator should be used.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -22014,7 +13153,7 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Subset of US 93. Should be addressed under the issue corresponding to US 93.<tr valign="top">
@@ -22022,16 +13161,16 @@
         <p>UK<br>
         331
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.3
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -22041,12 +13180,12 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Create an issue. Assigned to Detlef. Suggested resolution probably makes
@@ -22055,16 +13194,16 @@
         <p>UK<br>
         332
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ed
 
- <td width="514">
+ <td width="375">
         <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
@@ -22075,13 +13214,13 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Pass on to editor. Detlef has volunteered to provide some wording.<tr valign="top">
@@ -22089,25 +13228,25 @@
         <p>UK<br>
         333
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">5
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ge
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Requires fully baked concepts for clause 30
 
- <td width="178">
+ <td width="225">
         <p>
 
     Subset of US 93. Should be addressed under the issue corresponding to US 93.<tr valign="top">
@@ -22115,16 +13254,16 @@
         <p>UK<br>
         334
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.4
 
- <td width="85">
+ <td width="31">
         <p align="justify">5
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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
@@ -22132,11 +13271,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Effects: If is_ready() would return false,
         block on the asynchronous result associated with *this.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. Proposed resolution is
@@ -22145,16 +13284,16 @@
         <p>UK<br>
         335
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">
         std::unique_future is MoveConstructible, so you can
         transfer the association with an asynchronous result from
@@ -22168,14 +13307,14 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Create an issue. Requires input from Howard. Probably NAD.<tr valign="top">
@@ -22183,16 +13322,16 @@
         <p>UK<br>
         336
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.4
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">It is possible
         to transfer ownership of the asynchronous result from one
         unique_future instance to another via the move-constructor.
@@ -22206,30 +13345,30 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     Create an issue. Detlef will look into it.<tr valign="top">
       <td width="29">
         <p>JP 80
 
- <td width="118">
+ <td width="75">
         <p align="left">30.5.4 ,<br>
         30.5.5
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left">
         Typo, duplicated "&gt;"
 
@@ -22240,11 +13379,11 @@
         <p align="left" style="margin-top: 0.04in">
         <br>
 
- <td width="536">
+ <td width="466">
         <p align="left" style="margin-top: 0.04in">
         Remove one
 
- <td width="178">
+ <td width="225">
         <p>
 
     Pass on to editor.<tr valign="top">
@@ -22252,16 +13391,16 @@
         <p>UK<br>
         337
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">shared_future
         should support an efficient move constructor that can avoid
         unnecessary manipulation of a reference count, much like
@@ -22269,10 +13408,10 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Add a move constructor
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Detlef will look into it.<tr valign="top">
@@ -22280,16 +13419,16 @@
         <p>UK<br>
         338
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.5
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">shared_future is currently
         CopyConstructible, but not CopyAssignable. This is
         inconsistent with shared_ptr, and will surprise users.
@@ -22302,7 +13441,7 @@
         retained by declaring such an instance as "const
         shared_future".
 
- <td width="536">
+ <td width="466">
         <p align="left">Remove "=delete"
         from the copy-assignment operator of shared_future. Add a
         move-constructor shared_future(shared_future&amp;&amp;
@@ -22317,7 +13456,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Detlef will look into it.<tr valign="top">
@@ -22325,21 +13464,21 @@
         <p>UK<br>
         339
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">6, 7
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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
@@ -22347,7 +13486,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. Proposed resolution is
@@ -22356,16 +13495,16 @@
         <p>UK<br>
         340
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">11, 12, 13
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <p align="left">There is an
         implied postcondition that the state of the promise is
         transferred into the future leaving the promise with no
@@ -22373,11 +13512,11 @@
 
         <p align="left"><br>
 
- <td width="536">
+ <td width="466">
         <p align="left">Postcondition: *this has no associated
         state.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. Proposed resolution is
@@ -22386,26 +13525,26 @@
         <p>UK<br>
         341
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Change promise::swap to take an rvalue
         reference.
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Detlef will look into it. Probably ready as it.<tr valign="top">
@@ -22413,27 +13552,27 @@
         <p>UK<br>
         342
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.6
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Add a non-member overload void
         swap(promise&amp;&amp; x,promise&amp;&amp; y){ x.swap(y); }
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Move to review, attention: Howard. Detlef will also look
@@ -22442,22 +13581,22 @@
         <p>UK<br>
         343
 
- <td width="118">
+ <td width="75">
         <p align="justify">30.5.6
 
- <td width="85">
+ <td width="31">
         <p align="justify">3
 
- <td width="62">
+ <td width="38">
         <p align="justify">Te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p align="left">Remove the
         constructor with the signature template &lt;class
         Allocator&gt; promise(allocator_arg_t, const Allocator&amp;
@@ -22465,7 +13604,7 @@
 
         <p align="left"><br>
 
- <td width="178">
+ <td width="225">
         <p>
 
     Create an issue. Detlef will look into it. Will solicit feedback from Pablo.
@@ -22473,21 +13612,21 @@
       <td width="29">
         <p>JP 81
 
- <td width="118">
+ <td width="75">
         <p align="left">30.5.8
 
- <td width="85">
+ <td width="31">
         <p align="left"><br>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p align="left" style="margin-top: 0.04in">
         There are not requirements for F and a concept of Allocator
         dose not use.
 
- <td width="536">
+ <td width="466">
         <p align="left">
         Correct as follows.
 
@@ -22597,7 +13736,7 @@
         packaged_task(allocator_arg_t, const <u>Alloc</u>&amp; a,
         F&amp;&amp; f);
 
- <td width="178">
+ <td width="225">
         <p>
 
     Subset of US 93. Should be addressed under the issue corresponding to US 93.
@@ -22605,16 +13744,16 @@
       <td width="29">
         <p>DE-23
 
- <td width="118">
+ <td width="75">
         <p>Annex B
 
- <td width="85">
+ <td width="31">
         <p>p2
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">DE-23 Recursive
         use of constexpr functions appears to be permitted. Since
@@ -22622,52 +13761,52 @@
         compile-time, Annex B "implementation quantities" should
         specify a maximum depth of recursion.
 
- <td width="536">
+ <td width="466">
         <p>In Annex B, specify a recursion depth of 256 or a larger
         value.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>DE-24
 
- <td width="118">
+ <td width="75">
         <p>Annex B
 
- <td width="85">
+ <td width="31">
         <p>p2
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <p>Add a miminum of 10 placeholders to Annex B.
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>DE-25
 
- <td width="118">
+ <td width="75">
         <p>Annex B
 
- <td width="85">
+ <td width="31">
         <p>p2
 
- <td width="62">
+ <td width="38">
         <p>te
 
- <td width="514">
+ <td width="375">
         <p style=
         "margin-top: 0.04in; margin-bottom: 0.04in">DE-25
         Specifying a minimum of 17 recursively nested template
@@ -22678,28 +13817,28 @@
         . The conclusion is that the metric "number of recursively
         nested template instantiations" is inapposite.
 
- <td width="536">
+ <td width="466">
         <p>Remove the bullet "Recursively nested template
         instantiations [17]".
 
- <td width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>FR 38
 
- <td width="118">
+ <td width="75">
         <p>C.2<br>
         [diffs.library]
 
- <td width="85">
+ <td width="31">
         <p>1
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>What is ISO/IEC 1990:9899/DAM
         1? My guess is that's a typo for ISO/IEC
 
@@ -22709,13 +13848,13 @@
         <p>make reference to things
         which were introduced by Amd.1).
 
- <td width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
@@ -22723,45 +13862,45 @@
         <p>UK<br>
         344
 
- <td width="118">
+ <td width="75">
         <p align="justify">Appendix D
 
- <td width="85">
+ <td width="31">
         <p align="justify"><br>
 
- <td width="62">
+ <td width="38">
         <p align="justify">Ge
 
- <td width="514">
+ <td width="375">
         <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 width="536">
+ <td width="466">
         <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 width="178">
+ <td width="225">
         <p>
 
     <tr valign="top">
       <td width="29">
         <p>FR 39
 
- <td width="118">
+ <td width="75">
         <p>Index
 
- <td width="85">
+ <td width="31">
         <p>
 
- <td width="62">
+ <td width="38">
         <p>ed
 
- <td width="514">
+ <td width="375">
         <p>Some definitions seem not
         indexed (such as /trivially copyable/ or
 
@@ -22771,10 +13910,10 @@
         increase the usefulness; having a separate index of all
         definitions is something which could also be considered).
 
- <td width="536">
+ <td width="466">
         <p>
 
- <td width="178">
+ <td width="225">
         <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