blob: 4b11fa842a6d53d9050b58eebcc80364d66178a9 [file] [log] [blame]
Marshall Clow5d480772013-08-13 14:58:39 +00001<!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++ C++1Y 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.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a>
26 <a href="http://lists.cs.uiuc.edu/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++ C++1Y Status</h1>
36 <!--*********************************************************************-->
37
38 <p>In April 2013, the C++ standard committee approved the draft for the next version of the C++ standard, known as "C++1Y" (probably to be C++14)</p>
39
40 <p>The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol)</p>
41
42 <h3>Paper Status</h3>
43 <table id="papers" border="1">
44 <tr><th>Paper #</th><th>Paper Name</th><th>Meeting</th><th>Status</th></tr>
45 <tr><td>3346</td><td>Terminology for Container Element Requirements - Rev 1</td><td>Kona</td><td>Complete</td></tr>
46
Marshall Clow23d1ccc2013-08-13 17:02:42 +000047 <tr><td>3421</td><td>Making Operator Functors greater&lt;&gt;</td><td>Portland</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000048 <tr><td>3462</td><td>std::result_of and SFINAE</td><td>Portland</td><td>Complete</td></tr>
49
50 <tr><td>3469</td><td>Constexpr Library Additions: chrono, v3</td><td>Portland</td><td>Complete</td></tr>
51 <tr><td>3470</td><td>Constexpr Library Additions: containers, v2</td><td>Portland</td><td>Complete</td></tr>
52 <tr><td>3471</td><td>Constexpr Library Additions: utilities, v3</td><td>Portland</td><td>Complete</td></tr>
53 <tr><td>3302</td><td>Constexpr Library Additions: complex, v2</td><td>Portland</td><td>Complete</td></tr>
54
55 <tr><td>3545</td><td>An Incremental Improvement to integral_constant</td><td>Bristol</td><td>Complete</td></tr>
56 <tr><td>3644</td><td>Null Forward Iterators</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow6ef84082013-08-13 16:23:22 +000057 <tr><td>3668</td><td>std::exchange()</td><td>Bristol</td><td>Complete</td></tr>
58 <tr><td>3658</td><td>Compile-time integer sequences</td><td>Bristol</td><td>Complete</td></tr>
59 <tr><td>3670</td><td>Addressing Tuples by Type</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000060 <tr><td>3671</td><td>Making non-modifying sequence operations more robust</td><td>Bristol</td><td>Complete</td></tr>
61 <tr><td>3656</td><td>make_unique</td><td>Bristol</td><td>Complete</td></tr>
62 <tr><td>3654</td><td>Quoted Strings</td><td>Bristol</td><td>Implemented, but not checked in</td></tr>
63 <tr><td>3642</td><td>User-defined Literals</td><td>Bristol</td><td>Complete</td></tr>
64 <tr><td>3655</td><td>TransformationTraits Redux (excluding part 4)</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow5da30872013-08-13 22:20:01 +000065 <tr><td>3657</td><td>Adding heterogeneous comparison lookup to associative containers</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000066 <tr><td>3672</td><td>A proposal to add a utility class to represent optional objects</td><td>Bristol</td><td></td></tr>
67 <tr><td>3669</td><td>Fixing constexpr member functions without const</td><td>Bristol</td><td>Complete</td></tr>
68 <tr><td>3662</td><td>C++ Dynamic Arrays (dynarray)</td><td>Bristol</td><td></td></tr>
69 </table>
70
71 <h3>Issue Status</h3>
72 <I>Note: "NAD" means that the issue was deemed "Not a defect"</I>
73 <table id="issues" border="1">
74 <tr><th>Issue #</th><th>Issue Name</th><th>Meeting</th><th>Status</th></tr>
75 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1214">1214</a></td><td>Insufficient/inconsistent key immutability requirements for associative containers</td><td>Kona</td><td></td></tr>
Marshall Clow83e40c42013-08-13 16:01:28 +000076 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2009">2009</a></td><td>Reporting out-of-bound values on numeric string conversions</td><td>Kona</td><td>Complete</td></tr>
Marshall Clow5da30872013-08-13 22:20:01 +000077 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2010">2010</a></td><td>is_* traits for binding operations can't be meaningfully specialized</td><td>Kona</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000078 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2015">2015</a></td><td>Incorrect pre-conditions for some type traits</td><td>Kona</td><td></td></tr>
79 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2021">2021</a></td><td>Further incorrect usages of result_of</td><td>Kona</td><td></td></tr>
80 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2028">2028</a></td><td>messages_base::catalog overspecified</td><td>Kona</td><td></td></tr>
81 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2033">2033</a></td><td>Preconditions of reserve, shrink_to_fit, and resize functions</td><td>Kona</td><td></td></tr>
Marshall Clow23d1ccc2013-08-13 17:02:42 +000082 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2039">2039</a></td><td>Issues with std::reverse and std::copy_if</td><td>Kona</td><td>Complete</td></tr>
83 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2044">2044</a></td><td>No definition of "Stable" for copy algorithms</td><td>Kona</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000084 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2045">2045</a></td><td>forward_list::merge and forward_list::splice_after with unequal allocators</td><td>Kona</td><td></td></tr>
85 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2047">2047</a></td><td>Incorrect "mixed" move-assignment semantics of unique_ptr</td><td>Kona</td><td></td></tr>
86 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2050">2050</a></td><td>Unordered associative containers do not use allocator_traits to define member types</td><td>Kona</td><td></td></tr>
87 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2053">2053</a></td><td>Errors in regex bitmask types</td><td>Kona</td><td></td></tr>
88 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2061">2061</a></td><td>make_move_iterator and arrays</td><td>Kona</td><td></td></tr>
89 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2064">2064</a></td><td>More noexcept issues in basic_string</td><td>Kona</td><td></td></tr>
90 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2065">2065</a></td><td>Minimal allocator interface</td><td>Kona</td><td></td></tr>
Marshall Clow2df37002013-08-14 15:15:28 +000091 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2067">2067</a></td><td>packaged_task should have deleted copy c'tor with const parameter</td><td>Kona</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000092 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2069">2069</a></td><td>Inconsistent exception spec for basic_string move constructor</td><td>Kona</td><td></td></tr>
93 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2096">2096</a></td><td>Incorrect constraints of future::get in regard to</td><td>Kona</td><td></td></tr>
94 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2102">2102</a></td><td>Why is std::launch an implementation-defined type?</td><td>Kona</td><td></td></tr>
95 <tr><td></td><td></td><td></td><td></td></tr>
96 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2071">2071</a></td><td>std::valarray move-assignment</td><td>Portland</td><td></td></tr>
Marshall Clow83e40c42013-08-13 16:01:28 +000097 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2074">2074</a></td><td>Off by one error in std::reverse_copy</td><td>Portland</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +000098 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2081">2081</a></td><td>Allocator requirements should include CopyConstructible 2083 const-qualification on weak_ptr::owner_before</td><td>Portland</td><td></td></tr>
99 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2086">2086</a></td><td>Overly generic type support for math functions</td><td>Portland</td><td></td></tr>
100 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2099">2099</a></td><td>Unnecessary constraints of va_start() usage</td><td>Portland</td><td></td></tr>
Marshall Clow6b229e12013-08-13 15:13:42 +0000101 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2103">2103</a></td><td>std::allocator_traits&lt;std::allocator&lt;T&gt;&gt;::propagate_on_container_move_assignment</td><td>Portland</td><td></td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +0000102 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2105">2105</a></td><td>Inconsistent requirements on const_iterator's value_type</td><td>Portland</td><td></td></tr>
Marshall Clow68b40252013-08-14 15:28:40 +0000103 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2110">2110</a></td><td>remove can't swap but note says it might</td><td>Portland</td><td>Complete</td></tr>
104 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2123">2123</a></td><td>merge() allocator requirements for lists versus forward lists</td><td>Portland</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +0000105 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2005">2005</a></td><td>unordered_map::insert(T&&) protection should apply to map too</td><td>Portland</td><td></td></tr>
106 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2011">2011</a></td><td>Unexpected output required of strings</td><td>Portland</td><td></td></tr>
107 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2048">2048</a></td><td>Unnecessary mem_fn overloads</td><td>Portland</td><td></td></tr>
108 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2049">2049</a></td><td>is_destructible is underspecified</td><td>Portland</td><td></td></tr>
109 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2056">2056</a></td><td>future_errc enums start with value 0 (invalid value for broken_promise)</td><td>Portland</td><td></td></tr>
110 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2058">2058</a></td><td>valarray and begin/end</td><td>Portland</td><td></td></tr>
111 <tr><td></td><td></td><td></td><td></td></tr>
112 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2091">2091</a></td><td>Misplaced effect in m.try_lock_for()</td><td>Bristol</td><td></td></tr>
113 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2092">2092</a></td><td>Vague Wording for condition_variable_any</td><td>Bristol</td><td></td></tr>
114 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2093">2093</a></td><td>Throws clause of condition_variable::wait with predicate</td><td>Bristol</td><td></td></tr>
115 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2145">2145</a></td><td>error_category default constructor</td><td>Bristol</td><td></td></tr>
116 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2147">2147</a></td><td>Unclear hint type in Allocator's allocate function</td><td>Bristol</td><td></td></tr>
117 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2163">2163</a></td><td>nth_element requires inconsistent post-conditions</td><td>Bristol</td><td></td></tr>
118 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2169">2169</a></td><td>Missing reset() requirements in unique_ptr specialization</td><td>Bristol</td><td></td></tr>
119 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2172">2172</a></td><td>Does atomic_compare_exchange_* accept v == nullptr arguments?</td><td>Bristol</td><td></td></tr>
120 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2080">2080</a></td><td>Specify when once_flag becomes invalid</td><td>Bristol</td><td></td></tr>
121 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2109">2109</a></td><td>Incorrect requirements for hash specializations</td><td>Bristol</td><td></td></tr>
122 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2144">2144</a></td><td>Missing noexcept specification in type_index</td><td>Bristol</td><td></td></tr>
123 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2174">2174</a></td><td>wstring_convert::converted() should be noexcept</td><td>Bristol</td><td></td></tr>
124 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2175">2175</a></td><td>string_convert and wbuffer_convert validity</td><td>Bristol</td><td></td></tr>
125 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2177">2177</a></td><td>Requirements on Copy/MoveInsertable</td><td>Bristol</td><td></td></tr>
Marshall Clow198a2a52013-08-13 23:54:12 +0000126 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2187">2187</a></td><td>vector&lt;bool&gt; is missing emplace and emplace_back member functions</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow23d1ccc2013-08-13 17:02:42 +0000127 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2197">2197</a></td><td>Specification of is_[un]signed unclear for non-arithmetic types</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +0000128 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2200">2200</a></td><td>Data race avoidance for all containers, not only for sequences</td><td>Bristol</td><td></td></tr>
129 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2209">2209</a></td><td>assign() overspecified for sequence containers</td><td>Bristol</td><td></td></tr>
130 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2211">2211</a></td><td>Replace ambiguous use of "Allocator" in container requirements</td><td>Bristol</td><td></td></tr>
131 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2222">2222</a></td><td>Inconsistency in description of forward_list::splice_after single-element overload</td><td>Bristol</td><td></td></tr>
Marshall Clow23d1ccc2013-08-13 17:02:42 +0000132 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2225">2225</a></td><td>Unrealistic header inclusion checks required</td><td>Bristol</td><td>Complete</td></tr>
133 <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2231">2231</a></td><td>DR 704 removes complexity guarantee for clear()</td><td>Bristol</td><td>Complete</td></tr>
Marshall Clow5d480772013-08-13 14:58:39 +0000134 </table>
135
Marshall Clow6b229e12013-08-13 15:13:42 +0000136 <p>Last Updated: 13-Aug-2013</p>
Marshall Clow5d480772013-08-13 14:58:39 +0000137</div>
138</body>
139</html>