-
Notifications
You must be signed in to change notification settings - Fork 769
/
Copy pathn4661.html
1005 lines (763 loc) · 44.7 KB
/
n4661.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
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!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>N4661</title></head><body>
<h1>N4661 Editors' Report -- Programming Languages -- C++</h1>
<p>2017-03-20 <br />
Richard Smith (editor) (Google Inc) <br />
Dawn Perchik (co-editor) (Embarcadero Technologies Inc) <br />
Thomas Köppe (co-editor) (Google DeepMind) <br />
<code><[email protected]></code></p>
<h2>Acknowledgements</h2>
<p>Special thanks to
the members of the editing committee for the C++17 DIS, namely
Marshall Clow,
Mike Miller,
Ville Voutilainen,
and
Jeffrey Yasskin
for their review of the correctness of the working paper
as modified by the motions from the Kona 2017 meeting.</p>
<p>Special thanks also to
Jonathan Wakely
and
Alisdair Meredith
for performing edits and editorial review for several of the motions applied since N4640,
and to
Jens Maurer
for performing many of the editorial fixes since N4640.</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/n4659">N4659</a> is the current working draft. It replaces <a href="http://wg21.link/n4640">N4640</a>.</li>
<li><a href="http://wg21.link/n4660">N4660</a> is the C++17 DIS.</li>
<li>N4661 is this Editors' Report.</li>
</ul>
<p>The contents of N4659 and N4660 are identical except for the cover sheet and
page headings.</p>
<h2>Motions incorporated into working draft and C++17 DIS</h2>
<h3>Core working group motions</h3>
<p>CWG motion 1: <a href="http://wg21.link/p0575r1">Core issue resolutions</a> for 5 issues in "ready" status applied:</p>
<ul>
<li><a href="http://wg21.link/cwg1677">1677</a> Constant initialization via aggregate initialization</li>
<li><a href="http://wg21.link/cwg1860">1860</a> What is a "direct member?"</li>
<li><a href="http://wg21.link/cwg2174">2174</a> Unclear rules for friend definitions in templates</li>
<li><a href="http://wg21.link/cwg2205">2205</a> Restrictions on use of alignas</li>
<li><a href="http://wg21.link/cwg2218">2218</a> Ambiguity and namespace aliases</li>
</ul>
<p><strong>The other 7 issues in "ready" status from P0575R1 were applied by CWG Motion 3</strong></p>
<p>CWG motion 2: <a href="http://wg21.link/p0576r1">Core issue resolutions</a> for 5 issues in "tentatively ready" status applied:</p>
<ul>
<li><a href="http://wg21.link/cwg2201">2201</a> Cv-qualification of array types</li>
<li><a href="http://wg21.link/cwg2206">2206</a> Composite type of object and function pointers</li>
<li><a href="http://wg21.link/cwg2214">2214</a> Missing requirement on representation of integer values</li>
<li><a href="http://wg21.link/cwg2220">2220</a> Hiding index variable in range-based <code>for</code></li>
<li><a href="http://wg21.link/cwg2224">2224</a> Member subobjects and base-class casts</li>
<li><a href="http://wg21.link/cwg2259">2259</a> Unclear context describing ambiguity</li>
<li><a href="http://wg21.link/cwg2262">2262</a> Attributes for <em>asm-definition</em></li>
</ul>
<p>CWG motion 3: <a href="http://wg21.link/p0622r0">Core issue resolutions</a> for 12 issues in "ready" and "tentatively ready" status applied, resolving 13 issues:</p>
<ul>
<li><a href="http://wg21.link/cwg426">426</a> Identically-named variables, one internally and one externally linked, allowed?</li>
<li><a href="http://wg21.link/cwg727">727</a> In-class explicit specializations</li>
<li><a href="http://wg21.link/cwg1622">1622</a> Empty aggregate initializer for union (no changes, resolved by 2272)</li>
<li><a href="http://wg21.link/cwg1710">1710</a> Missing <code>template</code> keyword in <em>class-or-decltype</em></li>
<li><a href="http://wg21.link/cwg2196">2196</a> Zero-initialization with virtual base classes</li>
<li><a href="http://wg21.link/cwg2198">2198</a> Linkage of enumerators</li>
<li><a href="http://wg21.link/cwg2211">2211</a> Hiding by lambda captures and parameters</li>
<li><a href="http://wg21.link/cwg2247">2247</a> Lambda capture and variable argument list</li>
<li><a href="http://wg21.link/cwg2248">2248</a> Problems with sized delete</li>
<li><a href="http://wg21.link/cwg2251">2251</a> Unreachable enumeration list-initialization</li>
<li><a href="http://wg21.link/cwg2268">2268</a> Unions with mutable members in constant expressions revisited</li>
<li><a href="http://wg21.link/cwg2272">2272</a> Implicit initialization of aggregate members of reference type</li>
<li><a href="http://wg21.link/cwg2276">2276</a> Dependent <code>noexcept</code> and function type-dependence</li>
</ul>
<p>CWG motion 4: <a href="http://wg21.link/p0612r0">P0612R0 "NB comment CH 2: volatile"</a>, resolving 1 NB comment:</p>
<ul>
<li>CH 2: Clarify whether volatile semantics require volatile objects or merely volatile-qualified glvalues</li>
</ul>
<p>CWG motion 5: <a href="http://wg21.link/p0613r0">P0613R0 "NB comment GB15: Resolution of Core Issue 2011"</a>, resolving 1 NB comment and 1 issue:</p>
<ul>
<li>GB 15, <a href="http://wg21.link/cwg2011">2011</a> Unclear effect of reference capture of reference</li>
</ul>
<p>CWG motion 6: <a href="http://wg21.link/p0298r3">P0298R3 "A <code>byte</code> type definition"</a>, resolving 3 NB comments:</p>
<ul>
<li>CA 11, US 72: Adopt <a href="http://wg21.link/p0257r1">P0257R1 "A <code>byte</code> type for increased type safety"</a> with modifications</li>
<li>US 22: Adopt <a href="http://wg21.link/p0298r1">P0298R1 "A <code>byte</code> type definition"</a></li>
</ul>
<p>CWG motion 7: <a href="http://wg21.link/p0615r0">P0615R0 "Renaming for structured bindings"</a></p>
<p>CWG motion 8: <a href="http://wg21.link/p0620r0">P0620R0 "Drafting for class template argument deduction issues"</a>, resolving 3 NB comments:</p>
<ul>
<li>US 94, GB 13, FI 21: Support class template argument deduction in <code>T{x1, x2, ...}</code> syntax</li>
</ul>
<p>CWG motion 9: <a href="http://wg21.link/p0270r3">P0270R3 "Removing C dependencies from signal handler wording"</a> <strong>with changes, see below</strong>, resolving 1 NB comment:</p>
<ul>
<li>CA 1: Adopt <a href="http://wg21.link/p0270r1">P0270R1 "Removing C dependencies from signal handler wording"</a></li>
</ul>
<p>CWG motion 10: <a href="http://wg21.link/p0250r3">P0250R3 "Wording improvements for initialization and thread ids"</a>, resolving 2 issues in "concurrency" status:</p>
<ul>
<li><a href="http://wg21.link/cwg1784">1784</a> Concurrent execution during static local initialization</li>
<li><a href="http://wg21.link/cwg2046">2046</a> Incomplete thread specifications</li>
</ul>
<p>CWG motion 11a applies to the Modules TS.</p>
<p>CWG motion 11b was not approved.</p>
<h3>Library working group motions</h3>
<h4>Issue resolutions</h4>
<p>LWG motion 1 applies to the Coroutines TS.</p>
<p>LWG motion 2: <a href="http://wg21.link/p0165r4">Library issue resolutions</a> for 22 issues in "Ready" and "Tentatively Ready" status applied, resolving 23 issues:</p>
<ul>
<li><a href="http://wg21.link/lwg2260">2260</a> Missing requirement for <code>Allocator::pointer</code></li>
<li><a href="http://wg21.link/lwg2768">2768</a> <code>any_cast</code> and move semantics (no changes, resolved by 2769)</li>
<li><a href="http://wg21.link/lwg2769">2769</a> Redundant <code>const</code> in the return type of <code>any_cast(const any&)</code></li>
<li><a href="http://wg21.link/lwg2781">2781</a> Contradictory requirements for <code>std::function</code> and <code>std::reference_wrapper</code></li>
<li><a href="http://wg21.link/lwg2782">2782</a> <code>scoped_allocator_adaptor</code> constructors must be constrained</li>
<li><a href="http://wg21.link/lwg2784">2784</a> Resolution to <a href="http://wg21.link/lwg2484">LWG 2484</a> is missing "otherwise, no effects" and is hard to parse</li>
<li><a href="http://wg21.link/lwg2785">2785</a> <code>quoted</code> should work with <code>basic_string_view</code></li>
<li><a href="http://wg21.link/lwg2786">2786</a> Annex C should mention <code>shared_ptr</code> changes for array support</li>
<li><a href="http://wg21.link/lwg2787">2787</a> [file_status.cons] doesn't match class definition</li>
<li><a href="http://wg21.link/lwg2789">2789</a> Equivalence of contained objects</li>
<li><a href="http://wg21.link/lwg2794">2794</a> Missing requirements for allocator pointers</li>
<li><a href="http://wg21.link/lwg2795">2795</a> [global.functions] provides incorrect example of ADL use</li>
<li><a href="http://wg21.link/lwg2804">2804</a> Unconditional <code>constexpr</code> default constructor for <code>istream_iterator</code></li>
<li><a href="http://wg21.link/lwg2824">2824</a> <code>list::sort</code> should say that the order of elements is unspecified if an exception is thrown</li>
<li><a href="http://wg21.link/lwg2826">2826</a> <code>string_view</code> iterators use old wording</li>
<li><a href="http://wg21.link/lwg2834">2834</a> Resolution to <a href="http://wg21.link/lwg2223">LWG 2223</a> is missing wording about end iterators</li>
<li><a href="http://wg21.link/lwg2835">2835</a> Resolution to <a href="http://wg21.link/lwg2536">LWG 2536</a> seems to misspecify <code><tgmath.h></code></li>
<li><a href="http://wg21.link/lwg2837">2837</a> <code>gcd</code> and <code>lcm</code> should support a wider range of input values</li>
<li><a href="http://wg21.link/lwg2838">2838</a> <code>is_literal_type</code> specification needs a little cleanup</li>
<li><a href="http://wg21.link/lwg2842">2842</a> <code>in_place_t</code> check for <code>optional::optional(U&&)</code> should decay <code>U</code></li>
<li><a href="http://wg21.link/lwg2850">2850</a> <code>std::function</code> move constructor does unnecessary work</li>
<li><a href="http://wg21.link/lwg2853">2853</a> Possible inconsistency in specification of <code>erase</code> in [vector.modifiers]</li>
<li><a href="http://wg21.link/lwg2855">2855</a> <code>std::throw_with_nested("string_literal")</code></li>
</ul>
<p><strong>Resolution of <a href="http://wg21.link/lwg2812">2812</a> "Range access is available with <code><string_view></code>" not applied, as this issue had already been resolved editorially</strong></p>
<p>LWG motion 3: <a href="http://wg21.link/p0610r0">Library issue resolutions</a> for 3 issues in "Review" status applied:</p>
<ul>
<li><a href="http://wg21.link/lwg2676">2676</a> Provide <code>filesystem::path</code> overloads for "File-based streams"</li>
<li><a href="http://wg21.link/lwg2790">2790</a> Missing specification of <code>istreambuf_iterator::operator-></code></li>
<li><a href="http://wg21.link/lwg2796">2796</a> <code>tuple</code> should be a literal type</li>
</ul>
<h4>Filesystem</h4>
<p>LWG motion 4: <a href="http://wg21.link/p0317r1">P0317R1 "Directory entry caching for filesystem"</a> <strong>with changes, see below</strong></p>
<p>LWG motion 5: <a href="http://wg21.link/p0492r2">P0492R2 "Proposed resolution of C++17 National Body comments for filesystems"</a>, resolving 31 NB comments and 2 issues:</p>
<ul>
<li>US 32: Meaning of [fs.conform.9945] unclear</li>
<li>US 33: Definition of "canonical path" problematic</li>
<li>US 34: Are there attributes of a file that are not an aspect of the file system?</li>
<li>US 36: Symbolic links themselves are attached to a directory via (hard) links</li>
<li>US 37: The term "redundant current directory (<em>dot</em>) elements" is not defined</li>
<li>US 43: Concerns about encoded character types</li>
<li>US 44, <a href="http://wg21.link/lwg2798">2798</a>: Definition of <code>path</code> in terms of a string requires leaky abstraction</li>
<li>US 45: Generic format portability compromised by unspecified <em>root-name</em> (no changes, resolved by US 73, CA 2)</li>
<li>US 46: <em>filename</em> can be empty so productions for <em>relative-path</em> are redundant</li>
<li>US 47: <code>.</code> and <code>..</code> already match the <em>name</em> production</li>
<li>US 48: Multiple separators are often meaningful in a <em>root-name</em></li>
<li>US 51: Failing to add <code>/</code> when appending empty string prevents useful applications (no changes, resolved by US 74, CA 3)</li>
<li>US 52, <a href="http://wg21.link/lwg2665">2665</a>: <code>remove_filename</code> postcondition is not by itself a definition</li>
<li>US 53: <code>remove_filename</code>'s name does not correspond to its behavior (no changes, resolved by US 52, US 60)</li>
<li>US 54: <code>remove_filename</code> is broken</li>
<li>US 55: <code>replace_extension</code>'s use of <code>path</code> as parameter is inappropriate</li>
<li>US 58: <code>parent_path</code> behavior for root paths is useless (no changes, resolved by US 77, CA 6)</li>
<li>US 60: <code>path("/foo/").filename() == path(".")</code> is surprising</li>
<li>US 61: Leading dots in <code>filename</code> should not begin an extension (no changes, resolved by US 74, CA 3)</li>
<li>US 62: It is important that <code>stem() + extension() == filename()</code> (no changes, resolved by US 74, CA 3)</li>
<li>US 63: <code>lexically_normal</code> inconsistently treats trailing <code>/</code> but not <code>/..</code> as directory (no changes, resolved by US 37, US 74, CA 3)</li>
<li>US 73, CA 2: <em>root-name</em> is effectively implementation defined</li>
<li>US 74, CA 3: The term "pathname" is ambiguous in some contexts</li>
<li>US 77, CA 6: <code>operator/</code> and other <code>append</code>s not useful if arg has <em>root-name</em></li>
<li>US 78, CA 7: Member <code>absolute</code> in [fs.op.absolute] is overspecified for non-POSIX-like O/S</li>
<li>Late 36: <code>permissions</code> <code>error_code</code> overload should be <code>noexcept</code> (no changes, resolved by Late 37)</li>
<li>Late 37: <code>permissions</code> actions should be separate parameter</li>
</ul>
<p>LWG motion 6: <a href="http://wg21.link/p0430r2">P0430R2 "File system library on non-POSIX-like operating systems"</a>, resolving 6 NB comments:</p>
<ul>
<li>US 75, CA 4: Extra flag in <code>path</code> constructors is needed</li>
<li>US 76, CA 5: <em>root-name</em> definition is over-specified.</li>
<li>US 79, CA 8: Some operation functions are overspecified for implementation-defined file types</li>
</ul>
<h4>Parallel algorithms</h4>
<p>LWG motion 7: <a href="http://wg21.link/p0452r1">P0452R1 "Unifying <code><numeric></code> parallel algorithms"</a>, partially resolving 2 NB comments:</p>
<ul>
<li>US 161: <code>inner_product</code> should use <em><code>GENERALIZED_SUM</code></em></li>
<li>US 184: <code>inner_product</code> should not have <code>ExecutionPolicy</code> overload</li>
</ul>
<p>LWG motion 8: <a href="http://wg21.link/p0518r1">P0518R1 "Allowing copies as arguments to function objects given to parallel algorithms"</a>, resolving 1 NB comment:</p>
<ul>
<li>CH 11: Allow parallel algorithms to make copies of their arguments</li>
</ul>
<p>LWG motion 9: <a href="http://wg21.link/p0523r1">P0523R1 "Complexity of parallel algorithms"</a>, partially resolving 1 NB comment:</p>
<ul>
<li>CH 10: Relax complexity specifications for parallel algorithms</li>
</ul>
<p>LWG motion 10: <a href="http://wg21.link/p0574r1">P0574R1 "Algorithm complexity constraints and parallel overloads"</a>, partially resolving 1 NB comment:</p>
<ul>
<li>CH 10: Relax complexity specifications for parallel algorithms</li>
</ul>
<p>LWG motion 11: <a href="http://wg21.link/p0467r2">P0467R2 "Iterator concerns for parallel algorithms"</a>, partially resolving 2 NB comments:</p>
<ul>
<li>US 156: Relax iterator requirements for parallel algorithms</li>
<li>US 162: Relax parallel <code>adjacent_difference</code> specification to permit parallelization</li>
</ul>
<p>LWG motion 12: <a href="http://wg21.link/p0623r0">P0623R0 "Final C++17 parallel algorithms fixes"</a>, partially resolving 3 NB comments:</p>
<ul>
<li>US 161: <code>inner_product</code> should use <em><code>GENERALIZED_SUM</code></em></li>
<li>US 162: Relax parallel <code>adjacent_difference</code> specification to permit parallelization</li>
<li>US 184: <code>inner_product</code> should not have <code>ExecutionPolicy</code> overload</li>
</ul>
<h4>NB response papers</h4>
<p>LWG motion 13: <a href="http://wg21.link/p0604r0">P0604R0 "Resolving GB 55, US 84, US 85, US 86"</a>, resolving 4 NB comments:</p>
<ul>
<li>GB 55, US 85: Fix <code>is_callable</code> and <code>result_of</code> to not use a function type as their interface</li>
<li>US 84: More clearly distinguish <code>*INVOKE(f, t1, t2, ..., tN)*</code> and <code>*INVOKE(f, t1, t2, ..., tN, R)*</code></li>
<li>US 86: Rename <code>is_callable</code> to <code>is_invocable</code></li>
</ul>
<p>LWG motion 14: <a href="http://wg21.link/p0607r0">P0607R0 "<code>inline</code> variables for the standard library"</a>, resolving 2 NB comments:</p>
<ul>
<li>FI 9, GB28: Use <code>inline</code> variables for library tag types</li>
</ul>
<p>LWG motion 15: <a href="http://wg21.link/p0618r0">P0618R0 "Deprecating <code><codecvt></code>"</a>, resolving 3 NB comments:</p>
<ul>
<li>GB 57: Deprecate <code><codecvt></code></li>
<li>US 64, CA 9: Preserve references to UCS2</li>
</ul>
<p>LWG motion 16: <strong>Revert <a href="http://wg21.link/p0181r1">P0181R1 "Ordered By Default"</a></strong>, applied by 2016-06 LWG Motion 21, resolving 1 NB comment:</p>
<ul>
<li>FI 18: Revert addition of <code>default_order</code></li>
</ul>
<p>LWG motion 17: <a href="http://wg21.link/p0156r2">P0156R2 "Variadic lock guard"</a>, resolving 2 NB comments:</p>
<ul>
<li>FI 8, GB 61: Revert making <code>lock_guard</code> variadic</li>
</ul>
<p>LWG motion 18: <a href="http://wg21.link/p0599r1">P0599R1 "<code>noexcept</code> for <code>hash</code> functions"</a>, resolving 1 NB comment:</p>
<ul>
<li>US 140: Some or all <code>hash<T></code> specializations should be <code>noexcept</code></li>
</ul>
<p>LWG motion 19: <a href="http://wg21.link/p0433r2">P0433R2 "Integrating template deduction for class templates into the standard library"</a>, resolving 2 NB comments and 3 issues:</p>
<ul>
<li>US 7, US 19 (remaining parts after P0512R0), US 147, US 148, US 150: Provide suitable deduction guides for the standard library</li>
</ul>
<p><strong>Despite the claims of this paper and the wording of Motion 19,
this paper is unrelated to US 14</strong></p>
<h4>NB issue resolutions</h4>
<p>LWG motion 20: <a href="http://wg21.link/p0625r0">Library issue resolutions</a> for 23 issues in "Immediate" status applied, resolving 20 NB comments:</p>
<ul>
<li>CH 7, <a href="http://wg21.link/lwg2904">2904</a>: Make <code>variant</code> move-assignment more exception safe</li>
<li>GB 36, <a href="http://wg21.link/lwg2866">2866</a>: Incorrect derived classes constraints</li>
<li>GB 49, <a href="http://wg21.link/lwg2806">2806</a>: Base class of <code>bad_optional_access</code></li>
<li>GB 53, <a href="http://wg21.link/lwg2807">2807</a>: <code>std::invoke</code> should use <code>std::is_nothrow_callable</code></li>
<li>GB 54, <a href="http://wg21.link/lwg2868">2868</a>: Missing specification of <code>bad_any_cast::what()</code></li>
<li>US 107, <a href="http://wg21.link/lwg2872">2872</a>: Add definition for "direct-non-list-initialization"</li>
<li>US 111, <a href="http://wg21.link/lwg2890">2890</a>: The definition of "object state" applies only to class types</li>
<li>US 111, <a href="http://wg21.link/lwg2900">2900</a>: The copy and move constructors of <code>optional</code> are not <code>constexpr</code></li>
<li>US 118, <a href="http://wg21.link/lwg2903">2903</a>: The form of initialization for the emplace-constructors is not specified</li>
<li>US 122, <a href="http://wg21.link/lwg2801">2801</a>: Default-constructibility of <code>unique_ptr</code></li>
<li>US 123, <a href="http://wg21.link/lwg2905">2905</a>: <code>is_constructible_v<unique_ptr<P | D> | P | D const &></code> should be <code>false</code> when <code>D</code> is not copy constructible</li>
<li>US 124, <a href="http://wg21.link/lwg2873">2873</a>: Add <code>noexcept</code> to several <code>shared_ptr</code> related functions</li>
<li>US 125, <a href="http://wg21.link/lwg2874">2874</a>: Constructor <code>shared_ptr::shared_ptr(Y*)</code> should be constrained</li>
<li>US 126, <a href="http://wg21.link/lwg2875">2875</a>: <code>shared_ptr::shared_ptr(Y* | D | […])</code> constructors should be constrained</li>
<li>US 127, <a href="http://wg21.link/lwg2802">2802</a>: <code>shared_ptr</code> constructor requirements for a deleter</li>
<li>US 129, <a href="http://wg21.link/lwg2876">2876</a>: <code>shared_ptr::shared_ptr(const weak_ptr<Y>&)</code> constructor should be constrained</li>
<li>US 135, <a href="http://wg21.link/lwg2908">2908</a>: The less-than operator for shared pointers could do more</li>
<li>US 145, <a href="http://wg21.link/lwg2861">2861</a>: <code>basic_string</code> should require that <code>charT</code> match <code>traits::char_type</code></li>
<li>US 153, <a href="http://wg21.link/lwg2878">2878</a>: Missing DefaultConstructible requirement for <code>istream_iterator</code> default constructor</li>
<li>US 165, <a href="http://wg21.link/lwg2921">2921</a>: <code>packaged_task</code> and type-erased allocators</li>
<li><a href="http://wg21.link/lwg2788">2788</a>: <code>basic_string</code> range mutators unintentionally require a default constructible allocator</li>
<li><a href="http://wg21.link/lwg2857">2857</a>: <code>{variant,optional,any}::emplace</code> should return the constructed value</li>
<li><a href="http://wg21.link/lwg2934">2934</a>: <code>optional<const T></code> doesn't compare with <code>T</code></li>
</ul>
<p><strong>Note: the resolutions of issues 2894 and 2911 in P0625R0 are not included in this motion</strong></p>
<p>LWG motion 20a was not approved.</p>
<p>LWG motion 20b: <a href="http://wg21.link/p0625r0">Library issue resolution</a> for 1 issue in "Immediate" status applied, resolving 1 NB comment:</p>
<ul>
<li>US 143, <a href="http://wg21.link/lwg2911">2911</a>: An <code>is_aggregate_type</code> trait is needed</li>
</ul>
<h4>Non-NB-comment papers</h4>
<p>LWG motion 21: <a href="http://wg21.link/p0558r1">P0558R1 "Resolving <code>atomic<T></code> named base class inconsistencies"</a></p>
<p>LWG motion 22: <a href="http://wg21.link/p0548r1">P0548R1 "<code>common_type</code> and <code>duration</code>"</a></p>
<p>LWG motion 23 applies to the Ranges TS.</p>
<h2>Notable editorial changes</h2>
<h3>Motions</h3>
<ul>
<li><p>CWG 6: In application of P0298R3, updated introductory sentence of [cstddef.syn]
to avoid claiming that <code>std::byte</code> is part of ISO C's <code><stddef.h></code> header.</p></li>
<li><p>CWG 9: Change to [csignal.syn] was not applied, because the desired normative
effect had already been accomplished by <a href="http://wg21.link/p0175r1">P0175R1</a>,
which was applied at the previous meeting and removed the baseline text for
this change. The effect of the merge is that <code>std::signal</code> is <em>not</em> required
to itself have C language linkage (but its parameter and returned function
pointer types are). Also added subclause to house description of signal
handlers, rather than including it in the <code><csignal></code> header synopsis.</p></li>
<li><p>LWG 4: The normative description of <code>directory_entry::is_directory</code> is
specified in terms of a non-existent <code>file_status</code> member, and either the
<code>status</code> or <code>symlink_status</code> members could have been intended. After
<a href="http://lists.isocpp.org/lib/2017/03/2262.php">consulting with LWG</a>,
this usage of <code>file_status</code> has been replaced by <code>status</code>.</p></li>
</ul>
<h3>NB comments</h3>
<ul>
<li><p><code>__cplusplus</code> macro value updated from <code>201402L</code> to <code>201703L</code>, resolving
NB comments CA 15 and US 83.</p></li>
<li><p>Added acknowledgement of ECMAScript trademark, resolving NB comment GB 10.</p></li>
<li><p>Added normative references to LIA-1 and IEEE 754.</p></li>
<li><p>Added note to definition of literal type, resolving NB comment GB 68.</p></li>
<li><p>Made introductory sentence of [basic.stc] consistent with later normative
wording, resolving NB comment JP 3, as directed by CWG.</p></li>
</ul>
<h3>ISO Directives</h3>
<ul>
<li><p>Promoted "Scope", "Normative references", and "Terms and definitions" to
top-level Clauses as required by ISO Directives.</p></li>
<li><p>Updated introductory text of "Normative references" and "Terms and definitions"
to match those specified by ISO Directives.</p></li>
</ul>
<h3>Content rearrangement</h3>
<ul>
<li><p>[fs.path.generic]: rearranged <em>pathname</em> grammar to avoid long paragraphs of
text in descriptive elements and refactored to fix ambiguities in the
grammar, after consultation with LWG.</p></li>
<li><p>[expr.prim.lambda]: split out subclauses for the closure type and captures;
reviewed by CWG at Kona 2017.</p></li>
<li><p>Move specification of deprecated standard library headers into Annex D,
after consultation with LWG.</p></li>
</ul>
<h3>Stable name changes</h3>
<ul>
<li><p>A "Cross references from ISO C++ 2014" section has been added, listing all
stable names from C++ 2014 that do not appear within the C++ 2017 standard,
and where the corresponding text can be found (if it still exists).</p></li>
<li><p>Systematic review and cleanup of filesystem stable names: <br />
[class.path] -> [fs.class.path] <br />
[path.generic] -> [fs.path.generic] <br />
[path.cvt] -> [fs.path.cvt] <br />
[path.fmt.cvt] -> [fs.path.fmt.cvt] <br />
[path.type.cvt] -> [fs.path.type.cvt] <br />
[path.req] -> [fs.path.req] <br />
[path.member] -> [fs.path.member] <br />
[path.construct] -> [fs.path.construct] <br />
[path.assign] -> [fs.path.assign] <br />
[path.append] -> [fs.path.append] <br />
[path.concat] -> [fs.path.concat] <br />
[path.modifiers] -> [fs.path.modifiers] <br />
[path.native.obs] -> [fs.path.native.obs] <br />
[path.generic.obs] -> [fs.path.generic.obs] <br />
[path.compare] -> [fs.path.compare] <br />
[path.decompose] -> [fs.path.decompose] <br />
[path.query] -> [fs.path.query] <br />
[path.gen] -> [fs.path.gen] <br />
[path.itr] -> [fs.path.itr] <br />
[path.non-member] -> [fs.path.nonmember] <br />
[path.io] -> [fs.path.io] <br />
[path.factory] -> [fs.path.factory] <br />
[class.filesystem_error] -> [fs.class.filesystem_error] <br />
[enum.path.format] -> [fs.enum.path.format] <br />
[enum.file_type] -> [fs.enum.file_type] <br />
[enum.copy_options] -> [fs.enum.copy.opts] <br />
[enum.perms] -> [fs.enum.perms] <br />
[enum.perm_options] -> [fs.enum.perm.opts] <br />
[enum.directory_options] -> [fs.enum.dir.opts] <br />
[class.file_status] -> [fs.class.file_status] <br />
[file_status.cons] -> [fs.file_status.cons] <br />
[file_status.obs] -> [fs.file_status.obs] <br />
[file_status.mods] -> [fs.file_status.mods] <br />
[class.directory_entry] -> [fs.class.directory_entry] <br />
[directory_entry.cons] -> [fs.dir.entry.cons] <br />
[directory_entry.mods] -> [fs.dir.entry.mods] <br />
[directory_entry.obs] -> [fs.dir.entry.obs] <br />
[class.directory_iterator] -> [fs.class.directory_iterator] <br />
[directory_iterator.members] -> [fs.dir.itr.members] <br />
[directory_iterator.nonmembers] -> [fs.dir.itr.nonmembers] <br />
[class.rec.dir.itr] -> [fs.class.rec.dir.itr] <br />
[rec.dir.itr.members] -> [fs.rec.dir.itr.members] <br />
[rec.dir.itr.nonmembers] -> [fs.rec.dir.itr.nonmembers]</p></li>
<li><p>[istreambuf.iterator] 5 subclauses
[istreambuf.iterator::equal],
[istreambuf.iterator::op!=],
[istreambuf.iterator::op*],
[istreambuf.iterator::op++],
[istreambuf.iterator::op==]
merged into a single [istreambuf.iterator.ops] comprising half a page of text;</p></li>
<li><p>Several subclauses with stable names containing <code>::</code> have been renamed to
instead use <code>.</code> as the component separator.</p></li>
</ul>
<h2>Minor editorial fixes</h2>
<p>A log of editorial fixes made since N4640 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/n4640...n4659">draft sources on github</a>.</p>
<pre><code>commit dbf3efe18813054c95abae388c53bf30e96e7e83
Author: Richard Smith <[email protected]>
Date: Mon Mar 20 15:19:47 2017 -0700
[intro.refs], [intro.defs] Update introductory text to match latest ISO
Directives.
commit 32825151765e214d79103a137aa29a9a4357687f
Author: Richard Smith <[email protected]>
Date: Mon Mar 20 15:00:51 2017 -0700
Replace "this International Standard" with "this document" in some
places where it is a clear improvement.
The 7th Edition of the ISO Directives no longer require us to use
"this International Standard" when the document refers to itself. We
retain that phrasing when the reference is to the abstract notion of
the specification as opposed to the text embodying it.
This is a step towards addressing #1389.
commit 1798a9b6795d6ee92bf093e2a6256c34212552b1
Author: Richard Smith <[email protected]>
Date: Mon Mar 20 14:14:22 2017 -0700
[fs.path.generic] Refactor generic pathname grammar to remove redundancy and ambiguity.
commit 660d97e40353337b0b6b533903ab16e330855a77
Author: Eelis van der Weegen <[email protected]>
Date: Sat Aug 6 18:02:50 2016 +0200
[depr.func.adaptor.typedefs] Clarify that reference_wrapper does not define argument_type for non-nullary member function pointer types.
commit 95cbc03c20f20d98a53a3e696df6003ec27abc42
Author: Jens Maurer <[email protected]>
Date: Wed Feb 8 16:35:25 2017 +0100
[istreambuf.iterator] Join subsections for operations descriptions.
There was one subsection for every operator, yet everything
fits on half a page.
Fixes #1429, #1449.
commit d2b6fb6eefc3c28eb448352cd6d8b0d08e860a66
Author: Jonathan Wakely <[email protected]>
Date: Thu Mar 16 21:27:11 2017 +0000
[containers] Rephrase deduction guide constraints
Replace "is called with" wording that doesn't apply to deduction guides.
Move rules about qualifying as input iterators or allocators to
[container.requirements.general].
commit a7f52d1904e5a6d2d407eb4145ba54552d0b3e69
Author: Richard Smith <[email protected]>
Date: Mon Mar 20 00:07:04 2017 -0700
[fs.path.generic] Move descriptions of grammar elements out of the
grammar and into separate paragraphs, and format path grammar as we
format the language grammar.
Also rephrase description of root-name to use the defined term
"implementation-defined" directly rather than separating it into
"implementations [...] define".
commit 04a9e5d759b4fea810ed029dd6b6a0d5ebfd224a
Author: Jens Maurer <[email protected]>
Date: Fri Feb 10 22:46:20 2017 +0100
[fs.op.copy], [fs.op.copy_file] Rephrase requirements on copy_options.
Use bitmask 'element' phrasing for restrictions on copy_options.
Fixes #1445.
commit df9a809a36c34acc0870c5d7869e7549574e1437
Author: Jens Maurer <[email protected]>
Date: Sat Mar 18 23:08:32 2017 +0100
[partial.sort] Remove 'It takes' from complexity specification.
Partially addresses #1088.
commit 5cf60394dbe171ec16bfbba1459772e40b9cf6e1
Author: Thomas Köppe <[email protected]>
Date: Sat Mar 18 21:21:14 2017 +0000
[temp.class.spec.mfunc] Add missing comment to example
commit cdd6dda21e3273ea63b733c3cfb3b630bb1847eb
Author: Richard Smith <[email protected]>
Date: Thu Mar 16 15:37:17 2017 -0700
[xref] Add glossary of cross-references between C++14 section labels and
C++17 section labels.
Fixes #1547.
commit 88c20950fac6915844143bb73129e2eb1b41d17d
Author: Jonathan Wakely <[email protected]>
Date: Thu Mar 16 02:51:38 2017 +0000
[filesystem] Shorten stable names and add "fs." prefixes
[class.path] -> [fs.class.path]
[path.generic] -> [fs.path.generic]
[path.cvt] -> [fs.path.cvt]
[path.fmt.cvt] -> [fs.path.fmt.cvt]
[path.type.cvt] -> [fs.path.type.cvt]
[path.req] -> [fs.path.req]
[path.member] -> [fs.path.member]
[path.construct] -> [fs.path.construct]
[path.assign] -> [fs.path.assign]
[path.append] -> [fs.path.append]
[path.concat] -> [fs.path.concat]
[path.modifiers] -> [fs.path.modifiers]
[path.native.obs] -> [fs.path.native.obs]
[path.generic.obs] -> [fs.path.generic.obs]
[path.compare] -> [fs.path.compare]
[path.decompose] -> [fs.path.decompose]
[path.query] -> [fs.path.query]
[path.gen] -> [fs.path.gen]
[path.itr] -> [fs.path.itr]
[path.non-member] -> [fs.path.nonmember]
[path.io] -> [fs.path.io]
[path.factory] -> [fs.path.factory]
[class.filesystem_error] -> [fs.class.filesystem_error]
[enum.path.format] -> [fs.enum.path.format]
[enum.file_type] -> [fs.enum.file_type]
[enum.copy_options] -> [fs.enum.copy.opts]
[enum.perms] -> [fs.enum.perms]
[enum.perm_options] -> [fs.enum.perm.opts]
[enum.directory_options] -> [fs.enum.dir.opts]
[class.file_status] -> [fs.class.file_status]
[file_status.cons] -> [fs.file_status.cons]
[file_status.obs] -> [fs.file_status.obs]
[file_status.mods] -> [fs.file_status.mods]
[class.directory_entry] -> [fs.class.directory_entry]
[directory_entry.cons] -> [fs.dir.entry.cons]
[directory_entry.mods] -> [fs.dir.entry.mods]
[directory_entry.obs] -> [fs.dir.entry.obs]
[class.directory_iterator] -> [fs.class.directory_iterator]
[directory_iterator.members] -> [fs.dir.itr.members]
[directory_iterator.nonmembers] -> [fs.dir.itr.nonmembers]
[class.rec.dir.itr] -> [fs.class.rec.dir.itr]
[rec.dir.itr.members] -> [fs.rec.dir.itr.members]
[rec.dir.itr.nonmembers] -> [fs.rec.dir.itr.nonmembers]
commit ad33212fded427f1e0b4e57c53c9e9215318b223
Author: Alisdair Meredith <[email protected]>
Date: Thu Mar 16 11:21:05 2017 -0400
[any.modifiers] fix emplace return type for 'any' (#1545)
LWG issue 2857 was applied verbatim, without noticing
that 'ValueType' had been previously changed to 'T'.
This makes things consistent by choosing 'T' as the
simpler form, more consistent with 'optional' and
'variant'.
commit 09e4674b0b6ab2f74bfe5a14120edea874115779
Author: Jens Maurer <[email protected]>
Date: Tue Feb 28 07:27:01 2017 +0100
[expr.prim.lambda] Move syntactic restriction on decl-specifier-seq to the front.
Per CWG guidance.
commit 763a3fda5cec74d17371ddf4957f1f522331ebb0
Author: Jens Maurer <[email protected]>
Date: Wed Nov 30 19:17:52 2016 +0100
[expr.prim.lambda] Split specification of lambda expressions into subsections.
Fixes #1155.
commit 8139f2f9ec81cf4b8c24640f968880241dd23231
Author: Thomas Köppe <[email protected]>
Date: Thu Nov 17 19:51:44 2016 +0000
Move specification of deprecated headers to Annex D
commit c9354b33e1de8e0cf6dc42a73c733e1d8a34e7e0
Author: Richard Smith <[email protected]>
Date: Wed Mar 15 18:29:49 2017 -0700
Update value of __cplusplus to 201703L.
Fixes #1513 and NB CA 15 and US 83 (C++17 CD).
commit 8baa18cbbf33a9b73711638b13a4960e15179c6d
Author: Richard Smith <[email protected]>
Date: Wed Mar 15 18:29:13 2017 -0700
Add acknowledgement of ECMAScript trademark.
Fixes NB GB 10 (C++17 CD).
commit 4d53b8b250751aae7768955f75eb7f27db08d83e
Author: Richard Smith <[email protected]>
Date: Wed Mar 15 12:55:55 2017 -0700
Editorial fixes for P0317R1.
[directory_entry.mods] Improve singular/plural, add commas.
[class.directory_iterator] Reorder words to more closely align xref with
the term for which it is a reference, add comma.
commit dd42ed5d6e04e623992e0464e49323a2b6a1f518
Author: Richard Smith <[email protected]>
Date: Sun Mar 12 14:34:57 2017 -0700
[atomics.flag] Replace "shall be" with "is" when describing properties
of the implementation, for consistency with changes made by P0558R1.
commit 49caa2b829256f8198ed649ca3f5057bde96a2c7
Author: Thomas Köppe <[email protected]>
Date: Sun Mar 5 09:19:33 2017 -1000
[func.search] Add missing period
commit 4f0891849e4799367174cc8783a3d88b6ff6b95a
Author: Jonathan Wakely <[email protected]>
Date: Fri Mar 3 02:36:27 2017 +0000
[meta.trans] replace "shall name" with "names" in traits tables
commit 42c6d5cc8ed83ba4b48b8b94d51b7a317d577a46
Author: Jens Maurer <[email protected]>
Date: Tue Dec 20 21:45:21 2016 +0100
[lib] For showing complexity, use $N \log N$
and not $N \log(N)$ or other variants.
Partially addresses #1088.
commit 42c5a2ce36d7403ca37cb8b038aa37065c353ba4
Author: Jens Maurer <[email protected]>
Date: Tue Dec 20 23:45:26 2016 +0100
[intro.refs] Add normative references to LIA-1 and IEEE 754.
Fixes #237.
commit bdff8687ccb470564400597403d484ad02890f24
Author: Jens Maurer <[email protected]>
Date: Fri Feb 10 21:25:42 2017 +0100
[any] Use 'contained value' consistently.
This harmonizes the use of 'constained value' across
optional, variant, and any, with appropriate index
entries.
Fixes #1401.
commit 6a5edb752b88c448dce4cba528de307d79966b9e
Author: Jens Maurer <[email protected]>
Date: Thu Feb 9 21:42:49 2017 +0100
Harmonize punctuation for 'ill-formed, no diagnostic required'
Fixes #1450.
commit 40f3fb37986ecff07567cc4601fac334fee8aff9
Author: Jens Maurer <[email protected]>
Date: Wed Feb 8 15:35:43 2017 +0100
[basic.types] Remove excessive references to [basic.type.qualifier].
Fixes #1419.
commit ee930ef3ee97f244d278ac3f762ec5f167dc005a
Author: Jonathan Wakely <[email protected]>
Date: Thu Mar 2 02:20:48 2017 +0000
[rand.dist.bern.negbin] Fix index for k member
commit bbcf0ea60c63d741bc51818633c70df2690e99b4
Author: Richard Smith <[email protected]>
Date: Wed Mar 1 13:34:52 2017 -1000
Add a note to the definition of literal type to indicate that it is not
a guarantee that such an object can be created in a constant expression.
Wording from John Spicer / CWG.
Addresses NB GB 68 (C++17 CD).
commit be54f2e8e12c54071692ef3ebd6e49f6e3255a27
Author: Jakub Wilk <[email protected]>
Date: Tue Feb 28 19:17:32 2017 +0100
[diff.decl] Fix typo (#1494)
commit 2f6aff7e71cc33243671d1e501911d331af61fa3
Author: Richard Smith <[email protected]>
Date: Mon Feb 27 16:23:46 2017 -1000
[basic.stc] Fix introductory sentence on dynamic storage duration to
match later more-normative rule: it applies to objects, not storage.
Fixes NB JP 3 (C++17 CD).
commit ec4ca6fc07907ea817152970c45d4c04c86d3c5c
Author: Richard Smith <[email protected]>
Date: Mon Feb 27 11:30:27 2017 -0800
[intro] Promote "Scope", "Normative references", "Terms and definitions"
to top-level clauses per ISO directives.
Modify \definition macro so we can more easily have definitions at
different depths in different lists.
commit fe6c8bda60fbca2cd3a488650988ce0a7df20d03
Author: Eelis <[email protected]>
Date: Fri Feb 24 12:09:31 2017 +0100
[localization, diff] Remove superfluous 'return 0;' from 'main' in examples. (#1482)
commit 17e28024d81e366a6d1044fa29a0cd1bdf10f77f
Author: Eelis <[email protected]>
Date: Thu Feb 23 12:32:58 2017 +0100
[meta.unary.prop, meta.trans.other] Omit unhelpful second argument in static_asserts. (#1479)
commit 33f16cb3417ad21949769d82cae36c1b653e4519
Author: Jens Maurer <[email protected]>
Date: Thu Feb 23 01:47:09 2017 +0100
[dcl.attr.nodiscard] Clarify example with reference return type. (#1471)
Add rationale why a warning is not encouraged for this case.
Fixes #1470.
commit 7cd42666e143e19bdaf9e62211066cab255fb99f
Author: Eelis <[email protected]>
Date: Thu Feb 23 01:25:26 2017 +0100
[expr.mptr.oper] Use defined term 'null member pointer value'. (#1434)
commit 5bc5cbae28d9e741ebc7df996f1f0d230ac4087e
Author: Eelis <[email protected]>
Date: Tue Feb 21 00:16:14 2017 +0100
[rand.req.{eng,dist}] Replace square brackets around reference with regular parentheses. (#1481)
commit 44f489bba7c7595077043c7360cf7ff329eeb090
Author: Eelis <[email protected]>
Date: Sun Feb 19 15:41:48 2017 +0100
[except.spec] Add missing 'an'. (#1478)
commit 16938d84892051f5c9e2fe4afca578fc57b1c4f3
Author: Thomas Köppe <[email protected]>
Date: Sat Feb 18 19:21:13 2017 +0000
[support.runtime] Remove extraneous and misleading parentheses from names of functions and macros
commit d2fe52eaaf53b6843ab6fe152a2a05e5a7da06fc
Author: Eelis <[email protected]>
Date: Thu Feb 16 20:54:49 2017 +0100
[alg.min.max] Enlarge lfloor/rfloor delimiters. (#1455)
commit 7e5537d1e9c7a6d63c9877cf5babde4ddf14807c
Author: Eelis <[email protected]>
Date: Wed Feb 15 15:38:19 2017 +0100
Parenthesize some \refs. (#1436)
commit 473966e60653e8e2bc8ed154d8b18a3736f97088
Author: Jens Maurer <[email protected]>
Date: Thu Feb 9 12:14:12 2017 +0100
[unord.req] Insert hint is 'p', not 'q' (#1440)
LWG 2540 changed the hint for insert from 'q'
(a valid and dereferenceable iterator) to 'p'
(a valid, but not necessarily dereferenceable iterator),
but neglected to adjust the description text.
Fixes #1423.
commit 90c486f80612c3a7fd26ee408631991814f7b81c
Author: Jens Maurer <[email protected]>
Date: Wed Feb 8 17:21:31 2017 +0100
[any.assign] Rename T to VT. (#1448)