-
Notifications
You must be signed in to change notification settings - Fork 769
/
Copy patheditors-report-2013-05.jade
469 lines (452 loc) · 35.4 KB
/
editors-report-2013-05.jade
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
!!! 5
html
head
title C++ Editor's Report, May 2013
link(rel="stylesheet", type="text/css", href="http://fonts.googleapis.com/css?family=Droid+Serif")
link(rel="stylesheet", type="text/css", href="http://fonts.googleapis.com/css?family=Roboto+Slab")
link(rel="stylesheet", type="text/css", href="http://fonts.googleapis.com/css?family=Archivo+Black")
style
.content {
font-family: Droid Serif;
max-width: 600px;
}
.papers {
list-style: none;
}
.paper {
margin-bottom: 4px;
}
.paperdetail {
font-family: Roboto Slab;
font-size: small;
color: #444;
background-color: #ccc;
font-style: italic;
border-radius: 5px;
padding: 5px;
margin-top: 2px;
}
.issues {
list-style: none;
}
.issue {
margin-bottom: 4px;
}
.issuedetail {
font-family: Roboto Slab;
font-size: small;
color: #444;
background-color: #ccc;
font-style: italic;
border-radius: 5px;
padding: 5px;
margin-top: 2px;
}
.stat {
font-family: Archivo Black;
font-size: 64px;
color: #228;
}
.docheader {
float: right;
margin-right: 20px;
}
body
pre.docheader
| Document number N3692
| Date 2013-05-16
| Project Programming Language C++
| Reference ISO/IEC IS 14882:2011(E)
| Reply to Stefanus Du Toit
| Intel
.content
h1 C++ Editor's Report, May 2013
h3 Overview
h4 New Papers
p
| N3690 is the C++14 Committee Draft.
| N3691 is the latest C++ Working Draft. Other than the front cover, its
| contents are identical to N3690.
| Both papers contain the <a href="#changes">changes listed below</a>.
h4 Acknowledgements
p
| Thank you to Jonathan Wakely for providing git patches to the draft source
| for nearly all LWG papers.
p
| Thank you to Richard Smith for providing git patches to the draft source
| for his paper, N3652, Relaxing constraints on constexpr functions, and to
| Jeffrey Yasskin for providing patches for his paper, N3668,
| <code>std::exchange</code>.
p
| Thank you to the editor's committee for reviewing the C++14 Committee Draft.
| The editor's committee for the C++14 CD consists of:
| Alisdair Meredith, Daniel Krügler, Richard Smith, and Mike Miller.
p
| Thank you to everyone who provided editorial fixes to the draft. To submit a
| fix, follow <a href="https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue">these instructions</a>.
p
| Thank you to my employer, <a href="http://www.intel.com/">Intel Corporation</a>,
| for sponsoring my work as project editor.
h3 <a name="changes">Working Draft Changes</a>
h4 Statistics
p.stats.
The latest draft adds wording from<br/>
<span class="stat">64</span> <a href="#cwgissues">CWG issues</a>,
<span class="stat">11</span> <a href="#cwgpapers">CWG papers</a>,<br/>
<span class="stat">36</span> <a href="#lwgissues">LWG issues</a>,
<span class="stat">14</span> <a href="#lwgpapers">LWG papers</a>,<br/>
<span class="stat">5</span> <a href="#sg1issues">SG1 issues</a>, and
<span class="stat">1</span> <a href="#sg1papers">SG1 paper</a>.
h4 <a name="cwgissues">CWG Issues Applied</a>
p Resolutions from the following CWG issues were applied:
ul.issues
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#223"><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#223">CWG223</a></a> The meaning of deprecation
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#496">CWG496</a> Is a volatile-qualified type really a POD?
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#616">CWG616</a> Definition of "indeterminate value"
.issuedetail.
Also resolves <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#129">CWG129</a>, <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#240">CWG240</a>, <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#312">CWG312</a>, <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1013">CWG1013</a>.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1310">CWG1310</a> What is an "acceptable lookup result?"
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1318">CWG1318</a> Syntactic ambiguities with final
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1320">CWG1320</a> Converting scoped enumerations to bool
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1374">CWG1374</a> Qualification conversion vs difference in reference binding
.issuedetail.
Proposed wording tweaked slightly during application to add a missing
"or, if not that," to the now second-to-last bullet. Confirmed as the
right thing to do by Mike Miller.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1405">CWG1405</a> constexpr and mutable members of literal types
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1328">CWG1328</a> Conflict in reference binding vs overload resolution
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1330">CWG1330</a> Delayed instantiation of noexcept specifiers
.issuedetail.
Context in proposed wording did not precisely match the wording as
in N3485. Confirmed with Mike Miller that the end state should be
"...shall not denote an incomplete type or an rvalue reference type."
in the relevant sentence.
.issuedetail.
Added a comma after "e.g." - typo in proposed resolution.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1411">CWG1411</a> More on global scope :: in nested-name-specifier
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1412">CWG1412</a> Problems in specifying pointer conversions
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1413">CWG1413</a> Missing cases of value-dependency
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1425">CWG1425</a> Base-class subobjects of standard-layout structs
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1435">CWG1435</a> template-id as the declarator for a class template constructor
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1437">CWG1437</a> alignas in alias-declaration
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1442">CWG1442</a> Argument-dependent lookup in the range-based for
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1456">CWG1456</a> Address constant expression designating the one-past-the-end address
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1472">CWG1472</a> odr-use of reference variables
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1475">CWG1475</a> Errors in [[carries_dependency]] example
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1476">CWG1476</a> Definition of user-defined type
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1479">CWG1479</a> Literal operators and default arguments
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1481">CWG1481</a> Increment/decrement operators with reference parameters
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1489">CWG1489</a> Is value-initialization of an array constant initialization?
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1495">CWG1495</a> Partial specialization of variadic class template
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1502">CWG1502</a> Value initialization of unions with member initializers
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1503">CWG1503</a> Exceptions during copy to exception object
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1504">CWG1504</a> Pointer arithmetic after derived-base conversion
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1506">CWG1506</a> Value category of initializer_list object
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1510">CWG1510</a> cv-qualified references via decltype
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1511">CWG1511</a> const volatile variables and the one-definition rule
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1515">CWG1515</a> Modulo 2^n arithmetic for implicitly-unsigned types
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1516">CWG1516</a> Definition of "virtual function call"
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1522">CWG1522</a> Access checking for initializer_list array initialization
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1527">CWG1527</a> Assignment from braced-init-list
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1528">CWG1528</a> Repeated cv-qualifiers in declarators
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1532">CWG1532</a> Explicit instantiation and member templates
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1533">CWG1533</a> Function pack expansion for member initialization
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1535">CWG1535</a> typeid in core constant expressions
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1537">CWG1537</a> Optional compile-time evaluation of constant expressions
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1538">CWG1538</a> C-style cast in braced-init-list assignment
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1539">CWG1539</a> Definition of "character type"
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1541">CWG1541</a> cv void return types
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1543">CWG1543</a> Implicit conversion sequence for empty initializer list
.issuedetail.
Fix transcription problem in proposed wording:
<code>initializer_list</code> -> <code>initializer_list<int></code>
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1544">CWG1544</a> Linkage of member of unnamed namespace
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1550">CWG1550</a> Parenthesized throw-expression operand of conditional-expression
.issuedetail.
Also resolves <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1560">CWG1560</a>.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1553">CWG1553</a> sizeof and xvalue bit-fields
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1556">CWG1556</a> Constructors and explicit conversion functions in direct initialization
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1557">CWG1557</a> Language linkage of converted lambda function pointer
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1464">CWG1464</a> Negative array bound in a new-expression
.issuedetail.
Also resolves <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1559">CWG1559</a>.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1462">CWG1462</a> Deduction failure vs "ill-formed, no diagnostic required"
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1471">CWG1471</a> Nested type of non-dependent base
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1473">CWG1473</a> Syntax of literal-operator-id
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1477">CWG1477</a> Definition of a friend outside its namespace
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1482">CWG1482</a> Point of declaration of enumeration
.issuedetail.
Also resolved <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#977">CWG977</a>.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1487">CWG1487</a> When are inheriting constructors declared?
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1494">CWG1494</a> Temporary initialization for reference binding in list-initialization
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1507">CWG1507</a> Value initialization with trivial inaccessible default constructor
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1563">CWG1563</a> List-initialization and overloaded function disambiguation
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1605">CWG1605</a> Misleading parenthetical comment for explicit destructor call
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#903">CWG903</a> Value-dependent integral null pointer constants
.issuedetail.
Minor tweak to the proposed resolution: in [dcl.init]/5, added "the"
to "...obtained by converting *the* integer literal 0 (zero)".
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1213">CWG1213</a> Array subscripting and xvalues
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#1358">CWG1358</a> Unintentionally ill-formed constexpr function template instances
.issuedetail.
October 2012 Proposed Resolution.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3539.html#974">CWG974</a> Default arguments for lambdas
h4 <a name="cwgpapers">CWG Papers Applied</a>
p Proposed wording from the following CWG papers was applied:
ul.papers
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472">N3472</a> Binary Literals in the C++ Core Language
.paperdetail.
Appendix A (grammar summary) also updated.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3624">N3624</a> Pointer comparison vs qualification conversions
.paperdetail.
In the additions to [expr], terms like T1, C1, etc., were typeset in code font.
.paperdetail.
"pointers to member" was replaced by "pointers to members" in accordance with
existing practice in the standard.
.paperdetail.
In the new paragraph at the end of [expr], the reference to
"expr.qual" was fixed to refer to "conv.qual".
.paperdetail.
operator== and operator!= in body text were changed to "the ==
operator" and "the != operator" respectively. This makes it clear
that we are not talking about overloaded operators here.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639">N3639</a> Runtime-sized arrays with automatic storage duration
.paperdetail.
In [dcl.array]/1, removed bullet points from the last part of the major
bits of added text. The bulleted list was preceded by nothing and appeared
out of nowhere.
.paperdetail.
Added an index entry for "array of runtime bound" and "runtime bound, array of".
.paperdetail.
In [support.dynamic], bad_array_length also added to <new> synopsis.
.paperdetail.
Typeset types in comments to [dcl.array]/1 as code, including two existing
instances not added by the paper.
.paperdetail.
Improved grammar as follows:
"is invoked ... after the lifetime of the array ended" -> "... has ended"
.paperdetail.
Rearranged commas in [dcl.fct]/8 for consistent and correct grammar.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648">N3648</a> Wording Changes for Generalized Lambda-capture
.paperdetail.
Grammar reference updated.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653">N3653</a> Member initializers and aggregates
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664">N3664</a> Clarifying Memory Allocation
.paperdetail.
"size parameter" changed to "size argument" in reference to an allocation
function.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3667">N3667</a> Drafting for Core 1402
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651">N3651</a> Variable Templates (Revision 1)
.paperdetail.
The example requested by change set 6 was merged into the existing
example for that paragraph.
.paperdetail.
The order of "class/function/variable" was kept consistent in applying
change 8 in [temp.inst].
.paperdetail.
I struck "member function" from the added sentence
"If the explicit instantiation is for a variable or member function,
the unqualified-id in the declaration shall be a template-id." because
that case was already covered in the existing text.
.paperdetail.
I reordered the appearance of "variable template" to make it
consistent with the rest of the section in a few paragraphs.
.paperdetail.
I formatted "const" in "const variables" as fixed-width.
.paperdetail.
I added a missing "a" to "has constexpr specifier" in the existing
text.
.paperdetail.
I changed "template<typename T>" to "template<class T>" for
consistency with existing examples in the clause.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638">N3638</a> Return type deduction for normal functions
.paperdetail.
The grammar reference was updated.
.paperdetail.
N3638 was based off an earlier draft than N3485. This caused some
conflicts in the middle of the [dcl.spec.auto] changes. These were
resolved based on feedback from the paper author.
.paperdetail.
Replaced dangling non-normative sentence referring to
[dcl.spec.auto] from [dcl.type.simple] with a non-normative note to
make the paragraph easier to read.
.paperdetail.
Avoided sentence starting with a conjunction ("But once a return ...")
and instead use "..., however, ...".
.paperdetail.
Removed single quotation marks from "instantiates both 'f's".
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649">N3649</a> Generic (Polymorphic) Lambda Expressions (Revision 3)
.paperdetail.
Because of conflicts with N3638, I had to change the [dcl.spec.auto]
changes quite a bit, and I recommend CWG create an issue to review the
merged state.
.paperdetail.
In the example provided (f1, f2, g, h, glambda), it is not clear to me
what "ID" refers to in comments like "error: ID is not convertible".
.paperdetail.
Removed code font from "const" and "inline" in sentence usage, e.g. in
"For a generic lambda, the closure type has a public inline function".
An editorial issue was opened to make this consistent throughout the
draft.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652">N3652</a> Relaxing constraints on constexpr functions
.paperdetail.
Conflicts resolved as indicated by N3652.
.paperdetail.
In [class.copy]/26 replaced "copy/move each direct base class" with
"copy/move each direct base class subobject" to make wording
consistent with other section above, as suggested by CWG chair.
h4 <a name="lwgissues">LWG Issues Applied</a>
p Resolutions from the following LWG issues were applied:
ul.issues
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2091">LWG2091</a> Misplaced effect in m.try_lock_for()
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2092">LWG2092</a> Vague Wording for condition_variable_any
.issuedetail.
This change was made in [thread.condition.condvar] as the context and
issue description would suggest, rather than
[thread.timedmutex.requirements] as the proposed wording indicates
(presumably a copy-o from issue 2091).
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2145">LWG2145</a> error_category default constructor
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2147">LWG2147</a> Unclear hint type in Allocator's allocate function
.issuedetail.
"possibly const" formatted with "const" in code font, since that is
the prevalent (though not uniform) style in the draft.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2163">LWG2163</a> nth_element requires inconsistent post-conditions
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2169">LWG2169</a> Missing reset() requirements in unique_ptr specialization
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2172">LWG2172</a> Does atomic_compare_exchange_* accept v == nullptr arguments?
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2080">LWG2080</a> Specify when once_flag becomes invalid
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2144">LWG2144</a> Missing noexcept specification in type_index
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2174">LWG2174</a> wstring_convert::converted() should be noexcept
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2175">LWG2175</a> wstring_convert and wbuffer_convert validity
.issuedetail.
Improved the grammar of the first added sentence with a comma.
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2177">LWG2177</a> Requirements on Copy/MoveInsertable
.issuedetail.
I rephrased the new wording for grammar and clarity. Specifically, I
replaced "when evaluated the following postconditions hold" with
"its evaluation causes the following postcondition to hold" and I
changed "satisfying the MoveInsertable requirements" to "T being
MoveInsertable into X".
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2187">LWG2187</a> vector<bool> is missing emplace and emplace_back member functions
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2197">LWG2197</a> Specification of is_[un]signed unclear for non-arithmetic types
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2200">LWG2200</a> Data race avoidance for all containers, not only for sequences
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2211">LWG2211</a> Replace ambiguous use of "Allocator" in container requirements
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2222">LWG2222</a> Inconsistency in description of forward_list::splice_after single-element overload
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2225">LWG2225</a> Unrealistic header inclusion checks required
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2231">LWG2231</a> DR 704 removes complexity guarantee for clear()
.issuedetail.
General issues with this table logged at
https://github.com/cplusplus/draft/issues/120
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2209">LWG2209</a> assign() overspecified for sequence containers
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2109">LWG2109</a> Incorrect requirements for hash specializations
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2093">LWG2093</a> Throws clause of condition_variable::wait with predicate
.issuedetail.
I edited the first sentence of the new paragraph in
[thread.req.timing] for improved grammar and clarity.
.issuedetail.
I introduced the term "timeout-related exceptions" to make it clear
what is referred to by that phrase later on.
.issuedetail.
I dropped "any" from "any timeout-related exceptions" in some of the
Throws clauses modified to by the proposed wording to be consistent
with the other Throws clauses.
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2094</a> duration conversion overflow shouldn't participate in overload resolution
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2148</a> Hashing enums should be supported directly by std::hash
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2149</a> Concerns about 20.8/5
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2162</a> allocator_traits::max_size missing noexcept
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2176</a> Special members for wstring_convert and wbuffer_convert
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2207</a> basic_string::at should not have a Requires clause
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2229</a> Standard code conversion facets underspecified
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2235</a> Undefined behavior without proper requirements on basic_string constructors
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2128</a> Absence of global functions cbegin/cend
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2203</a> scoped_allocator_adaptor uses wrong argument types for piecewise construction
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2122</a> merge() stability for lists versus forward lists
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2196</a> Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2210</a> Missing allocator-extended constructor for allocator-aware containers
li.issue <a href="http://wiki.edg.com/twiki/pub/Wg21bristol/FormalMotions/N3673.html">LWG2098</a> Minor Inconsistency between promise::set_value and promise::set_value_at_thread_exit
h4 <a name="lwgpapers">LWG Papers Applied</a>
p Proposed wording from the following LWG papers was applied:
ul.papers
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3668">N3668</a> exchange() utility function, revision 3
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3545">N3545</a> An Incremental Improvement to integral_constant
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3644">N3644</a> Null Forward Iterators
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658">N3658</a> Compile-time integer sequences
.paperdetail.
Includes editorial change to simplify example with return type
deduction (as discussed by LWG) as allowed by N3638.
.paperdetail.
Updated the overview table in [utilities.general].
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3670">N3670</a> Wording for Addressing Tuples by Type: Revision 2
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671">N3671</a> Making non-modifying sequence operations more robust: Revision 2
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3656">N3656</a> make_unique (Revision 1)
.paperdetail.
The new overloads were also added to the <memory> synopsis.
.paperdetail.
Whitespace was tweaked to match the surrounding text.
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3654">N3654</a> Quoted Strings Library Proposal (Revision 2)
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3642">N3642</a> User-defined Literals for Standard Library Types (part 1 - version 4)
.paperdetail.
Re-ordered the basic_string literals so they are listed in the order char, char16_t, char32_t and wchar_t. This matches the other functions in Clause 21.
.paperdetail.
Changed const char *str to const char* str for consistency with asterisk placement in basic_string itself.
.paperdetail.
Changed operator"" to operator "" for consistency with core wording.
.paperdetail.
Added whitespace to duration literal declarations so they are aligned
.paperdetail.
Changed section title to "Suffixes for duration literals" instead of "Suffix for duration literals"
.paperdetail.
Use string, u16string etc. typedefs for basic_string
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3657">N3657</a> Adding heterogeneous comparison lookup to associative containers (rev 4)
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3672">N3672</a> A proposal to add a utility class to represent optional objects (Revision 4)
.paperdetail.
Updated the overview table in [utilities.general].
.paperdetail.
Placed after compile-time integer sequences.
.paperdetail.
Reorganized [optional.defs]/1 as an itemized list.
.paperdetail.
Reworded [optional.object]/2.
.paperdetail.
Reworded [optional.object.ctor]/2.
.paperdetail.
Added constexpr specifier to constructor declarations to match synopsis and Remarks.
.paperdetail.
Corrected [optional.object.observe]/18 to depend on both constructors.
.paperdetail.
Capitalized first letter of Remarks for operator bool().
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3669">N3669</a> Fixing constexpr member functions without const
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3662">N3662</a> C++ Dynamic Arrays
.paperdetail.
Placed between deque and forward_list, as opposed to at the very
end of [sequences].
.paperdetail.
Removed Allocator template parameter from comparison operators.
.paperdetail.
Used 'template <class T>' instead of 'template< typename T >'.
.paperdetail.
Declared member types public.
.paperdetail.
Referred to 23.2 for implementation-defined iterator types.
.paperdetail.
Added 'explicit' keyword to first declaration in [dynarray.cons].
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3655">N3655</a> TransformationTraits Redux, v2
.paperdetail.
Section 4 of the proposal was not applied, as per the LWG motion.
.paperdetail.
The added text was interspersed with the corresponding groups of
type declarations.
h4 <a name="sg1issues">SG1 Issues Applied</a>
p Resolutions from the following SG1 (Concurrency) issues were applied:
ul.issues
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2130">LWG2130</a> Missing ordering constraints
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2138">LWG2138</a> atomic_flag::clear should not accept memory_order_consume
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2140">LWG2140</a> Meaning of notify_all_at_thread_exit synchronization requirement?
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2190">LWG2190</a> Condition variable specification
li.issue <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3522.html#2185">LWG2185</a> Missing throws clause for future/shared_future::wait_for/wait_until
h4 <a name="sg1papers">SG1 Papers Applied</a>
p Proposed wording from the following SG1 (Concurrency) papers was applied:
ul.papers
li.paper <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659">N3659</a> Shared locking in C++, Revision 2
h4 Minor editorial changes
p For a full list of editorial changes, please see the <a href="http://github.com/cplusplus/draft/commits">C++ draft repository on GitHub</a>.