libc++ C++1z Status
In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, known here as "C++1z" (probably to be C++17)
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:
- LWG - Library working group
- CWG - Core Language Working group
- SG1 - Study group #1 (Concurrency working group)
Paper Status
| Paper # | Group | Paper Name | Meeting | Status | First released version |
|---|---|---|---|---|---|
| N3911 | LWG | TransformationTrait Alias void_t. | Urbana | Complete | 3.6 |
| N4089 | LWG | Safe conversions in unique_ptr<T[]>. | Urbana | ||
| N4169 | LWG | A proposal to add invoke function template | Urbana | Complete | 3.7 |
| N4190 | LWG | Removing auto_ptr, random_shuffle(), And Old | Urbana | ||
| N4258 | LWG | Cleaning-up noexcept in the Library. | Urbana | In progress | 3.7 |
| N4259 | CWG | Wording for std::uncaught_exceptions | Urbana | Complete | 3.7 |
| N4277 | LWG | TriviallyCopyable reference_wrapper. | Urbana | Complete | 3.2 |
| N4279 | LWG | Improved insertion interface for unique-key maps. | Urbana | Complete | 3.7 |
| N4280 | LWG | Non-member size() and more | Urbana | Complete | 3.6 |
| N4284 | LWG | Contiguous Iterators. | Urbana | Complete | 3.6 |
| N4285 | CWG | Cleanup for exception-specification and throw-expression. | Urbana | ||
| N4387 | LWG | improving pair and tuple | Lenexa | ||
| N4389 | LWG | bool_constant | Lenexa | Complete | 3.7 |
| N4508 | LWG | shared_mutex for C++17 | Lenexa | Complete | 3.7 |
| N4366 | LWG | LWG 2228 missing SFINAE rule | Lenexa | Complete | 3.1 |
| N4510 | LWG | Minimal incomplete type support for standard containers, revision 4 | Lenexa | Complete | 3.6 |
| P0004R1 | LWG | Remove Deprecated iostreams aliases. | Kona | Complete | 3.8 |
| P0006R0 | LWG | Adopt Type Traits Variable Templates for C++17. | Kona | Complete | 3.8 |
| P0092R1 | LWG | Polishing <chrono> | Kona | Complete | 3.8 |
| P0007R1 | LWG | Constant View: A proposal for a std::as_const helper function template. | Kona | Complete | 3.8 |
| P0156R0 | LWG | Variadic lock_guard(rev 3). | Kona | ||
| P0074R0 | LWG | Making std::owner_less more flexible | Kona | Complete | 3.8 |
| P0013R1 | LWG | Logical type traits rev 2 | Kona | Complete | 3.8 |
Library Working group Issues Status
| Issue # | Issue Name | Meeting | Status |
|---|---|---|---|
| 2016 | Allocators must be no-throw swappable | Urbana | |
| 2118 | unique_ptr for array does not support cv qualification conversion of actual argument | Urbana | Will be resolved by N4089 |
| 2170 | Aggregates cannot be DefaultConstructible | Urbana | Complete |
| 2308 | Clarify container destructor requirements w.r.t. std::array | Urbana | Complete |
| 2340 | Replacement allocation functions declared as inline | Urbana | Complete |
| 2354 | Unnecessary copying when inserting into maps with braced-init syntax | Urbana | |
| 2377 | std::align requirements overly strict | Urbana | Complete |
| 2396 | underlying_type doesn't say what to do for an incomplete enumeration type | Urbana | Complete |
| 2399 | shared_ptr's constructor from unique_ptr should be constrained | Urbana | Complete |
| 2400 | shared_ptr's get_deleter() should use addressof() | Urbana | Complete |
| 2401 | std::function needs more noexcept | Urbana | Complete |
| 2404 | mismatch()'s complexity needs to be updated | Urbana | Complete |
| 2408 | SFINAE-friendly common_type / iterator_traits is missing in C++14 | Urbana | common_type is waiting on LWG#2465 |
| 2106 | move_iterator wrapping iterators returning prvalues | Urbana | |
| 2129 | User specializations of std::initializer_list | Urbana | Complete |
| 2212 | tuple_size for const pair request | Urbana | Complete |
| 2217 | operator==(sub_match, string) slices on embedded '\0's | Urbana | Complete |
| 2230 | "see below" for initializer_list constructors of unordered containers | Urbana | Complete |
| 2233 | bad_function_call::what() unhelpful | Urbana | Complete |
| 2266 | vector and deque have incorrect insert requirements | Urbana | Complete |
| 2325 | minmax_element()'s behavior differing from max_element()'s should be noted | Urbana | Complete |
| 2361 | Apply 2299 resolution throughout library | Urbana | |
| 2365 | Missing noexcept in shared_ptr::shared_ptr(nullptr_t) | Urbana | Complete |
| 2376 | bad_weak_ptr::what() overspecified | Urbana | Complete |
| 2387 | More nested types that must be accessible and unambiguous | Urbana | Complete |
| 2059 | C++0x ambiguity problem with map::erase | Lenexa | Complete |
| 2063 | Contradictory requirements for string move assignment | Lenexa | Complete |
| 2076 | Bad CopyConstructible requirement in set constructors | Lenexa | Complete |
| 2160 | Unintended destruction ordering-specification of resize | Lenexa | Complete |
| 2168 | Inconsistent specification of uniform_real_distribution constructor | Lenexa | Complete |
| 2239 | min/max/minmax requirements | Lenexa | Complete |
| 2364 | deque and vector pop_back don't specify iterator invalidation requirements | Lenexa | Complete |
| 2369 | constexpr max(initializer_list) vs max_element | Lenexa | Complete |
| 2378 | Behaviour of standard exception types | Lenexa | Complete |
| 2403 | stof() should call strtof() and wcstof() | Lenexa | Complete |
| 2406 | negative_binomial_distribution should reject p == 1 | Lenexa | Complete |
| 2407 | packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit | Lenexa | Complete |
| 2411 | shared_ptr is only contextually convertible to bool | Lenexa | Complete |
| 2415 | Inconsistency between unique_ptr and shared_ptr | Lenexa | Complete |
| 2420 | function | Lenexa | Complete |
| 2425 | operator delete(void*, size_t) doesn't invalidate pointers sufficiently | Lenexa | Complete |
| 2427 | Container adaptors as sequence containers, redux | Lenexa | Complete |
| 2428 | "External declaration" used without being defined | Lenexa | Complete |
| 2433 | uninitialized_copy()/etc. should tolerate overloaded operator& | Lenexa | Complete |
| 2434 | shared_ptr::use_count() is efficient | Lenexa | Complete |
| 2437 | iterator_traits::reference can and can't be void | Lenexa | Complete |
| 2438 | std::iterator inheritance shouldn't be mandated | Lenexa | Complete |
| 2439 | unique_copy() sometimes can't fall back to reading its output | Lenexa | Complete |
| 2440 | seed_seq::size() should be noexcept | Lenexa | Complete |
| 2442 | call_once() shouldn't DECAY_COPY() | Lenexa | Complete |
| 2448 | Non-normative Container destructor specification | Lenexa | Complete |
| 2454 | Add raw_storage_iterator::base() member | Lenexa | Complete |
| 2455 | Allocator default construction should be allowed to throw | Lenexa | Complete |
| 2458 | N3778 and new library deallocation signatures | Lenexa | Complete |
| 2459 | std::polar should require a non-negative rho | Lenexa | Complete |
| 2464 | try_emplace and insert_or_assign misspecified | Lenexa | Complete |
| 2467 | is_always_equal has slightly inconsistent default | Lenexa | Complete |
| 2470 | Allocator's destroy function should be allowed to fail to instantiate | Lenexa | Complete |
| 2482 | [c.strings] Table 73 mentions nonexistent functions | Lenexa | Complete |
| 2488 | Placeholders should be allowed and encouraged to be constexpr | Lenexa | |
| 1169 | num_get not fully compatible with strto* | Kona | |
| 2072 | Unclear wording about capacity of temporary buffers | Kona | Complete |
| 2101 | Some transformation types can produce impossible types | Kona | |
| 2111 | Which unexpected/terminate handler is called from the exception handling runtime? | Kona | Complete |
| 2119 | Missing hash specializations for extended integer types | Kona | |
| 2127 | Move-construction with raw_storage_iterator | Kona | Complete |
| 2133 | Attitude to overloaded comma for iterators | Kona | Complete |
| 2156 | Unordered containers' reserve(n) reserves for n-1 elements | Kona | Complete |
| 2218 | Unclear how containers use allocator_traits::construct() | Kona | |
| 2219 | INVOKE-ing a pointer to member with a reference_wrapper as the object expression | Kona | |
| 2224 | Ambiguous status of access to non-live objects | Kona | Complete |
| 2234 | assert() should allow usage in constant expressions | Kona | Complete |
| 2244 | Issue on basic_istream::seekg | Kona | Complete |
| 2250 | Follow-up On Library Issue 2207 | Kona | |
| 2259 | Issues in 17.6.5.5 rules for member functions | Kona | Complete |
| 2273 | regex_match ambiguity | Kona | |
| 2336 | is_trivially_constructible/is_trivially_assignable traits are always false | Kona | |
| 2353 | std::next is over-constrained | Kona | Complete |
| 2367 | pair and tuple are not correctly implemented for is_constructible with no args | Kona | Complete |
| 2380 | May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? | Kona | Complete |
| 2384 | Allocator's deallocate function needs better specification | Kona | Complete |
| 2385 | function::assign allocator argument doesn't make sense | Kona | |
| 2435 | reference_wrapper::operator()'s Remark should be deleted | Kona | Complete |
| 2447 | Allocators and volatile-qualified value types | Kona | Complete |
| 2462 | std::ios_base::failure is overspecified | Kona | Complete |
| 2466 | allocator_traits::max_size() default behavior is incorrect | Kona | Complete |
| 2469 | Wrong specification of Requires clause of operator[] for map and unordered_map | Kona | |
| 2473 | basic_filebuf's relation to C FILE semantics | Kona | Complete |
| 2476 | scoped_allocator_adaptor is not assignable | Kona | Complete |
| 2477 | Inconsistency of wordings in std::vector::erase() and std::deque::erase() | Kona | Complete |
| 2483 | throw_with_nested() should use is_final | Kona | Complete |
| 2484 | rethrow_if_nested() is doubly unimplementable | Kona | Complete |
| 2485 | get() should be overloaded for const tuple&& | Kona | Completed |
| 2486 | mem_fn() should be required to use perfect forwarding | Kona | Complete |
| 2487 | bind() should be const-overloaded, not cv-overloaded | Kona | Complete |
| 2489 | mem_fn() should be noexcept | Kona | Complete |
| 2492 | Clarify requirements for comp | Kona | Complete |
| 2495 | There is no such thing as an Exception Safety element | Kona | Complete |
Last Updated: 5-Oct-2015