# 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 |  |
N4190 | LWG | Removing auto_ptr, random_shuffle(), And Old <functional> Stuff. | Urbana |  |
N4258 | LWG | Cleaning-up noexcept in the Library. | Urbana |  |
N4277 | LWG | TriviallyCopyable `reference_wrapper`. | Urbana | Complete | 3.2
N4279 | LWG | Improved insertion interface for unique-key maps. | Urbana |  |
N4280 | LWG | Non-member size() and more | Urbana | Complete | 3.6
N4284 | LWG | Contiguous Iterators. | Urbana |  |

### 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 |
2308 | Clarify container destructor requirements w.r.t. `std::array` | Urbana | Will be resolved by N4258
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 |
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 |
2106 | `move_iterator` wrapping iterators returning prvalues | Urbana |
2129 | User specializations of `std::initializer_list` | Urbana | Complete
2212 | `tuple_size` for `const pair` request <tuple> header | 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 |
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 |

Last Updated: 18-Nov-2014