]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - www/upcoming_meeting.html
Vendor import of libc++ trunk r290819:
[FreeBSD/FreeBSD.git] / www / upcoming_meeting.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2           "http://www.w3.org/TR/html4/strict.dtd">
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
4 <html>
5 <head>
6   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
7   <title>libc++ Upcoming Meeting Status</title>
8   <link type="text/css" rel="stylesheet" href="menu.css">
9   <link type="text/css" rel="stylesheet" href="content.css">
10 </head>
11
12 <body>
13 <div id="menu">
14   <div>
15     <a href="http://llvm.org/">LLVM Home</a>
16   </div>
17
18   <div class="submenu">
19     <label>libc++ Info</label>
20     <a href="/index.html">About</a>
21   </div>
22
23   <div class="submenu">
24     <label>Quick Links</label>
25     <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a>
26     <a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits</a>
27     <a href="http://llvm.org/bugs/">Bug Reports</a>
28     <a href="http://llvm.org/svn/llvm-project/libcxx/trunk/">Browse SVN</a>
29     <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/">Browse ViewVC</a>
30   </div>
31 </div>
32
33 <div id="content">
34   <!--*********************************************************************-->
35   <h1>libc++ Issaquah Status</h1>
36   <!--*********************************************************************-->
37
38   <p>This is a temporary page; please check the c++1z status <a href="http://libcxx.llvm.org/cxx1z_status.html">here</a></p>
39   <p>This page shows the status of the papers and issues that are expected to be adopted in Issaquah.</p>
40
41   <p>The groups that have contributed papers:
42   <ul>
43     <li>LWG - Library working group</li>
44     <li>CWG - Core Language Working group</li>
45     <li>SG1 - Study group #1 (Concurrency working group)</li>
46   </ul>
47   </p>
48   
49   <h3>Paper Status</h3>
50   <table id="papers" border="1">
51         <tr><th>Paper #</th><th>Group</th><th>Paper Name</th><th>Meeting</th><th>Status</th><th>First released version</th></tr>
52 <!--
53         <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3346.pdf">3346</a></td><td>LWG</td><td>Terminology for Container Element Requirements - Rev 1</td><td>Kona</td><td>Complete</td><td>3.4</td></tr>
54 -->
55 <!--    <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> -->
56   </table>
57
58   <h3>Library Working group Issues Status</h3>
59   <table id="issues" border="1">
60         <tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr>
61
62          <tr><td><a href="http://wg21.link/LWG2062">2062</a></td><td>Effect contradictions w/o no-throw guarantee of std::function swaps</td><td>Issaquah</td><td>Nothing to do.</td></tr>
63          <tr><td><a href="http://wg21.link/LWG2166">2166</a></td><td>Heap property underspecified?</td><td>Issaquah</td><td></td></tr>
64          <tr><td><a href="http://wg21.link/LWG2221">2221</a></td><td>No formatted output operator for nullptr</td><td>Issaquah</td><td>Patch ready</td></tr>
65          <tr><td><a href="http://wg21.link/LWG2223">2223</a></td><td>shrink_to_fit effect on iterator validity</td><td>Issaquah</td><td>Nothing to do.</td></tr>
66          <tr><td><a href="http://wg21.link/LWG2261">2261</a></td><td>Are containers required to use their 'pointer' type internally?</td><td>Issaquah</td><td></td></tr>
67          <tr><td><a href="http://wg21.link/LWG2394">2394</a></td><td>locale::name specification unclear - what is implementation-defined?</td><td>Issaquah</td><td>Nothing to do.</td></tr>
68          <tr><td><a href="http://wg21.link/LWG2460">2460</a></td><td>LWG issue 2408 and value categories</td><td>Issaquah</td><td>Nothing to do.</td></tr>
69          <tr><td><a href="http://wg21.link/LWG2468">2468</a></td><td>Self-move-assignment of library types</td><td>Issaquah</td><td></td></tr>
70          <tr><td><a href="http://wg21.link/LWG2475">2475</a></td><td>Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs</td><td>Issaquah</td><td>Nothing to do.</td></tr>
71          <tr><td><a href="http://wg21.link/LWG2503">2503</a></td><td>multiline option should be added to syntax_option_type</td><td>Issaquah</td><td></td></tr>
72          <tr><td><a href="http://wg21.link/LWG2510">2510</a></td><td>Tag types should not be DefaultConstructible</td><td>Issaquah</td><td></td></tr>
73          <tr><td><a href="http://wg21.link/LWG2514">2514</a></td><td>Type traits must not be final</td><td>Issaquah</td><td>Nothing to do</td></tr>
74          <tr><td><a href="http://wg21.link/LWG2519">2519</a></td><td>Iterator operator-= has gratuitous undefined behaviour</td><td>Issaquah</td><td>Nothing to do</td></tr>
75          <tr><td><a href="http://wg21.link/LWG2531">2531</a></td><td>future::get should explicitly state that the shared state is released</td><td>Issaquah</td><td></td></tr>
76          <tr><td><a href="http://wg21.link/LWG2534">2534</a></td><td>Constrain rvalue stream operators</td><td>Issaquah</td><td></td></tr>
77          <tr><td><a href="http://wg21.link/LWG2536">2536</a></td><td>What should &lt;complex.h&gt; do?</td><td>Issaquah</td><td>We already do this</td></tr>
78          <tr><td><a href="http://wg21.link/LWG2540">2540</a></td><td>unordered_multimap::insert hint iterator</td><td>Issaquah</td><td>We already do this</td></tr>
79          <tr><td><a href="http://wg21.link/LWG2543">2543</a></td><td>LWG 2148 (hash support for enum types) seems under-specified</td><td>Issaquah</td><td>We already do this</td></tr>
80          <tr><td><a href="http://wg21.link/LWG2544">2544</a></td><td>istreambuf_iterator(basic_streambuf<charT, traits>* s) effects unclear when s is 0</td><td>Issaquah</td><td>We already do this</td></tr>
81          <tr><td><a href="http://wg21.link/LWG2556">2556</a></td><td>Wide contract for future::share()</td><td>Issaquah</td><td>Patch ready</td></tr>
82          <tr><td><a href="http://wg21.link/LWG2562">2562</a></td><td>Consistent total ordering of pointers by comparison functors</td><td>Issaquah</td><td></td></tr>
83          <tr><td><a href="http://wg21.link/LWG2567">2567</a></td><td>Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits</td><td>Issaquah</td><td>Nothing to do.</td></tr>
84          <tr><td><a href="http://wg21.link/LWG2569">2569</a></td><td>conjunction and disjunction requirements are too strict</td><td>Issaquah</td><td>Nothing to do.</td></tr>
85          <tr><td><a href="http://wg21.link/LWG2570">2570</a></td><td>[fund.ts.v2] conjunction and disjunction requirements are too strict</td><td>Issaquah</td><td></td></tr>
86          <tr><td><a href="http://wg21.link/LWG2578">2578</a></td><td>Iterator requirements should reference iterator traits</td><td>Issaquah</td><td>Nothing to do</td></tr>
87          <tr><td><a href="http://wg21.link/LWG2584">2584</a></td><td><regex> ECMAScript IdentityEscape is ambiguous</td><td>Issaquah</td><td></td></tr>
88          <tr><td><a href="http://wg21.link/LWG2589">2589</a></td><td>match_results can't satisfy the requirements of a container</td><td>Issaquah</td><td>Nothing to do</td></tr>
89          <tr><td><a href="http://wg21.link/LWG2591">2591</a></td><td>std::function's member template target() should not lead to undefined behaviour</td><td>Issaquah</td><td></td></tr>
90          <tr><td><a href="http://wg21.link/LWG2598">2598</a></td><td>addressof works on temporaries</td><td>Issaquah</td><td>Patch ready</td></tr>
91          <tr><td><a href="http://wg21.link/LWG2664">2664</a></td><td>operator/ (and other append) semantics not useful if argument has root</td><td>Issaquah</td><td>Nothing to do</td></tr>
92          <tr><td><a href="http://wg21.link/LWG2665">2665</a></td><td>remove_filename() post condition is incorrect</td><td>Issaquah</td><td>See Below</td></tr>
93          <tr><td><a href="http://wg21.link/LWG2672">2672</a></td><td>Should is_empty use error_code in its specification?</td><td>Issaquah</td><td>We already do this</td></tr>
94          <tr><td><a href="http://wg21.link/LWG2678">2678</a></td><td>std::filesystem enum classes overspecified</td><td>Issaquah</td><td>Nothing to do</td></tr>
95          <tr><td><a href="http://wg21.link/LWG2679">2679</a></td><td>Inconsistent Use of Effects and Equivalent To</td><td>Issaquah</td><td>Nothing to do</td></tr>
96          <tr><td><a href="http://wg21.link/LWG2680">2680</a></td><td>Add "Equivalent to" to filesystem</td><td>Issaquah</td><td>Nothing to do</td></tr>
97          <tr><td><a href="http://wg21.link/LWG2681">2681</a></td><td>filesystem::copy() cannot copy symlinks</td><td>Issaquah</td><td>We already do this</td></tr>
98          <tr><td><a href="http://wg21.link/LWG2682">2682</a></td><td>filesystem::copy() won't create a symlink to a directory</td><td>Issaquah</td><td>Implemented in trunk</td></tr>
99          <tr><td><a href="http://wg21.link/LWG2686">2686</a></td><td>Why is std::hash specialized for error_code, but not error_condition?</td><td>Issaquah</td><td>Patch ready</td></tr>
100          <tr><td><a href="http://wg21.link/LWG2694">2694</a></td><td>Application of LWG 436 accidentally deleted definition of "facet"</td><td>Issaquah</td><td>Nothing to do</td></tr>
101          <tr><td><a href="http://wg21.link/LWG2696">2696</a></td><td>Interaction between make_shared and enable_shared_from_this is underspecified</td><td>Issaquah</td><td></td></tr>
102          <tr><td><a href="http://wg21.link/LWG2699">2699</a></td><td>Missing restriction in [numeric.requirements]</td><td>Issaquah</td><td></td></tr>
103          <tr><td><a href="http://wg21.link/LWG2712">2712</a></td><td>copy_file(from, to, ...) has a number of unspecified error conditions</td><td>Issaquah</td><td>Implemented in trunk</td></tr>
104          <tr><td><a href="http://wg21.link/LWG2722">2722</a></td><td>equivalent incorrectly specifies throws clause</td><td>Issaquah</td><td>We already do this</td></tr>
105          <tr><td><a href="http://wg21.link/LWG2729">2729</a></td><td>Missing SFINAE on std::pair::operator=</td><td>Issaquah</td><td></td></tr>
106          <tr><td><a href="http://wg21.link/LWG2732">2732</a></td><td>Questionable specification of path::operator/= and path::append</td><td>Issaquah</td><td>Nothing to do</td></tr>
107          <tr><td><a href="http://wg21.link/LWG2733">2733</a></td><td>[fund.ts.v2] gcd / lcm and bool</td><td>Issaquah</td><td></td></tr>
108          <tr><td><a href="http://wg21.link/LWG2735">2735</a></td><td>std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C</td><td>Issaquah</td><td></td></tr>
109          <tr><td><a href="http://wg21.link/LWG2736">2736</a></td><td>nullopt_t insufficiently constrained</td><td>Issaquah</td><td></td></tr>
110          <tr><td><a href="http://wg21.link/LWG2738">2738</a></td><td>is_constructible with void types</td><td>Issaquah</td><td>We already do this</td></tr>
111          <tr><td><a href="http://wg21.link/LWG2739">2739</a></td><td>Issue with time_point non-member subtraction with an unsigned duration</td><td>Issaquah</td><td>Patch Ready</td></tr>
112          <tr><td><a href="http://wg21.link/LWG2740">2740</a></td><td>constexpr optional<T>::operator-></td><td>Issaquah</td><td>We already do this</td></tr>
113          <tr><td><a href="http://wg21.link/LWG2742">2742</a></td><td>Inconsistent string interface taking string_view</td><td>Issaquah</td><td>Patch Ready</td></tr>
114          <tr><td><a href="http://wg21.link/LWG2744">2744</a></td><td>any's in_place constructors</td><td>Issaquah</td><td>Implemented in trunk</td></tr>
115          <tr><td><a href="http://wg21.link/LWG2745">2745</a></td><td>[fund.ts.v2] Implementability of LWG 2451</td><td>Issaquah</td><td></td></tr>
116          <tr><td><a href="http://wg21.link/LWG2747">2747</a></td><td>Possibly redundant std::move in [alg.foreach]</td><td>Issaquah</td><td>Patch ready</td></tr>
117          <tr><td><a href="http://wg21.link/LWG2748">2748</a></td><td>swappable traits for optionals</td><td>Issaquah</td><td>We already do this</td></tr>
118          <tr><td><a href="http://wg21.link/LWG2749">2749</a></td><td>swappable traits for variants</td><td>Issaquah</td><td></td></tr>
119          <tr><td><a href="http://wg21.link/LWG2750">2750</a></td><td>[fund.ts.v2] LWG 2451 conversion constructor constraint</td><td>Issaquah</td><td></td></tr>
120          <tr><td><a href="http://wg21.link/LWG2752">2752</a></td><td>"Throws:" clauses of async and packaged_task are unimplementable</td><td>Issaquah</td><td></td></tr>
121          <tr><td><a href="http://wg21.link/LWG2753">2753</a></td><td>Optional's constructors and assignments need constraints</td><td>Issaquah</td><td>We already do this</td></tr>
122          <tr><td><a href="http://wg21.link/LWG2754">2754</a></td><td>The in_place constructors and emplace functions added by P0032R3 don't require CopyConstructible</td><td>Issaquah</td><td>We already do this</td></tr>
123          <tr><td><a href="http://wg21.link/LWG2755">2755</a></td><td>ยง[string.view.io] uses non-existent basic_string_view::to_string function</td><td>Issaquah</td><td>We already do this</td></tr>
124          <tr><td><a href="http://wg21.link/LWG2756">2756</a></td><td>C++ WP optional<T> should 'forward' T's implicit conversions</td><td>Issaquah</td><td>Implemented in trunk</td></tr>
125          <tr><td><a href="http://wg21.link/LWG2758">2758</a></td><td>std::string{}.assign("ABCDE", 0, 1) is ambiguous</td><td>We already do this</td><td></td></tr>
126          <tr><td><a href="http://wg21.link/LWG2759">2759</a></td><td>gcd / lcm and bool for the WP</td><td>Issaquah</td><td>Patch ready</td></tr>
127          <tr><td><a href="http://wg21.link/LWG2760">2760</a></td><td>non-const basic_string::data should not invalidate iterators</td><td>Issaquah</td><td>Nothing to do</td></tr>
128          <tr><td><a href="http://wg21.link/LWG2765">2765</a></td><td>Did LWG 1123 go too far?</td><td>Issaquah</td><td></td></tr>
129          <tr><td><a href="http://wg21.link/LWG2767">2767</a></td><td>not_fn call_wrapper can form invalid types</td><td>Issaquah</td><td>We already do this</td></tr>
130          <tr><td><a href="http://wg21.link/LWG2768">2768</a></td><td>any_cast and move semantics</td><td>Issaquah</td><td>Resolved by LWG 2769</td></tr>
131      <tr><td><a href="http://wg21.link/LWG2769">2769</a></td><td>Redundant const in the return type of any_cast(const any&)</td><td>Issaquah</td><td>Implemented in trunk</td></tr>
132          <tr><td><a href="http://wg21.link/LWG2771">2771</a></td><td>Broken Effects of some basic_string::compare functions in terms of basic_string_view</td><td>Issaquah</td><td>We already do this</td></tr>
133          <tr><td><a href="http://wg21.link/LWG2773">2773</a></td><td>Making std::ignore constexpr</td><td>Issaquah</td><td></td></tr>
134          <tr><td><a href="http://wg21.link/LWG2777">2777</a></td><td>basic_string_view::copy should use char_traits::copy</td><td>Issaquah</td><td>Patch Ready</td></tr>
135          <tr><td><a href="http://wg21.link/LWG2778">2778</a></td><td>basic_string_view is missing constexpr</td><td>Issaquah</td><td></td></tr>
136   </table>
137
138 <h3>Comments about the issues</h3>
139 <ul>
140 <li>2062 - We already do this; added some tests to make sure we keep doing so.</li>
141 <li>2166 - I <b>suspect</b> that this is just better specification of the existing structure. Probably need more tests for this.</li>
142 <li>2221 - Patch and tests ready</li>
143 <li>2223 - This is just wording cleanup. </li>
144 <li>2261 - <b>Survey our containers to make sure we do this.</b> Ideally, this will result in no code changes.</li>
145 <li>2394 - This is just wording cleanup.</li>
146 <li>2460 - This is just wording cleanup.</li>
147 <li>2468 - <i>I think we already do this; but will need to survey the libray to be sure</i></li>
148 <li>2475 - Nothing to do here. </li>
149 <li>2503 - </li>
150 <li>2510 - <b>Need to write tests for all the tag types</b></li>
151 <li>2514 - Nothing to do; We don't mark any of the type traits as final. </li>
152 <li>2519 - This is just wording cleanup. </li>
153 <li>2531 - This <b>should be</b> just wording cleanup. </li>
154 <li>2534 - </li>
155 <li>2536 - We already do this. </li>
156 <li>2540 - We already do this, and have tests for it.</li>
157 <li>2543 - </li>
158 <li>2544 - We already do this; I've added tests to make sure we keep doing so</li>
159 <li>2556 - Patch and tests ready</li>
160 <li>2562 - I <b>suspect</b> that this is just better specification of the existing structure. Probably need more tests for this.</li>
161 <li>2567 - This is just wording cleanup.</li>
162 <li>2569 - This is just wording cleanup.</li>
163 <li>2570 - Same as 2569, but applied to LFTS</li>
164 <li>2578 - This is just wording cleanup. </li>
165 <li>2584 - </li>
166 <li>2589 - This is just wording cleanup. </li>
167 <li>2591 - I <b>suspect</b> that this is just better specification of the existing structure. Probably need more tests for this.</li>
168 <li>2598 - Patch and tests ready</li>
169 <li>2664 - No change needed. _LIBCPP_DEBUG mode tests the new requirements.</li>
170 <li>2665 - PR is incorrect as-is. We implement a modified version</li>
171 <li>2672 - Patch and tests in tree. </li>
172 <li>2678 - No change needed. Mostly wording cleanup. </li>
173 <li>2679 - This is just wording cleanup. </li>
174 <li>2680 - This is just wording cleanup. </li>
175 <li>2681 - LGTM </li>
176 <li>2682 - Current PR is incorrect. A modified version has been implemented</li>
177 <li>2686 - Patch and tests ready</li>
178 <li>2694 - Restoring inadvertently deleted text. No code changes needed.</li>
179 <li>2696 - I <b>suspect</b> that this is just better specification of the existing structure. Probably need more tests for this.</li>
180 <li>2699 - I don't think this requires any code changes; look more closely.</li>
181 <li>2712 - LGTM. </li>
182 <li>2722 - LGTM </li>
183 <li>2729 - </li>
184 <li>2732 - Our implementation is already equivalent. </li>
185 <li>2733 - LFTS; same as 2759</li>
186 <li>2735 - I <b>suspect</b> that this is just better specification of the existing structure. Probably need more tests for this.</li>
187 <li>2736 - </li>
188 <li>2738 - We already do this; I added tests for cv-void</li>
189 <li>2739 - Patch and tests ready</li>
190 <li>2740 - <i>std::optional</i>: The resolution LGTM. </li>
191 <li>2742 - Patch and tests ready</li>
192 <li>2744 - <i>std::any</i>: We already do this. We also check for a decayed in_place_type_t. </li>
193 <li>2745 - <i>std::optional</i> for LFTS -- should be considered for C++17</li>
194 <li>2747 - Patch ready, but I can't think of any way to test it.</li>
195 <li>2748 - <i>std::optional</i>: LGTM. </li>
196 <li>2749 - <i>std::variant</i></li>
197 <li>2750 - <i>std::optional</i> for LFTS -- should be considered for C++17</li>
198 <li>2752 - </li>
199 <li>2753 - <i>std::optional</i>: LGTM. </li>
200 <li>2754 - <i>std::any</i>: LGTM. </li>
201 <li>2755 - Both string and string_view call a common routine for output; so no code changes needed.</li>
202 <li>2756 - <i>std::optional</i>: Very large change. It is fully implemented and tested. </li>
203 <li>2758 - We already do this. </li>
204 <li>2759 - Patch and tests ready</li>
205 <li>2760 - This is just wording cleanup; no code or test changes needed.</li>
206 <li>2765 - is this just wording cleanup????? I don't think this actually requires code changes. </li>
207 <li>2767 - The test case on the issue is incorrect. See not_fn.pass.cpp for the correct test case. </li>
208 <li>2768 - <i>std::any</i>: There is no PR for this issue. It is resolved by LWG 2769. </li>
209 <li>2769 - <i>std::any</i>: The PR looks good except that
210         <code>remove_reference_t&lt;remove_cv_t&lt;T&gt;&gt;</code> should read
211         <code>remove_cv_t&lt;remove_reference_t&lt;T&gt;&gt;</code>. </li>
212 <li>2771 - We already do this.</li>
213 <li>2773 - </li>
214 <li>2777 - Patch ready; existing tests should suffice</li>
215 <li>2778 - This is mostly tests.</li>
216 </ul>
217
218 <p>Last Updated: 10-Oct-2016</p>
219 </div>
220 </body>
221 </html>