<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>libc++ Upcoming Meeting Status</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>

<body>
<div id="menu">
  <div>
    <a href="https://llvm.org/">LLVM Home</a>
  </div>

  <div class="submenu">
    <label>libc++ Info</label>
    <a href="/index.html">About</a>
  </div>

  <div class="submenu">
    <label>Quick Links</label>
    <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a>
    <a href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a>
    <a href="https://bugs.llvm.org/">Bug Reports</a>
    <a href="https://github.com/llvm/llvm-project/tree/master/libcxx/">Browse Sources</a>
  </div>
</div>

<div id="content">
  <!--*********************************************************************-->
  <h1>libc++ Upcoming Meeting Status</h1>
  <!--*********************************************************************-->

  <p>This is a temporary page; please check the c++2a status <a href="cxx2a_status.html">here</a></p>
  <p>This page shows the status of the papers and issues that are expected to be adopted in the next WG21 Meeting.</p>

  <p>The groups that have contributed papers:
  <ul>
    <li>LWG - Library working group</li>
    <li>CWG - Core Language Working group</li>
    <li>SG1 - Study group #1 (Concurrency working group)</li>
  </ul>
  </p>

  <h3>Paper Status</h3>
	<table border="1">
	<tr><th>Paper #</th><th>Group</th><th>Paper Name</th><th>Meeting</th><th>Status</th></tr>
<!-- 
	<tr><td><a href="https://wg21.link/P0487R0">P0487R0</a></td><td>LWG</td><td>Fixing operator&gt;&gt; (basic_istream&amp;, CharT*) (LWG 2499)</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="https://wg21.link/P0602R3">P0602R3</a></td><td>LWG</td><td>variant and optional should propagate copy/move triviality</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="https://wg21.link/P0655R0">P0655R0</a></td><td>LWG</td><td>visit&lt;R&gt;: Explicit Return Type for visit</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="https://wg21.link/P0972R0">P0972R0</a></td><td>LWG</td><td>&lt;chrono&gt; zero(), min(), and max() should be noexcept</td><td>San Diego</td><td>See <a href="https://reviews.llvm.org/D53828">D53828</a></td></tr>
	<tr><td><a href="https://wg21.link/P1004R0">P1004R0</a></td><td>LWG</td><td>Making std::vector constexpr</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="https://wg21.link/P1006R0">P1006R0</a></td><td>LWG</td><td>Constexpr in std::pointer_traits</td><td>San Diego</td><td>See <a href="https://reviews.llvm.org/D53867">D53867</a></td></tr>
	<tr><td><a href="https://wg21.link/P1032R0">P1032R0</a></td><td>LWG</td><td>Misc constexpr bits</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1148R0a.pdf">D1148</a></td><td>LWG</td><td>Cleaning up Clause 20</td><td>San Diego</td><td><i> </i></td></tr>
	<tr><td><a href="http://wiki.edg.com/pub/LWGBatavia2018/LibraryWorkingGroup/D1163R0V2.pdf">D1163</a></td><td>LWG</td><td>Explicitly Implicifying explicit Constructors</td><td>San Diego</td><td><i> </i></td></tr>
 -->
	</table>


  <h3>Library Working group Issues Status</h3>
  <table id="issues" border="1">
	<tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr>

<table border="1">
<tr><th>Issue #</th><th>Has P/R</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr>
<tr><td><a href="https://wg21.link/LWG3012">3012</a></td><td>Yes</td><td><tt>atomic&lt;T&gt;</tt> is unimplementable for non-<tt>is_trivially_copy_constructible T</tt></td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3040">3040</a></td><td>Yes</td><td><tt>basic_string_view::starts_with</tt> <i>Effects</i> are incorrect</td><td>Kona</td><td>Complete</td></tr>
<tr><td><a href="https://wg21.link/LWG3077">3077</a></td><td>Yes</td><td><tt>(push|emplace)_back</tt> should invalidate the <tt>end</tt> iterator</td><td>Kona</td><td><i>Nothing to do</i></td></tr>
<tr><td><a href="https://wg21.link/LWG3087">3087</a></td><td>Yes</td><td>One final <tt>&amp;x</tt> in &sect;[list.ops]</td><td>Kona</td><td><i>Nothing to do</i></td></tr>
<tr><td><a href="https://wg21.link/LWG3101">3101</a></td><td>Yes</td><td><tt>span</tt>'s <tt>Container</tt> constructors need another constraint</td><td>Kona</td><td>Patch available</td></tr>
<tr><td><a href="https://wg21.link/LWG3112">3112</a></td><td>Yes</td><td><tt>system_error</tt> and <tt>filesystem_error</tt> constructors taking a <tt>string</tt> may not be able  to meet their postconditions</td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3119">3119</a></td><td>Yes</td><td>Program-definedness of closure types</td><td>Kona</td><td><i>Nothing to do</i></td></tr>
<tr><td><a href="https://wg21.link/LWG3133">3133</a></td><td>Yes</td><td>Modernizing numeric type requirements</td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3144">3144</a></td><td>Yes</td><td><tt>span</tt> does not have a <tt>const_pointer</tt> typedef</td><td>Kona</td><td>Patch available</td></tr>
<tr><td><a href="https://wg21.link/LWG3173">3173</a></td><td>Yes</td><td>Enable CTAD for <i><tt>ref-view</tt></i></td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3179">3179</a></td><td>Yes</td><td><tt>subrange</tt> should always model <tt>Range</tt></td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3180">3180</a></td><td>Yes</td><td>Inconsistently named return type for <tt>ranges::minmax_element</tt></td><td>Kona</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG3182">3182</a></td><td>Yes</td><td>Specification of <tt>Same</tt> could be clearer</td><td>Kona</td><td></td></tr>
</table>

</table>

<h3>Issues to "Review"</h3>
<table border="1">
<tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr>
</table>


<h3>Comments about the issues</h3>
<ul>
<li>3012 - </li>
<li>3040 - We already do this</li>
<li>3077 - No changes required</li>
<li>3087 - No changes required</li>
<li>3101 - Patch: <a href="https://reviews.llvm.org/D57058">D57058</a></li>
<li>3112 - Patch: <a href="https://reviews.llvm.org/D57312">D57312</a></li>
<li>3119 - No changes required</li>
<li>3133 - </li>
<li>3144 - Patch: <a href="https://reviews.llvm.org/D57039">D57039</a></li>
<li>3173 - We don't have ranges yet</li>
<li>3179 - We don't have ranges yet</li>
<li>3180 - We don't have ranges yet</li>
<li>3182 - We don't have concepts yet</li>
</ul>

<p>Last Updated: 21-Jan-2019</p>
</div>
</body>
</html>
