<html><head><meta charset="UTF-8">
<title>LWG Chair post-meeting report</title>
  <style type='text/css'>
  body {font-variant-ligatures: none;}
  p {text-align:justify}
  li {text-align:justify}
  blockquote.note, div.note
  {
          background-color:#E0E0E0;
          padding-left: 15px;
          padding-right: 15px;
          padding-top: 1px;
          padding-bottom: 1px;
  }
  p code {color:navy}
  ins p code {color:#00A000}
  p ins code {color:#00A000}
  p del code {color:#A00000}
  ins {color:#00A000}
  del {color:#A00000}
  table#boilerplate { border:0 }
  table#boilerplate td { padding-left: 2em }
  table.bordered, table.bordered th, table.bordered td {
    border: 1px solid;
    text-align: center;
  }
  ins.block {color:#00A000; text-decoration: none}
  del.block {color:#A00000; text-decoration: none}
  #hidedel:checked ~ * del, #hidedel:checked ~ * del * { display:none; visibility:hidden }
  </style>
</head><body>
<table id="boilerplate">
<tr><td>Document number</td><td>D0985R3</td></tr>
<tr><td>Date</td><td>2018-11-20</td></tr>
<tr><td>Project</td><td>Programming Language C++, WG21</td></tr>
<tr><td>Reply-to</td><td>Marshall Clow &lt;lwgchair&#x40;gmail.com&gt;</td></tr>
</table><hr>
<h1>LWG Chair post-meeting report</h1>
<h1>Overview</h1>

<p>This is meant to be an ongoing paper, with a series of reports, capturing the information provided by the LWG chair during the plenary session at the previous meeting.</p>

<h2>R3: San Diego, November 5-10, 2018</h2>

<h3>General</h3>

<p>We reviewed on the order of 45 papers this week. We did some wording triage in small groups, and that worked quite well. We'll be doing more of that in the future.  About 25 of those papers were approved and voted on in plenary session on Saturday.</p>

<h3>Notable Accomplishments</h3>

<ul>
<li>We finished our review of the "One Ranges" proposal (P0896) and Casey made the changes that we suggested, and then we moved that in plenary.</li>
<li>We approved P1148, which is a large cleanup paper for clause 20.</li>
<li>We approved P1165, which makes the allocator handling for <code>operator+</code> in strings consistent.</li>
<li>We approved P0591, which defines a set of routines for handling uses-allocator construction.</li>
<li>We approved P0919, which enables heterogenous lookup for unordered associative containers.</li>
<li>We approved several papers adding more constexpr to the library (P1006, P1032), but we did not move P1004, because that is gated on some ongoing CWG work.</li>
<li>We approved (and CWG moved) P0595, which defines <code>std::is_constant_evaluated</code>.</li>
</ul>


<h3>Discussed, but did not move</h3>

<ul>
<li>We discussed the <code>flat_map</code> proposal.</li>
<li>We discussed the <code>fixed_capacity_vector</code> proposal.</li>
<li>We discussed the <code>mdspan</code> proposal.</li>
<li>We discussed P1065 - <code>constexpr INVOKE</code></li>
<li>We discussed the text formatting proposal.</li>
<li>Several LFTS3 proposals</li>
<li>And many others</li>
</ul>


<h2>R2: Batavia, August 20-24, 2014</h2>

<h3>General</h3>

<p>In August, LWG met in Batavia, IL to try to reduce the backlog of work that was facing us for C++20. There were about 18 people in attendance.</p>

<p>Since this was not an official WG21 meeting, we could not approve any motions for incorporation into C++20. However, we approved a bunch of papers (and issues) to be put on the motions page in San Diego.</p>

<h3>Notable Accomplishments</h3>

<p>We reviewed a large chunk of the Ranges proposal (about 150 pages of the 220 page paper). Casey will revise the paper, and we have continued the review on the reflector. (See postings titled "Paper working review: D0896").</p>

<p>There were two fairly large new papers at this meeting. These were both clarification/cleanup papers, rather than proposing new features, and they were both reviewed favorably. Tim Song's paper is titled <a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1148R0a.pdf">"Cleaning up Clause 20"</a>.  Nevin Liber's paper is titled <a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1163R0V2.pdf">"Explicitly Implicifying explicit Constructors"</a>.</p>

<h3>Tentatively Approved for C++20  (to be moved in San Diego)</h3>

<ul>
<li>Many issues (see <a href="https://wg21.link/P1224">P1224</a> in the pre-meeting mailing)</li>
<li>P0487 - <a href="https://wg21.link/P0487">Fixing <code>operator&gt;&gt; (basic_istream&amp;, CharT*)</code> (LWG 2499)</a></li>
<li>P0602 - <a href="https://wg21.link/P0602"><code>variant</code> and <code>optional</code> should propagate copy/move triviality</a></li>
<li>P0655 - <a href="https://wg21.link/P0655"><code>visit&lt;R&gt;</code>: Explicit Return Type for visit</a></li>
<li>P0972 - <a href="https://wg21.link/P0972"><code>&lt;chrono&gt;</code> <code>zero()</code>, <code>min()</code>, and <code>max()</code> should be noexcept</a></li>
<li>P1004 - <a href="https://wg21.link/P1004">Making <code>std::vector</code> constexpr</a></li>
<li>P1006 - <a href="https://wg21.link/P1006">Constexpr in <code>std::pointer_traits</code></a></li>
<li>P1032 - <a href="https://wg21.link/P1032">Misc constexpr bits</a></li>
<li>D1148 - <a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1148R0a.pdf">Cleaning up Clause 20</a></li>
<li>D1163 - <a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1163R0V2.pdf">Explicitly Implicifying explicit Constructors</a></li>
</ul>


<h3>Discussed, but did not approve</h3>

<ul>
<li>P0052 - <a href="https://wg21.link/P0052">Generic Scope Guard and RAII Wrapper for the Standard Library</a></li>
<li>P0290 - <a href="https://wg21.link/P0290"><code>apply()</code> for <code>synchronized_value&lt;T&gt;</code></a></li>
<li>P0318 - <a href="https://wg21.link/P0318"><code>unwrap_ref_decay</code> and <code>unwrap_reference</code></a></li>
<li>P0407 - <a href="https://wg21.link/P0408">Efficient Access to <code>basic_stringbuf</code>’s Buffer</a> (now combined with P0407)</li>
<li>P0429 - <a href="https://wg21.link/P0429"> Standard <code>flat_map</code></a></li>
<li>P0466 - <a href="https://wg21.link/P0466">Layout-compatibility and Pointer-interconvertibility Traits</a></li>
<li>P0553 - <a href="https://wg21.link/P0553">Bit operations</a> (needs a bit of LEWG review)</li>
<li>P0608 - <a href="https://wg21.link/P0608">A sane <code>variant</code> converting constructor</a></li>
<li>P0790 - <a href="https://wg21.link/P0790">Effect of <code>operator&lt;=&gt;</code> on the C++ Standard Library</a></li>
<li>P0881 - <a href="https://wg21.link/P0881">A Proposal to add stack trace library</a></li>
<li>P0883 - <a href="https://wg21.link/P0883">Fixing Atomic Initialization, Rev1</a></li>
<li>P1007 - <a href="https://wg21.link/P1007"><code>std::assume_aligned</code></a></li>
</ul>


<h2>R1: Rapperswil, June 6-11, 2018</h2>

<h3>General</h3>

<p>LWG (again) entered the week with a large backlog of papers; somewhere around 55. We have dealt with more papers than we accumulated this week, but we still have a large backlog. We reviewed 39 papers, adopting 26 of them. (Five of those are being moved by CWG).</p>

<p>To deal with this backlog of work, we will be holding an additional, LWG-only meeting in Battavia, IL the week of August 20-24. Thanks to Walter Brown for organizing this.</p>

<h3>Notable Accomplishments</h3>

<ul>
<li>The Parallelism TS 2 is now ready for publishing.</li>
<li>The Reflection TS is now ready for PDTS balloting, after adding the contents of P0670R4 (Function Reflection).</li>
<li>We are moving the paper "Concepts for the Standard Library".</li>
<li>We are moving "Atomic Ref".</li>
<li>Moar Constexpr (array, algorithms)</li>
<li>We removed a bunch of deprecated features from the standard library.</li>
<li>We adopted a pair of papers that improve the interface of the standard containers.</li>
<li>We have 15 issue resolutions to propose as well.</li>
</ul>


<h3>Discussed, but did not move</h3>

<ul>
<li>P0009 - <code>mdspan</code></li>
<li>P0805 - Comparing Containers</li>
<li>P0811 - Well-behaved interpolation for numbers and pointers</li>
<li>P0942 - Introducing a <code>&lt;smart_ptr&gt;</code> header</li>
</ul>


<h2>R0: Jacksonville, March 6-11, 2018</h2>

<h3>General</h3>

<p>LWG entered the week with a large backlog of papers; somewhere around 55. We may have exited the week with a larger backlog than we started, since other groups have sent us many papers during the week. Our throughput was limited this week because we spent the first two days of the meeting on two (very large) papers; P0214 (Data-parallelism) and P0355 (calendar support). Fortunately, we completed our review, the authors turned the changes around, and we moved both of them.</p>

<h3>Notable Accomplishments</h3>

<ul>
<li>The Parallelism TS 2 is now ready for PDTS balloting, after adding the contents of P0214.</li>
<li>The Reflection TS has been created, and initial content has been added.</li>
<li>The Library Fundamentals 3 TS has been created, with all the parts of LFTS 2 that weren't added into C++17. More will be added here in future meetings.</li>
<li>We added calendar and time zone support into <code>&lt;chrono&gt;</code> for C++20.</li>
<li>We added <code>&lt;span&gt;</code> to C++20.</li>
<li>We added <code>&lt;version&gt;</code> to C++20; a place to put implementation-specific configuration and versioning.</li>
<li>We have added "Moar constexpr" to the standard library.</li>
<li>Some issue processing was done</li>
</ul>


<h3>Discussed, but did not move</h3>

<ul>
<li><code>expected&lt;T&gt;</code></li>
<li><code>polymorphic_value</code></li>
</ul>


<h3>Future work</h3>

<p>In plenary, I asked for a show of hands for people who would be willing to attend an extra "LWG-only" weeklong session in the late summer. About 14 people raised their hands. Assuming that we can find a venue (and a sufficient number commit to attend), we will have an extra meeting this summer.</p>

<p>We have been processing issues on the reflector; mostly with prioritization, but more and more, we're trying to solve them there. I expect this to continue. Of course, all resolutions will be proposed and voted on in formal meetings.</p>
</body></html>
