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:

Paper Status

Paper #GroupPaper NameMeetingStatusFirst released version
3346LWGTerminology for Container Element Requirements - Rev 1KonaComplete3.4
3421LWGMaking Operator Functors greater<>PortlandComplete3.4
3462LWGstd::result_of and SFINAEPortlandComplete3.4
3469LWGConstexpr Library Additions: chrono, v3PortlandComplete3.4
3470LWGConstexpr Library Additions: containers, v2PortlandComplete3.4
3471LWGConstexpr Library Additions: utilities, v3PortlandComplete3.4
3302LWGConstexpr Library Additions: complex, v2PortlandComplete3.4
3545LWGAn Incremental Improvement to integral_constantBristolComplete3.4
3644LWGNull Forward IteratorsBristolComplete3.4
3668LWGstd::exchange()BristolComplete3.4
3658LWGCompile-time integer sequencesBristolComplete3.4
3670LWGAddressing Tuples by TypeBristolComplete3.4
3671LWGMaking non-modifying sequence operations more robustBristolComplete3.4
3656LWGmake_uniqueBristolComplete3.4
3654LWGQuoted StringsBristolImplemented, but not checked in
3642LWGUser-defined LiteralsBristolComplete3.4
3655LWGTransformationTraits Redux (excluding part 4)BristolComplete3.4
3657LWGAdding heterogeneous comparison lookup to associative containersBristolComplete3.4
3672LWGA proposal to add a utility class to represent optional objectsBristol
3669LWGFixing constexpr member functions without constBristolComplete3.4
3662LWGC++ Dynamic Arrays (dynarray)Bristol
3659SG1Shared Locking in C++Bristol

Library Working group Issues Status

Issue #Issue NameMeetingStatus
1214Insufficient/inconsistent key immutability requirements for associative containersKona
2009Reporting out-of-bound values on numeric string conversionsKonaComplete
2010is_* traits for binding operations can't be meaningfully specializedKonaComplete
2015Incorrect pre-conditions for some type traitsKona
2021Further incorrect usages of result_ofKona
2028messages_base::catalog overspecifiedKona
2033Preconditions of reserve, shrink_to_fit, and resize functionsKona
2039Issues with std::reverse and std::copy_ifKonaComplete
2044No definition of "Stable" for copy algorithmsKonaComplete
2045forward_list::merge and forward_list::splice_after with unequal allocatorsKona
2047Incorrect "mixed" move-assignment semantics of unique_ptrKona
2050Unordered associative containers do not use allocator_traits to define member typesKona
2053Errors in regex bitmask typesKona
2061make_move_iterator and arraysKona
2064More noexcept issues in basic_stringKona
2065Minimal allocator interfaceKona
2067packaged_task should have deleted copy c'tor with const parameterKonaComplete
2069Inconsistent exception spec for basic_string move constructorKona
2096Incorrect constraints of future::get in regard toKona
2102Why is std::launch an implementation-defined type?Kona
2071std::valarray move-assignmentPortland
2074Off by one error in std::reverse_copyPortlandComplete
2081Allocator requirements should include CopyConstructible 2083 const-qualification on weak_ptr::owner_beforePortland
2083const-qualification on weak_ptr::owner_beforePortland
2086Overly generic type support for math functionsPortland
2099Unnecessary constraints of va_start() usagePortland
2103std::allocator_traits<std::allocator<T>>::propagate_on_container_move_assignmentPortland
2105Inconsistent requirements on const_iterator's value_typePortland
2110remove can't swap but note says it mightPortlandComplete
2123merge() allocator requirements for lists versus forward listsPortlandComplete
2005unordered_map::insert(T&&) protection should apply to map tooPortland
2011Unexpected output required of stringsPortland
2048Unnecessary mem_fn overloadsPortland
2049is_destructible is underspecifiedPortland
2056future_errc enums start with value 0 (invalid value for broken_promise)Portland
2058valarray and begin/endPortland
2091Misplaced effect in m.try_lock_for()Bristol
2092Vague Wording for condition_variable_anyBristol
2093Throws clause of condition_variable::wait with predicateBristol
2094duration conversion overflow shouldn't participate in overload resolutionBristol
2122merge() stability for lists versus forward listsBristol
2128Absence of global functions cbegin/cendBristol
2145error_category default constructorBristol
2147Unclear hint type in Allocator's allocate functionBristol
2148Hashing enums should be supported directly by std::hashBristol
2149Concerns about 20.8/5Bristol
2162allocator_traits::max_size missing noexceptBristol
2163nth_element requires inconsistent post-conditionsBristol
2169Missing reset() requirements in unique_ptr specializationBristol
2172Does atomic_compare_exchange_* accept v == nullptr arguments?Bristol
2080Specify when once_flag becomes invalidBristol
2098promise throws clausesBristol
2109Incorrect requirements for hash specializationsBristol
2130missing ordering constraints for fencesBristol
2138atomic_flag::clear ordering constraintsBristol
2140notify_all_at_thread_exit synchronizationBristol
2144Missing noexcept specification in type_indexBristol
2174wstring_convert::converted() should be noexceptBristol
2175string_convert and wbuffer_convert validityBristol
2176Special members for wstring_convert and wbuffer_convertBristol
2177Requirements on Copy/MoveInsertableBristol
2185Missing throws clause for future/shared_future::wait_for/wait_untilBristol
2187vector<bool> is missing emplace and emplace_back member functionsBristolComplete
2190ordering of condition variable operations, reflects Posix discussionBristol
2196Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable typesBristol
2197Specification of is_[un]signed unclear for non-arithmetic typesBristolComplete
2200Data race avoidance for all containers, not only for sequencesBristol
2203scoped_allocator_adaptor uses wrong argument types for piecewise constructionBristol
2207basic_string::at should not have a Requires clauseBristol
2209assign() overspecified for sequence containersBristol
2210Missing allocator-extended constructor for allocator-aware containersBristol
2211Replace ambiguous use of "Allocator" in container requirementsBristol
2222Inconsistency in description of forward_list::splice_after single-element overloadBristol
2225Unrealistic header inclusion checks requiredBristolComplete
2229Standard code conversion facets underspecifiedBristol
2231DR 704 removes complexity guarantee for clear()BristolComplete
2235Undefined behavior without proper requirements on basic_string constructorsBristol

Last Updated: 13-Aug-2013