<!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>&lt;cxxeditor@gmail.com&gt;</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&amp;)</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>&lt;tgmath.h&gt;</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&amp;&amp;)</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>&lt;string_view&gt;</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-&gt;</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>&lt;numeric&gt;</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>&lt;codecvt&gt;</code>"</a>, resolving 3 NB comments:</p>

<ul>
<li>GB 57: Deprecate <code>&lt;codecvt&gt;</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&lt;T&gt;</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&lt;unique_ptr&lt;P | D&gt; | P | D const &amp;&gt;</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&lt;Y&gt;&amp;)</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&lt;const T&gt;</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&lt;T&gt;</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>&lt;stddef.h&gt;</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>&lt;csignal&gt;</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 &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;eelis@eelis.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;cxx@kayari.org&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;tkoeppe@google.com&gt;
Date:   Sat Mar 18 21:21:14 2017 +0000

    [temp.class.spec.mfunc] Add missing comment to example

commit cdd6dda21e3273ea63b733c3cfb3b630bb1847eb
Author: Richard Smith &lt;richard@metafoo.co.uk&gt;
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 &lt;cxx@kayari.org&gt;
Date:   Thu Mar 16 02:51:38 2017 +0000

    [filesystem] Shorten stable names and add "fs." prefixes

    [class.path] -&gt; [fs.class.path]
    [path.generic] -&gt; [fs.path.generic]
    [path.cvt] -&gt; [fs.path.cvt]
    [path.fmt.cvt] -&gt; [fs.path.fmt.cvt]
    [path.type.cvt] -&gt; [fs.path.type.cvt]
    [path.req] -&gt; [fs.path.req]
    [path.member] -&gt; [fs.path.member]
    [path.construct] -&gt; [fs.path.construct]
    [path.assign] -&gt; [fs.path.assign]
    [path.append] -&gt; [fs.path.append]
    [path.concat] -&gt; [fs.path.concat]
    [path.modifiers] -&gt; [fs.path.modifiers]
    [path.native.obs] -&gt; [fs.path.native.obs]
    [path.generic.obs] -&gt; [fs.path.generic.obs]
    [path.compare] -&gt; [fs.path.compare]
    [path.decompose] -&gt; [fs.path.decompose]
    [path.query] -&gt; [fs.path.query]
    [path.gen] -&gt; [fs.path.gen]
    [path.itr] -&gt; [fs.path.itr]
    [path.non-member] -&gt; [fs.path.nonmember]
    [path.io] -&gt; [fs.path.io]
    [path.factory] -&gt; [fs.path.factory]
    [class.filesystem_error] -&gt; [fs.class.filesystem_error]
    [enum.path.format] -&gt; [fs.enum.path.format]
    [enum.file_type] -&gt; [fs.enum.file_type]
    [enum.copy_options] -&gt; [fs.enum.copy.opts]
    [enum.perms] -&gt; [fs.enum.perms]
    [enum.perm_options] -&gt; [fs.enum.perm.opts]
    [enum.directory_options] -&gt; [fs.enum.dir.opts]
    [class.file_status] -&gt; [fs.class.file_status]
    [file_status.cons] -&gt; [fs.file_status.cons]
    [file_status.obs] -&gt; [fs.file_status.obs]
    [file_status.mods] -&gt; [fs.file_status.mods]
    [class.directory_entry] -&gt; [fs.class.directory_entry]
    [directory_entry.cons] -&gt; [fs.dir.entry.cons]
    [directory_entry.mods] -&gt; [fs.dir.entry.mods]
    [directory_entry.obs] -&gt; [fs.dir.entry.obs]
    [class.directory_iterator] -&gt; [fs.class.directory_iterator]
    [directory_iterator.members] -&gt; [fs.dir.itr.members]
    [directory_iterator.nonmembers] -&gt; [fs.dir.itr.nonmembers]
    [class.rec.dir.itr] -&gt; [fs.class.rec.dir.itr]
    [rec.dir.itr.members] -&gt; [fs.rec.dir.itr.members]
    [rec.dir.itr.nonmembers] -&gt; [fs.rec.dir.itr.nonmembers]

commit ad33212fded427f1e0b4e57c53c9e9215318b223
Author: Alisdair Meredith &lt;public@alisdairm.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;tkoeppe@google.com&gt;
Date:   Thu Nov 17 19:51:44 2016 +0000

    Move specification of deprecated headers to Annex D

commit c9354b33e1de8e0cf6dc42a73c733e1d8a34e7e0
Author: Richard Smith &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;tkoeppe@google.com&gt;
Date:   Sun Mar 5 09:19:33 2017 -1000

    [func.search] Add missing period

commit 4f0891849e4799367174cc8783a3d88b6ff6b95a
Author: Jonathan Wakely &lt;cxx@kayari.org&gt;
Date:   Fri Mar 3 02:36:27 2017 +0000

    [meta.trans] replace "shall name" with "names" in traits tables

commit 42c6d5cc8ed83ba4b48b8b94d51b7a317d577a46
Author: Jens Maurer &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
Date:   Thu Feb 9 21:42:49 2017 +0100

    Harmonize punctuation for 'ill-formed, no diagnostic required'

    Fixes #1450.

commit 40f3fb37986ecff07567cc4601fac334fee8aff9
Author: Jens Maurer &lt;Jens.Maurer@gmx.net&gt;
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 &lt;cxx@kayari.org&gt;
Date:   Thu Mar 2 02:20:48 2017 +0000

    [rand.dist.bern.negbin] Fix index for k member

commit bbcf0ea60c63d741bc51818633c70df2690e99b4
Author: Richard Smith &lt;richard@metafoo.co.uk&gt;
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 &lt;jwilk@jwilk.net&gt;
Date:   Tue Feb 28 19:17:32 2017 +0100

    [diff.decl] Fix typo (#1494)

commit 2f6aff7e71cc33243671d1e501911d331af61fa3
Author: Richard Smith &lt;richard@metafoo.co.uk&gt;
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 &lt;richard@metafoo.co.uk&gt;
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 &lt;github.com@contacts.eelis.net&gt;
Date:   Fri Feb 24 12:09:31 2017 +0100

    [localization, diff] Remove superfluous 'return 0;' from 'main' in examples. (#1482)

commit 17e28024d81e366a6d1044fa29a0cd1bdf10f77f
Author: Eelis &lt;github.com@contacts.eelis.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
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 &lt;github.com@contacts.eelis.net&gt;
Date:   Thu Feb 23 01:25:26 2017 +0100

    [expr.mptr.oper] Use defined term 'null member pointer value'. (#1434)

commit 5bc5cbae28d9e741ebc7df996f1f0d230ac4087e
Author: Eelis &lt;github.com@contacts.eelis.net&gt;
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 &lt;github.com@contacts.eelis.net&gt;
Date:   Sun Feb 19 15:41:48 2017 +0100

    [except.spec] Add missing 'an'. (#1478)

commit 16938d84892051f5c9e2fe4afca578fc57b1c4f3
Author: Thomas Köppe &lt;tkoeppe@google.com&gt;
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 &lt;github.com@contacts.eelis.net&gt;
Date:   Thu Feb 16 20:54:49 2017 +0100

    [alg.min.max] Enlarge lfloor/rfloor delimiters. (#1455)

commit 7e5537d1e9c7a6d63c9877cf5babde4ddf14807c
Author: Eelis &lt;github.com@contacts.eelis.net&gt;
Date:   Wed Feb 15 15:38:19 2017 +0100

    Parenthesize some \refs. (#1436)

commit 473966e60653e8e2bc8ed154d8b18a3736f97088
Author: Jens Maurer &lt;Jens.Maurer@gmx.net&gt;
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 &lt;Jens.Maurer@gmx.net&gt;
Date:   Wed Feb 8 17:21:31 2017 +0100

    [any.assign] Rename T to VT. (#1448)

    These renames were overlooked in commit 8b1f6cc8d73eec0306db1dec66f2da52a03ea274.

    Fixes #1443.
</code></pre>
