libc++ C++1Y Status
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)
The draft standard includes papers and issues that were voted on at the previous three meetings (Kona, Portland, and Bristol)
This page shows the status of libc++; the status of clang's support of the language features is here.
The groups that have contributed papers:
- CWG - Core Language Working group
- LWG - Library working group
- SG1 - Study group #1 (Concurrency working group)
Paper Status
| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|---|---|---|---|---|
| 3346 | LWG | Terminology for Container Element Requirements - Rev 1 | Kona | Complete | 3.4 |
| 3421 | LWG | Making Operator Functors greater<> | Portland | Complete | 3.4 |
| 3462 | LWG | std::result_of and SFINAE | Portland | Complete | 3.4 |
| 3469 | LWG | Constexpr Library Additions: chrono, v3 | Portland | Complete | 3.4 |
| 3470 | LWG | Constexpr Library Additions: containers, v2 | Portland | Complete | 3.4 |
| 3471 | LWG | Constexpr Library Additions: utilities, v3 | Portland | Complete | 3.4 |
| 3302 | LWG | Constexpr Library Additions: complex, v2 | Portland | Complete | 3.4 |
| 3545 | LWG | An Incremental Improvement to integral_constant | Bristol | Complete | 3.4 |
| 3644 | LWG | Null Forward Iterators | Bristol | Complete | 3.4 |
| 3668 | LWG | std::exchange() | Bristol | Complete | 3.4 |
| 3658 | LWG | Compile-time integer sequences | Bristol | Complete | 3.4 |
| 3670 | LWG | Addressing Tuples by Type | Bristol | Complete | 3.4 |
| 3671 | LWG | Making non-modifying sequence operations more robust | Bristol | Complete | 3.4 |
| 3656 | LWG | make_unique | Bristol | Complete | 3.4 |
| 3654 | LWG | Quoted Strings | Bristol | Complete | 3.4 |
| 3642 | LWG | User-defined Literals | Bristol | Complete | 3.4 |
| 3655 | LWG | TransformationTraits Redux (excluding part 4) | Bristol | Complete | 3.4 |
| 3657 | LWG | Adding heterogeneous comparison lookup to associative containers | Bristol | Complete | 3.4 |
| 3672 | LWG | A proposal to add a utility class to represent optional objects | Bristol | Removed from Draft Standard | n/a |
| 3669 | LWG | Fixing constexpr member functions without const | Bristol | Complete | 3.4 |
| 3662 | LWG | C++ Dynamic Arrays (dynarray) | Bristol | Removed from Draft Standard | n/a |
| 3659 | SG1 | Shared Locking in C++ | Bristol | Complete | 3.4 |
| 3779 | LWG | User-defined Literals for std::complex | Chicago | Complete | 3.4 |
| 3789 | LWG | Constexpr Library Additions: functional | Chicago | Complete | 3.4 |
| 3778 | CWG | Sized deallocation | Chicago |
Library Working group Issues Status
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 1214 | Insufficient/inconsistent key immutability requirements for associative containers | Kona | Complete |
| 2009 | Reporting out-of-bound values on numeric string conversions | Kona | Complete |
| 2010 | is_* traits for binding operations can't be meaningfully specialized | Kona | Complete |
| 2015 | Incorrect pre-conditions for some type traits | Kona | Complete |
| 2021 | Further incorrect usages of result_of | Kona | Complete |
| 2028 | messages_base::catalog overspecified | Kona | Complete |
| 2033 | Preconditions of reserve, shrink_to_fit, and resize functions | Kona | Complete |
| 2039 | Issues with std::reverse and std::copy_if | Kona | Complete |
| 2044 | No definition of "Stable" for copy algorithms | Kona | Complete |
| 2045 | forward_list::merge and forward_list::splice_after with unequal allocators | Kona | Complete |
| 2047 | Incorrect "mixed" move-assignment semantics of unique_ptr | Kona | Complete |
| 2050 | Unordered associative containers do not use allocator_traits to define member types | Kona | Complete |
| 2053 | Errors in regex bitmask types | Kona | Complete |
| 2061 | make_move_iterator and arrays | Kona | Complete |
| 2064 | More noexcept issues in basic_string | Kona | Complete |
| 2065 | Minimal allocator interface | Kona | Complete |
| 2067 | packaged_task should have deleted copy c'tor with const parameter | Kona | Complete |
| 2069 | Inconsistent exception spec for basic_string move constructor | Kona | Complete |
| 2096 | Incorrect constraints of future::get in regard to MoveAssignable | Kona | Complete |
| 2102 | Why is std::launch an implementation-defined type? | Kona | Complete |
| 2071 | std::valarray move-assignment | Portland | Complete |
| 2074 | Off by one error in std::reverse_copy | Portland | Complete |
| 2081 | Allocator requirements should include CopyConstructible 2083 const-qualification on weak_ptr::owner_before | Portland | Complete |
| 2083 | const-qualification on weak_ptr::owner_before | Portland | Complete |
| 2086 | Overly generic type support for math functions | Portland | Complete |
| 2099 | Unnecessary constraints of va_start() usage | Portland | Complete |
| 2103 | std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignment | Portland | Complete |
| 2105 | Inconsistent requirements on const_iterator's value_type | Portland | Complete |
| 2110 | remove can't swap but note says it might | Portland | Complete |
| 2123 | merge() allocator requirements for lists versus forward lists | Portland | Complete |
| 2005 | unordered_map::insert(T&&) protection should apply to map too | Portland | Complete |
| 2011 | Unexpected output required of strings | Portland | Complete |
| 2048 | Unnecessary mem_fn overloads | Portland | Complete |
| 2049 | is_destructible is underspecified | Portland | Complete |
| 2056 | future_errc enums start with value 0 (invalid value for broken_promise) | Portland | Complete |
| 2058 | valarray and begin/end | Portland | Complete |
| 2091 | Misplaced effect in m.try_lock_for() | Bristol | Complete |
| 2092 | Vague Wording for condition_variable_any | Bristol | Complete |
| 2093 | Throws clause of condition_variable::wait with predicate | Bristol | Complete |
| 2094 | duration conversion overflow shouldn't participate in overload resolution | Bristol | Complete |
| 2122 | merge() stability for lists versus forward lists | Bristol | Complete |
| 2128 | Absence of global functions cbegin/cend | Bristol | Complete |
| 2145 | error_category default constructor | Bristol | Complete |
| 2147 | Unclear hint type in Allocator's allocate function | Bristol | Complete |
| 2148 | Hashing enums should be supported directly by std::hash | Bristol | Complete |
| 2149 | Concerns about 20.8/5 | Bristol | Complete |
| 2162 | allocator_traits::max_size missing noexcept | Bristol | Complete |
| 2163 | nth_element requires inconsistent post-conditions | Bristol | Complete |
| 2169 | Missing reset() requirements in unique_ptr specialization | Bristol | Complete |
| 2172 | Does atomic_compare_exchange_* accept v == nullptr arguments? | Bristol | Complete |
| 2080 | Specify when once_flag becomes invalid | Bristol | Complete |
| 2098 | promise throws clauses | Bristol | Complete |
| 2109 | Incorrect requirements for hash specializations | Bristol | Complete |
| 2130 | missing ordering constraints for fences | Bristol | Complete |
| 2138 | atomic_flag::clear ordering constraints | Bristol | Complete |
| 2140 | notify_all_at_thread_exit synchronization | Bristol | Complete |
| 2144 | Missing noexcept specification in type_index | Bristol | Complete |
| 2174 | wstring_convert::converted() should be noexcept | Bristol | Complete |
| 2175 | string_convert and wbuffer_convert validity | Bristol | Complete |
| 2176 | Special members for wstring_convert and wbuffer_convert | Bristol | Complete |
| 2177 | Requirements on Copy/MoveInsertable | Bristol | Complete |
| 2185 | Missing throws clause for future/shared_future::wait_for/wait_until | Bristol | Complete |
| 2187 | vector<bool> is missing emplace and emplace_back member functions | Bristol | Complete |
| 2190 | ordering of condition variable operations, reflects Posix discussion | Bristol | Complete |
| 2196 | Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types | Bristol | Complete |
| 2197 | Specification of is_[un]signed unclear for non-arithmetic types | Bristol | Complete |
| 2200 | Data race avoidance for all containers, not only for sequences | Bristol | Complete |
| 2203 | scoped_allocator_adaptor uses wrong argument types for piecewise construction | Bristol | Complete |
| 2207 | basic_string::at should not have a Requires clause | Bristol | Complete |
| 2209 | assign() overspecified for sequence containers | Bristol | Complete |
| 2210 | Missing allocator-extended constructor for allocator-aware containers | Bristol | Complete |
| 2211 | Replace ambiguous use of "Allocator" in container requirements | Bristol | Complete |
| 2222 | Inconsistency in description of forward_list::splice_after single-element overload | Bristol | Complete |
| 2225 | Unrealistic header inclusion checks required | Bristol | Complete |
| 2229 | Standard code conversion facets underspecified | Bristol | Complete |
| 2231 | DR 704 removes complexity guarantee for clear() | Bristol | Complete |
| 2235 | Undefined behavior without proper requirements on basic_string constructors | Bristol | Complete |
| 2141 | common_type trait produces reference types | Chicago | Complete |
| 2235 | Undefined behavior without proper requirements on basic_string constructors | Chicago | Complete |
| 2246 | unique_ptr assignment effects w.r.t. deleter | Chicago | Complete |
| 2247 | Type traits and std::nullptr_t | Chicago | Complete |
| 2085 | Wrong description of effect 1 of basic_istream::ignore | Chicago | Complete |
| 2087 | iostream_category() and noexcept | Chicago | Complete |
| 2143 | ios_base::xalloc should be thread-safe | Chicago | Complete |
| 2150 | Unclear specification of find_end | Chicago | Complete |
| 2180 | Exceptions from std::seed_seq operations | Chicago | Complete |
| 2194 | Impossible container requirements for adaptor types | Chicago | Complete |
| 2013 | Do library implementers have the freedom to add constexpr? | Chicago | Complete |
| 2018 | regex_traits::isctype Returns clause is wrong | Chicago | Complete |
| 2078 | Throw specification of async() incomplete | Chicago | Complete |
| 2097 | packaged_task constructors should be constrained | Chicago | Complete |
| 2100 | Timed waiting functions cannot timeout if launch::async policy used | Chicago | Complete |
| 2120 | What should async do if neither 'async' nor 'deferred' is set in policy? | Chicago | Complete |
| 2159 | atomic_flag initialization | Chicago | Complete |
| 2275 | Why is forward_as_tuple not constexpr? | Chicago | Complete |
| 2284 | Inconsistency in allocator_traits::max_size | Chicago | Complete |
| 2298 | is_nothrow_constructible is always false because of create<> | Chicago | Complete |
| 2300 | Redundant sections for map and multimap members should be removed | Chicago | Complete |
| National Body comment 'GB 9' | Remove gets from C++14 | Chicago | Complete |
Last Updated: 22-Oct-2013