forked from cplusplus/draft
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathn4740.html
850 lines (611 loc) · 34.9 KB
/
n4740.html
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
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
<!DOCTYPE html><html><head><meta charset="utf-8"><style>html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body{
color:#444;
font-family:Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman',
"Hiragino Sans GB", "STXihei", "微软雅黑", serif;
font-size:12px;
line-height:1.5em;
background:#fefefe;
width: 45em;
margin: 10px auto;
padding: 1em;
outline: 1300px solid #FAFAFA;
}
a{ color: #0645ad; text-decoration:none;}
a:visited{ color: #0b0080; }
a:hover{ color: #06e; }
a:active{ color:#faa700; }
a:focus{ outline: thin dotted; }
a:hover, a:active{ outline: 0; }
span.backtick {
border:1px solid #EAEAEA;
border-radius:3px;
background:#F8F8F8;
padding:0 3px 0 3px;
}
::-moz-selection{background:rgba(255,255,0,0.3);color:#000}
::selection{background:rgba(255,255,0,0.3);color:#000}
a::-moz-selection{background:rgba(255,255,0,0.3);color:#0645ad}
a::selection{background:rgba(255,255,0,0.3);color:#0645ad}
p{
margin:1em 0;
}
img{
max-width:100%;
}
h1,h2,h3,h4,h5,h6{
font-weight:normal;
color:#111;
line-height:1em;
}
h4,h5,h6{ font-weight: bold; }
h1{ font-size:2.5em; }
h2{ font-size:2em; border-bottom:1px solid silver; padding-bottom: 5px; }
h3{ font-size:1.5em; }
h4{ font-size:1.2em; }
h5{ font-size:1em; }
h6{ font-size:0.9em; }
blockquote{
color:#666666;
margin:0;
padding-left: 3em;
border-left: 0.5em #EEE solid;
}
hr { display: block; height: 2px; border: 0; border-top: 1px solid #aaa;border-bottom: 1px solid #eee; margin: 1em 0; padding: 0; }
pre , code, kbd, samp {
color: #000;
font-family: monospace;
font-size: 0.88em;
border-radius:3px;
background-color: #F8F8F8;
border: 1px solid #CCC;
}
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 5px 12px;}
pre code { border: 0px !important; padding: 0;}
code { padding: 0 3px 0 3px; }
b, strong { font-weight: bold; }
dfn { font-style: italic; }
ins { background: #ff9; color: #000; text-decoration: none; }
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
ul, ol { margin: 1em 0; padding: 0 0 0 2em; }
li p:last-child { margin:0 }
dd { margin: 0 0 0 2em; }
img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
table { border-collapse: collapse; border-spacing: 0; }
td { vertical-align: top; }
@media only screen and (min-width: 480px) {
body{font-size:14px;}
}
@media only screen and (min-width: 768px) {
body{font-size:16px;}
}
@media print {
* { background: transparent !important; color: black !important; filter:none !important; -ms-filter: none !important; }
body{font-size:12pt; max-width:100%; outline:none;}
a, a:visited { text-decoration: underline; }
hr { height: 1px; border:0; border-bottom:1px solid black; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
pre, blockquote { border: 1px solid #999; padding-right: 1em; page-break-inside: avoid; }
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
@page :left { margin: 15mm 20mm 15mm 10mm; }
@page :right { margin: 15mm 10mm 15mm 20mm; }
p, h2, h3 { orphans: 3; widows: 3; }
h2, h3 { page-break-after: avoid; }
}
</style><title>N4740</title></head><body>
<h1>N4740 Editors' Report -- Programming Languages -- C++</h1>
<p>2018-04-02 <br />
Richard Smith (editor) (Google Inc) <br />
Dawn Perchik (co-editor) (Bright Side Computing, LLC) <br />
Thomas Köppe (co-editor) (Google DeepMind) <br />
<code><cxxeditor@gmail.com></code></p>
<h2>Acknowledgements</h2>
<p>Special thanks to
Jens Maurer
for performing many of the editorial fixes since N4727.</p>
<p>Thanks to Walter E Brown and Peter Sommerlad for
supplying LaTeX sources for their papers
<a href="http://wg21.link/p0551r3">P0551R3</a> (LWG motion 13)
and
<a href="http://wg21.link/p0753r2">P0753R2</a> (LWG motion 14).</p>
<p>Thanks to all those who have <a href="https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue">submitted editorial
issues</a>
and to those who have provided pull requests with fixes.</p>
<h2>New papers</h2>
<ul>
<li><a href="http://wg21.link/n4741">N4741</a> is the current working draft for C++20. It replaces <a href="http://wg21.link/n4727">N4727</a>.</li>
<li>N4740 is this Editors' Report.</li>
</ul>
<h2>Motions incorporated into working draft</h2>
<h3>Core working group motions</h3>
<p>CWG motion 1: <a href="http://wg21.link/p0968r0">Core issue resolutions</a> for 17 issue in "tentatively ready" status applied:</p>
<ul>
<li><a href="http://wg21.link/cwg1893">1893</a> Function-style cast with <em>braced-init-list</em>s and empty pack expansions</li>
<li><a href="http://wg21.link/cwg1910">1910</a> "Shall" requirement applied to runtime behavior</li>
<li><a href="http://wg21.link/cwg1983">1983</a> Inappropriate use of <em>virt-specifier</em></li>
<li><a href="http://wg21.link/cwg2059">2059</a> Linkage and deduced return types</li>
<li><a href="http://wg21.link/cwg2081">2081</a> Deduced return type in redeclaration or specialization of function template</li>
<li><a href="http://wg21.link/cwg2088">2088</a> Late tiebreakers in partial ordering</li>
<li><a href="http://wg21.link/cwg2092">2092</a> Deduction failure and overload resolution</li>
<li><a href="http://wg21.link/cwg2164">2164</a> Name hiding and <em>using-directives</em></li>
<li><a href="http://wg21.link/cwg2226">2226</a> Xvalues vs lvalues in conditional expressions</li>
<li><a href="http://wg21.link/cwg2227">2227</a> Destructor access and default member initializers</li>
<li><a href="http://wg21.link/cwg2229">2229</a> Volatile unnamed bit-fields</li>
<li><a href="http://wg21.link/cwg2234">2234</a> Missing rules for <em>simple-template-id</em> as <em>class-name</em></li>
<li><a href="http://wg21.link/cwg2235">2235</a> Partial ordering and non-dependent types</li>
<li><a href="http://wg21.link/cwg2237">2237</a> Can a <em>template-id</em> name a constructor?</li>
<li><a href="http://wg21.link/cwg2255">2255</a> Instantiated static data member templates</li>
<li><a href="http://wg21.link/cwg2260">2260</a> Explicit specializations of deleted member functions</li>
<li><a href="http://wg21.link/cwg2299">2299</a> <code>constexpr</code> vararg functions</li>
</ul>
<p>CWG motion 2: <a href="http://wg21.link/p0840r2">P0840R2 "Language support for empty objects"</a></p>
<p>CWG motion 3: <a href="http://wg21.link/p0962r1">P0962R1 "Relaxing the range-for customization point finding rules"</a></p>
<p>CWG motion 4: <a href="http://wg21.link/p0969r0">P0969R0 "Allow structured bindings to accessible members"</a></p>
<p>CWG motion 5: <a href="http://wg21.link/p0961r1">P0961R1 "Relaxing the structured bindings customization point finding rules"</a></p>
<p>CWG motion 6: <a href="http://wg21.link/p0634r3">P0634R3 "Down with <code>typename</code>!"</a></p>
<p>CWG motion 7: <a href="http://wg21.link/p0780r2">P0780R2 "Allow pack expansion in lambda <em>init-capture</em>"</a></p>
<p>CWG motion 8: <a href="http://wg21.link/p0479r5">P0479R5 "<code>likely</code> and <code>unlikely</code> attributes"</a></p>
<p>CWG motion 9: <a href="http://wg21.link/p0905r1">P0905R1 "Symmetry for spaceship"</a> <strong>with wording changes, see below</strong></p>
<p>CWG motions 10 and 11 apply to the Coroutines TS.</p>
<h3>Library working group motions</h3>
<p>LWG motions 1 and 2 apply to the Parallelism TS.</p>
<p>LWG motion 3 applies to the Reflection TS.</p>
<p>LWG motion 4 applies to the Coroutines TS.</p>
<p>LWG motion 5 applies to the Networking TS.</p>
<p>LWG motion 6 applies to the Library Fundamentals TS.</p>
<p>LWG motion 7: <a href="http://wg21.link/p0888r0">Library issue resolutions</a> for 29 issues in "Ready" or "Tentatively Ready" status applied:</p>
<ul>
<li><a href="http://wg21.link/lwg2164">2164</a> What are the semantics of <code>vector.emplace(vector.begin(), vector.back())</code>?</li>
<li><a href="http://wg21.link/lwg2243">2243</a> <code>istream::putback</code> problem</li>
<li><a href="http://wg21.link/lwg2816">2816</a> <code>resize_file</code> has impossible postcondition</li>
<li><a href="http://wg21.link/lwg2843">2843</a> Unclear behavior of <code>std::pmr::memory_resource::do_allocate()</code></li>
<li><a href="http://wg21.link/lwg2849">2849</a> Why does <code>!is_regular_file(from)</code> cause <code>copy_file</code> to report a "file already exists" error?</li>
<li><a href="http://wg21.link/lwg2851">2851</a> <code>std::filesystem</code> enum classes are now underspecified</li>
<li><a href="http://wg21.link/lwg2969">2969</a> <code>polymorphic_allocator::construct()</code> shouldn't pass <code>resource()</code></li>
<li><a href="http://wg21.link/lwg2975">2975</a> Missing case for <code>pair</code> construction in scoped and polymorphic allocators</li>
<li><a href="http://wg21.link/lwg2989">2989</a> <code>path</code>'s stream insertion operator lets you insert everything under the sun</li>
<li><a href="http://wg21.link/lwg3000">3000</a> <code>monotonic_memory_resource::do_is_equal</code> uses <code>dynamic_cast</code> unnecessarily</li>
<li><a href="http://wg21.link/lwg3004">3004</a> [string.capacity] and [vector.capacity] should specify time complexity for <code>capacity()</code></li>
<li><a href="http://wg21.link/lwg3005">3005</a> Destruction order of arrays by <code>make_shared</code>/<code>allocate_shared</code> only recommended?</li>
<li><a href="http://wg21.link/lwg3007">3007</a> <code>allocate_shared</code> should rebind allocator to cv-unqualified <code>value_type</code> for construction</li>
<li><a href="http://wg21.link/lwg3009">3009</a> Including <code><string_view></code> doesn't provide <code>std::size/empty/data</code></li>
<li><a href="http://wg21.link/lwg3013">3013</a> (<code>recursive_</code>)<code>directory_iterator</code> construction and traversal should not be <code>noexcept</code></li>
<li><a href="http://wg21.link/lwg3014">3014</a> More <code>noexcept</code> issues with filesystem operations</li>
<li><a href="http://wg21.link/lwg3015">3015</a> <code>copy_options::unspecified</code> underspecified</li>
<li><a href="http://wg21.link/lwg3017">3017</a> <code>list</code> <code>splice</code> functions should use <code>addressof</code></li>
<li><a href="http://wg21.link/lwg3026">3026</a> <code>filesystem::weakly_canonical</code> still defined in terms of <code>canonical(p, base)</code></li>
<li><a href="http://wg21.link/lwg3030">3030</a> Who shall meet the requirements of <code>try_lock</code>?</li>
<li><a href="http://wg21.link/lwg3034">3034</a> <a href="http://wg21.link/p0767r1">P0767R1</a> breaks previously-standard-layout types</li>
<li><a href="http://wg21.link/lwg3035">3035</a> <code>std::allocator</code>'s constructors should be <code>constexpr</code></li>
<li><a href="http://wg21.link/lwg3039">3039</a> Unnecessary <code>decay</code> in <code>thread</code> and <code>packaged_task</code></li>
<li><a href="http://wg21.link/lwg3041">3041</a> Unnecessary <code>decay</code> in <code>reference_wrapper</code></li>
<li><a href="http://wg21.link/lwg3042">3042</a> <code>is_literal_type_v</code> should be <code>inline</code></li>
<li><a href="http://wg21.link/lwg3043">3043</a> Bogus postcondition for <code>filesystem_error</code> constructor</li>
<li><a href="http://wg21.link/lwg3045">3045</a> <code>atomic<</code><em><code>floating-point</code></em><code>></code> doesn't have <code>value_type</code> or <code>difference_type</code></li>
<li><a href="http://wg21.link/lwg3048">3048</a> <code>transform_reduce(exec, first1, last1, first2, init)</code> discards execution policy</li>
<li><a href="http://wg21.link/lwg3051">3051</a> Floating point classifications were inadvertently changed in <a href="http://wg21.link/p0175">P0175</a></li>
</ul>
<p>LWG motion 8: <a href="http://wg21.link/p1003r0">Library issue resolutions</a> for 2 issues in "Immediate" status applied:</p>
<ul>
<li><a href="http://wg21.link/lwg2946">2946</a> <a href="http://wg21.link/lwg2758">LWG 2758</a>'s resolution missed further corrections</li>
<li><a href="http://wg21.link/lwg3075">3075</a> <code>basic_string</code> needs deduction guides from <code>basic_string_view</code></li>
</ul>
<p>LWG motion 9: <a href="http://wg21.link/p0754r2">P0754R2 "<code><version></code>"</a></p>
<p>LWG motion 10: <a href="http://wg21.link/p0809r0">P0809R0 "Comparing unordered containers"</a>, resolving 1 library issue:</p>
<ul>
<li><a href="http://wg21.link/lwg2831">2831</a> Equality can be defined when <code>Hash</code> function objects have different behaviour</li>
</ul>
<p>LWG motion 11: <a href="http://wg21.link/p0355r7">P0355R7 "Extending <code>chrono</code> to calendars and time zones"</a> <strong>with wording changes, see below</strong></p>
<p>LWG motion 12: <a href="http://wg21.link/p0966r1">P0966R1 "<code>string::reserve</code> should not shrink"</a></p>
<p>LWG motion 13: <a href="http://wg21.link/p0551r3">P0551R3 "Thou shalt not specialize <code>std</code> function templates!"</a></p>
<p>LWG motion 14: <a href="http://wg21.link/p0753r2">P0753R2 "Manipulators for C++ synchronized buffered ostream"</a></p>
<p>LWG motion 15: <a href="http://wg21.link/p0122r7">P0122R7 "<code><span></code>"</a> <strong>with wording changes, see below</strong></p>
<p>LWG motion 16: <a href="http://wg21.link/p0858r0">P0858R0 "Constexpr iterator requirements"</a></p>
<h2>Notable editorial changes</h2>
<h3>CWG motion 9</h3>
<p>After consultation with CWG, the wording for injecting additional <code>operator<=></code>
candidates has been editorially reworked, introducing a named set of "rewritten
candidates" in the place of the ad-hoc additional lookups previously specified.
That change allows the wording of this motion to be expressed more directly,
but, as a consequence, the wording changes applied for this paper differ
substantially from those moved.</p>
<h3>LWG motion 11</h3>
<p>This paper introduces a large amount of new text (~78 pages), and as such a
substantial quantity of editorial changes were necessary to align the moved
wording with the Working Draft's style guidelines:</p>
<ul>
<li>Reordered synopsis to match detailed description.</li>
<li>Significant changes to stable names, per style guide.</li>
<li>Added missing <code>zoned_traits</code> to <code><chrono></code> synopsis.</li>
<li>Removed redundant <code>chrono::</code> qualification in synopsis.</li>
<li>[time.duration.io] Significant wording changes for comprehensibility.</li>
<li>Adjusted return type of <code>clock_cast</code> in synopsis to match that in detailed description.</li>
<li>Added subheadings to clock cast description, replacing line comments in the middle of the wording.</li>
<li>Adjusted specification of <code>clock_cast</code> to avoid awkward "at least one of [...] exactly one of"
construction and to avoid references to bullet numbers in the body text.</li>
<li>Reordered parsing and formatting sections to the end.</li>
<li>Removed descriptions for <code>operator!=</code>, <code>operator></code>, <code>operator<=</code>, <code>operator>=</code> overloads
that are covered by [operators]</li>
<li>Removed some tutorial front-matter and design discussion from <code>day</code>, <code>month</code>, <code>year</code>, <code>weekday</code>, etc.</li>
<li><code>operator-(month, month)</code>, <code>operator-(weekday, weekday)</code>:
specify returned value in <em>Returns:</em> element rather than
splitting the specification across <em>Returns:</em> and <em>Remarks:</em>.</li>
<li>Added subheadings for the new classes to separate member and non-member function descriptions</li>
<li>Modified <code>time_of_day</code> examples to include sample code producing the given output</li>
<li>Removed exposition-only members <code>tzdb::next</code> and <code>tzdb_list::head_</code>
that are not actually used in the exposition, after consultation with LWG.</li>
<li>Modified leap-second example to not require updates each time a leap-second is added.</li>
</ul>
<h3>LWG motion 15</h3>
<ul>
<li>Rearranged sectioning to match our normal style.</li>
<li>Removed <code>std::</code> from type names in class definition.</li>
<li>Reordered member descriptions to match the style we use elsewhere.</li>
<li>Rewrote the <code>subspan()</code> wording to avoid deeply-nested expression and to
clarify what type is denoted by the <em>see below</em> in the synopsis.</li>
</ul>
<h3>Simplification of non-member <code>swap</code> presentation</h3>
<p>The specification for the non-member <code>swap</code> function for container types has
been consolidated in the container requirements table, replacing the former
presentation which repeated the description once for each container.</p>
<p>This removes the subclauses
[deque.special],
[forwardlist.special],
[list.special],
[vector.special],
[map.special],
[multimap.special],
[set.special],
[multiset.special],
[unord.map.swap],
[unord.multimap.swap],
[unord.set.swap],
and
[unord.multiset.swap].</p>
<h3><code>reverse_iterator</code> subclause consolidation</h3>
<p><code>reverse_iterator</code> previously had one subclause for each member function,
in violation of our normal presentation style. These subclauses have been
merged into groups of related functionality as follows:</p>
<ul>
<li>[reverse.iter.op=] has been merged into [reverse.iter.cons]</li>
<li>[reverse.iter.{op==, op<, op!=, op>, op>=, op<=}] have been merged into [reverse.iter.cmp]</li>
<li>[reverse.iter.{op.star, opref, opindex}] have been merged into [reverse.iter.elem]</li>
<li>[reverse.iter.{op+, op-, op++, op+=, op--, op-=}] have been merged into [reverse.iter.nav]</li>
<li>[reverse.iter.{opdiff, opsum, make}] have been merged into [reverse.iter.nonmember]</li>
<li>[reverse.iter.ops] became empty after the above changes and has been removed.</li>
</ul>
<h3>Simplification of <code>basic_regex</code> constant presentation</h3>
<p>The presentation style used for the synopsis of the <code>basic_regex</code> synonyms
for the <code>std::regex_constants</code> has been shortened by use of a typedef, and
the subclause [re.regex.const] containing redundant out-of-line descriptions
of those flags has been removed.</p>
<h3>Cleanup of uses of the word "concept"</h3>
<p>In the Working Draft, the word "concept" is used both in the technical sense,
denoting a C++ concept, and informally, denoting an idea or notion. We have
editorially cleaned up a few of the more confusing and ambiguous instances of
the term; most notably, Clause 6, formerly named "Basic concepts", is now
named "Basics".</p>
<h2>Minor editorial fixes</h2>
<p>A log of editorial fixes made to the working draft since N4727 is below.
This list excludes changes
that do not affect the body text or only affect whitespace or typeface. For a
complete list including such changes (or for the actual deltas applied by these
changes), consult the <a href="https://github.com/cplusplus/draft/compare/n4727...n4741">draft sources on github</a>.</p>
<pre><code>commit 17191eca85eebcacbc3ef37e61ee51103d892268
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Mar 28 21:05:41 2018 +0200
[any.class] Rephrase small-object optimization
commit 05675f74017966048a4db1a5c5419be357082622
Author: Thomas Köppe <tkoeppe@google.com>
Date: Mon Apr 2 22:44:03 2018 +0100
[any.class, optional.optional] Add missing "namespace std" around class definitions.
commit 2fcacf3f23a5fbf9cd95611342803ba536904d01
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Apr 2 13:45:41 2018 -0700
[container.node] Remove placeholder class name from subheadings.
Partially addresses #1242.
commit 87ae756d027d7e611d6e89f7d3232a95b6c72203
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Mon Apr 2 21:56:40 2018 +0200
[xrefdelta] Fixes for reverse_iterator cleanup (#2015)
commit 4aa55de012f85e9f250f2c608e00a351fc9db9f1
Author: Thomas Köppe <tkoeppe@google.com>
Date: Mon Apr 2 13:40:32 2018 +0100
[layout] Place footnotes at the bottom of the page. (#1830)
This uses a feature introduced by memoir 3.7e, '\feetatbottom',
which makes footnotes appear at the bottom of the page, rather
than immediately following the main text.
commit 5b5d225156372b717d84e0137ab759626a8886f4
Author: Hubert Tong <hstong@ca.ibm.com>
Date: Mon Apr 2 00:29:33 2018 -0400
[temp.concept]: Use note; no syntax for explicit specialization, etc.
Explicit specialization, etc. of a concept cannot be formed
syntactically. As such, a further rule to prevent such constructs is
redundant as normative text.
Implements the proposed direction from core/2017/07/2719.
commit bec67956e817d7edd02bdbffe5b1254113102928
Author: Richard Smith <richard@metafoo.co.uk>
Date: Sun Apr 1 20:11:03 2018 -0700
[over.match.best] Use new "rewritten candidates" terminology to simplify
wording.
commit 51684d21aa98c6cf20a44274f38ffd07b191e2f2
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 26 18:53:28 2018 -0700
[over.match.oper] Refactor the <=> rewrite candidate rules for clarity.
commit e0a88df11e5cf0988b40dd65218d7ce9f456c763
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 11:15:42 2018 +0200
[ostream.manip,time] Replace "can not" with "cannot"
commit 6c9e27dab526298771cdbf1a8dacf165f6547ead
Author: Tony Van Eerd <tvaneerd@gmail.com>
Date: Sun Apr 1 22:14:59 2018 -0400
[sequence.reqmts] Convert advice on container selection into a note.
Also separate out the advice for std::array from that for std::vector and emphasize the main message.
commit 7e4b556f44c47c70c4d1e93c5b3c82b01a949326
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 24 19:42:20 2018 +0100
[implimits] Clarify meaning of implementation limits
commit b1c4c87a7ca880e4d2e46cb9b62517e940ef0339
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Feb 20 22:55:17 2018 +0100
[lib] Replace 'requirements of FrobMunchable'
with 'FrobMunchable requirements'.
commit 2a1d53b1820a460066ae374a95529c7def2dda16
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Feb 20 22:27:27 2018 +0100
[lib] Use table references for CamelCase requirements.
commit dbeb68f0dd7bb8fd950f33a94409b9d5ba778729
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Mon Feb 19 22:44:54 2018 +0100
[lib] Use "shall satisfy", not "shall meet", for requirements.
commit 8738c6b38db45d06724e4a75afd2134d3f6e6f3f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 23 21:27:11 2018 +0100
[containers] Removed redundant specifications of non-member swap
commit 4d3434c2c9ed41c31925172948ff81166f623f64
Author: eus <eus@member.fsf.org>
Date: Mon Apr 2 03:41:11 2018 +0200
[expr.ass] Clarify description of simple assignment
Replace vague "value of the expression" wording with more-precise "result of the right operand".
commit 1b4da01c47fcf7522fa3df0d8c0b96ed840f4103
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sun Mar 18 17:56:14 2018 +0100
[associative.reqmts] Turn emphasis into a note.
commit 1a9fd49cdf58d6dfe8da51dcad93ce8f73f144e0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Mon Feb 19 18:37:49 2018 +0100
[expr.dynamic.cast] Remove redundant statements on casting away constness
commit 73bfbf2d8a40822779dfdd544f5112fd2096a7d9
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Feb 17 11:26:07 2018 +0100
[stmt.while] Generalize the equivalence for a declaration as the condition.
commit 1d50d2d2d2b39dda529bbfe26d5f144a8ec3eee0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Feb 15 22:02:06 2018 +0100
[over.match.oper] Add a note for conversions on synthesized candidates.
commit 63dd5c67b22fb48d79e86028ea0564a3d02ffd7f
Author: Richard Smith <richard@metafoo.co.uk>
Date: Sun Apr 1 17:31:39 2018 -0700
[utility] Convert hanging paragraph into [utility.syn] introduction.
For #1771.
commit eb4d1fec2fc26285b9586e2ace2c289167934811
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Feb 13 22:36:16 2018 +0100
'floating type' is not a defined term in C++
commit 4b5d9adaaff8b2bf09f1a5a88e8875347adb6714
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Nov 16 00:48:48 2017 +0100
[unique.ptr] Remove definition of 'transfers ownership'.
It is mostly subsumed by the detailed descriptions of the move
constructors and assignment operators.
commit a257a072efe2b6f2fe2dbdc5529b14315b08fbd8
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 28 10:08:02 2018 +0100
[dcl.spec.auto] Use of undeduced placeholder types
As discussed for CWG 2285, variables declared with a
placeholder type should never reference itself in the
initializer. Similarly, clarify the treatment of
deduced function return types.
commit 27d7912784f9a092b1c5263aeb6d80838d04eac6
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 28 23:49:26 2018 +0100
[std] Review cross-references to [expr.prim]
Cross-references to [expr.prim] should instead point to one
of its subclauses.
commit a7fc1b661981367e3976053420488e99e22f79af
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sun Mar 25 16:31:20 2018 +0200
[lib] Avoid 'shall' and 'should' in footnotes.
commit 340eac6a322c3f70734f506c627237fe58ef9e22
Author: timsong-cpp <rs2740@gmail.com>
Date: Sat Mar 31 15:55:36 2018 -0400
[ostream.manip] Fix typo where "basic_osyncbuf" should be "basic_syncbuf" (#2004)
commit ff08270c5411ac37c32b7c1161c1ff906b7d324e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 21:13:57 2018 +0200
[span.elem] Fix misplaced colon (#2007)
commit e7479664be7bacd829a31b8302c5a9f38efb6313
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 18:12:01 2018 +0200
[reverse.iterators] Dissolve single-item subclauses. (#1832)
commit 6209ca1f73c66cf19c50e558546d1c9e537ba253
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 16:39:28 2018 +0200
[locale] Remove class name repeated in subheadings (#1932)
commit 296a41539c6e2b8b16f6c706d7d2185f7ef7f255
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 16:39:02 2018 +0200
[containers] Remove class name repeated in subheadings (#1933)
commit 31d6168980ef064112d1ad5498635fa9ca07bc65
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 01:35:57 2018 +0200
[expr.rel] Clarify auxiliary partial ordering (#1977)
commit 720b0695962cf4b37d9e0c204131d8d38a4b04de
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 01:32:28 2018 +0200
Remove uses of 'concept' with ordinary English meaning. (#1918)
commit 10bcbb745f0783dfefddab24755c36022c3df798
Author: Jonathan Wakely <cxx@kayari.org>
Date: Wed Mar 21 14:17:30 2018 +0000
[sequences] Add exposition-only alias template for deduction guides.
commit 3fca4f451709b90435d3f84ffe5d7b13763cf58d
Author: Jonathan Wakely <cxx@kayari.org>
Date: Wed Mar 21 14:01:31 2018 +0000
[associative], [unord] Use \placeholder for deduction guide alias templates.
Also rename iter_val_t to iter-mapped-type and then add iter-value-type for value_type.
Fixes #1523
commit 174bec6cf075f5234bebdba8361ebb477bb7a84a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 00:35:05 2018 +0200
[utilities] Move chars_format bitmask statement to [charconv.syn] (#1992)
commit 22ad3d732bb6f1692693f778bf75d06e5cf8a545
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 24 18:46:59 2018 +0100
[lib] \xref may refer to standards other than C
commit 013c6e02583ab0ca723b21be4e4832ec450b4ba3
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 00:14:20 2018 +0200
Index all mentions of 'implementation-dependent' (#1967)
commit d17c6071d4f1db70b6335b3636150c8266e7d25d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 31 00:11:54 2018 +0200
Typeset ordinals as "i^\text{th}" instead of "i-th" (#2003)
commit 3b582e7e19277a8b5a8bb94eab848704a734ef29
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 23:38:52 2018 +0200
[ios.base] Disambiguate names to distinguish parameters from static data members (#1969)
commit cba9d3374881202621385e70323940780cb1f39b
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 23:35:41 2018 +0200
[support.types.byteops] Move 'Remarks' to after 'Effects' (#1973)
commit ea4048f5899f9136820240aed2703a4762547552
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 23:32:59 2018 +0200
[time.duration.nonmember] Replace type designator "CR" with its definition (#1985)
commit 131dfa601c0ad1d53124079ee8142ffcbd825490
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 23:30:46 2018 +0200
[conv.fctptr, special] Pointers to members designate their target (#1968)
commit 47a27a8432016c86d3a20b0600524f0331531761
Author: FrankHB <frankhb1989@gmail.com>
Date: Sat Mar 31 05:09:20 2018 +0800
[over.best.ics] Fix capitalization of "conversion" in p6 (#1987)
To avoid confusion, occurrence of "derived-to-base conversion" should not be with capital letter "C", which implies the name of a conversion category. The rank is already specified at the end of the paragraph.
commit 4143715f45af009dd98ffef02e8e1c695048e324
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 23:04:05 2018 +0200
CWG2345 [stmt.stmt, stmt.dcl] Jumping across initializers in init-statements and conditions (#1949)
commit 42e35cf1d7a0b8084c310a4ca8ee02a3aeb127df
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 22:59:29 2018 +0200
[dcl.fct.def.delete] Adjust 'onlydouble' example. (#1950)
commit cc5becb7e47b6f7bc53d3ad68bcfd3f0b8087025
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 22:57:35 2018 +0200
[temp.spec] Fix cross-reference to one-definition rule. (#1980)
commit 174c44e85b419eaedf3f1d97409be889c5d72b17
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 17:15:42 2018 +0200
[temp.local] Fix example not to name the constructor. (#1981)
commit 9355f5dd3ecf1186f139d16629f180f327ca9e59
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 17:13:19 2018 +0200
[re.regex] Avoid duplicate list of constants (#1984)
Shorten the synopsis and remove [re.regex.const].
commit 9c74ada42d85359d1ef83e78de359fc07de7c0db
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 17:05:55 2018 +0200
[class.temporary] Repair example (#1944)
commit 035bd47dcb5e72b7471892a0fe005ea4daa5ece8
Author: Eelis <github.com@contacts.eelis.net>
Date: Fri Mar 30 17:03:42 2018 +0200
Remove [facets.examples]. (#1957)
commit dcf7f0514bf02092910788911a52e287d23594ef
Author: Jonathan Wakely <github@kayari.org>
Date: Fri Mar 30 16:01:50 2018 +0100
[error.reporting] Change \rSec3 to \rSec2 (#1954)
Fixes #1953
commit 1fe02a2c9ff79d1eb0bbe8c3732ef4a5814751c8
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 16:59:48 2018 +0200
[access] Remove inappropriate uses of \term (#1940)
commit 031d2bd4729b39be85822cecd7ca340985a8963e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 16:57:50 2018 +0200
[intro.abstract] Change example for unspecified behavior. (#1930)
commit feb53073b17f9b14787f7aa0d92fa4dde2b5c62e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Mar 30 16:54:26 2018 +0200
[insert.iterators] Dissolve single-item subclauses. (#1924)
commit 69ce701c5b37508fcc21b2396476b7f53252dfde
Author: Thomas Köppe <tkoeppe@google.com>
Date: Thu Mar 29 01:48:06 2018 +0100
[views.span] Editorial review fixes:
* [span.sub] Refactor the specification of subspan() slightly to define the return type precisely. Note that when Extent is not dynamic, then Extent and size() are the same, so we can say "size()" in both cases unconditionally.
* Introduce new heading "Overview [span.overview]" to remove hanging paragraphs in [views.span].
* Rephrase "Extent < dynamic_extent" to "Extent is negative and not equal to dynamic_extent" to avoid unnecessary dependency on details of dynamic_extent.
commit 88d223ccf2aa7d822fc1db6c14719c215816acf6
Author: Richard Smith <richard@metafoo.co.uk>
Date: Thu Mar 29 17:47:29 2018 -0700
[ostream.manip] Rephrase references to exposition-only variable "buf",
and add "Calls" to Effects: clause to match our style guide.
commit e1e43280e84f438edd331a8e5142c1a0760d8cf4
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 26 15:21:35 2018 -0700
Add normative references to ISO 8601 and RFC 6557, referenced
normatively by P0355R7.
Fixes #1971.
commit 35b73d1ce73e0dae89adae4966eea3197dfc6123
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 26 18:10:25 2018 -0700
[temp.variadic] Clarify what the elements of pack expansions are.
Also some minor wording cleanups: strike a stray "identifier" and
make paragraph 3 properly parallel to paragraphs 1 and 2.
commit 13f4e960592e662a275ddcc7be1bc7bc6e00bfa8
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 26 17:39:24 2018 -0700
[temp.res] Convert note to footnote to avoid breaking up flow,
add back introductory sentence for the template validity rule,
and fix formatting of example.
commit dec138c4f884ff6bc348da80bc7983da0a95455c
Author: Richard Smith <richard@metafoo.co.uk>
Date: Sat Mar 17 18:06:07 2018 -0400
[temp.res] Clarify that we're talking about the declarator-id of
the function or function template, not that of the
parameter-declaration.
commit 9192d658321ebf900a1c3c52931cbf04a15b5b2f
Author: Dawn Perchik <dperchik@embarcadero.com>
Date: Mon Mar 26 18:57:26 2018 -0700
[diff] Replace "as the following example illustrates" with "For example" for consistency.
commit 0ad3281f3deb677f939311d3464f1155d6fc3fcc
Author: Dawn Perchik <dperchik@embarcadero.com>
Date: Mon Mar 26 18:50:58 2018 -0700
[diff] Be consistent in formatting and add introductions to examples.
commit 7066a903c55cffe1ca8ba8318b83b1376ed1c2b8
Author: Richard Smith <richard-github@metafoo.co.uk>
Date: Fri Mar 16 22:00:59 2018 -0400
[expr.reinterpret.cast] Clarify that pointer->int type restriction looks at the type not the pointer value.
We were imprecise in what we meant by "large enough to hold it", but the intent is clear.
commit 359cc0cbece331e02787b5efd6eee4b3f0906920
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Mon Feb 19 18:44:11 2018 +0100
[dcl.dcl] Change example for static_assert (#1923)
commit 5a98cbfbf989151425261cb4a982c4b0b26f1a7d
Author: Casey Carter <Casey@Carter.net>
Date: Fri Feb 16 09:29:00 2018 -0800
[fs.path.nonmember] Fix pluralization/possessive (#1929)
commit a82582e97b4e4abaed32ea8fbe383b61562fc913
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Feb 15 23:59:05 2018 +0100
[string.classes] Remove class name repeated in subheadings (#1928)
commit 4f11b39e4a9b55b5cc74ae8ced01122796aa0b6a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 14 22:58:16 2018 +0100
[depr.str.strstreams] Add synopsis for <strstream> header (#1922)
</code></pre>