libc++ C++17 Status¶
Overview¶
In November 2014, the C++ standard committee created a draft for the next version of the C++ standard, initially known as “C++1z”. In February 2017, the C++ standard committee approved this draft, and sent it to ISO for approval as 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:
CWG - Core Language Working group
LWG - Library working group
SG1 - Study group #1 (Concurrency working group)
Note
“Nothing to do” means that no library changes were needed to implement this change.
Paper Status¶
Paper # |
Paper Name |
Meeting |
Status |
First released version |
Notes |
---|---|---|---|---|---|
TransformationTrait Alias |
2014-11 (Urbana) |
Complete |
3.6 |
||
Safe conversions in |
2014-11 (Urbana) |
Complete |
5 |
||
A proposal to add invoke function template |
2014-11 (Urbana) |
Complete |
3.7 |
||
Removing auto_ptr, random_shuffle(), And Old <functional> Stuff. |
2014-11 (Urbana) |
Complete |
15 |
||
Cleaning-up noexcept in the Library. |
2014-11 (Urbana) |
In Progress |
3.7 |
||
Wording for std::uncaught_exceptions |
2014-11 (Urbana) |
Complete |
3.7 |
|
|
TriviallyCopyable |
2014-11 (Urbana) |
Complete |
3.2 |
||
Improved insertion interface for unique-key maps. |
2014-11 (Urbana) |
Complete |
3.7 |
||
Non-member size() and more |
2014-11 (Urbana) |
Complete |
3.6 |
||
Contiguous Iterators. |
2014-11 (Urbana) |
Complete |
3.6 |
||
Cleanup for exception-specification and throw-expression. |
2014-11 (Urbana) |
Complete |
4 |
||
improving pair and tuple |
2015-05 (Lenexa) |
Complete |
4 |
||
bool_constant |
2015-05 (Lenexa) |
Complete |
3.7 |
||
shared_mutex for C++17 |
2015-05 (Lenexa) |
Complete |
3.7 |
||
LWG 2228 missing SFINAE rule |
2015-05 (Lenexa) |
Complete |
3.1 |
||
Minimal incomplete type support for standard containers, revision 4 |
2015-05 (Lenexa) |
Complete |
3.6 |
||
Remove Deprecated iostreams aliases. |
2015-10 (Kona) |
Complete |
3.8 |
||
Adopt Type Traits Variable Templates for C++17. |
2015-10 (Kona) |
Complete |
3.8 |
||
Polishing <chrono> |
2015-10 (Kona) |
Complete |
3.8 |
||
Constant View: A proposal for a |
2015-10 (Kona) |
Complete |
3.8 |
||
Variadic lock_guard(rev 3). |
2015-10 (Kona) |
Nothing To Do |
Pulled at the 2017-01 meeting in Kona |
||
Making |
2015-10 (Kona) |
Complete |
3.8 |
||
Logical type traits rev 2 |
2015-10 (Kona) |
Complete |
3.8 |
||
The Parallelism TS Should be Standardized |
2016-02 (Jacksonville) |
Partial |
|||
Mathematical Special Functions for C++17 |
2016-02 (Jacksonville) |
In Progress |
Progress is tracked here |
||
Adopt Library Fundamentals V1 TS Components for C++17 |
2016-02 (Jacksonville) |
Complete |
16 |
||
Adopt the File System TS for C++17 |
2016-02 (Jacksonville) |
Complete |
7 |
||
Re-enabling shared_from_this |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
Adopt not_fn from Library Fundamentals 2 for C++17 |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
constexpr |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
Adding [nothrow-]swappable traits |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
Fixing a design mistake in the searchers interface |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
An algorithm to “clamp” a value between a pair of boundary values |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
constexpr std::hardware_{constructive,destructive}_interference_size |
2016-02 (Jacksonville) |
Complete |
19 |
The required macros are only implemented as of LLVM 19. |
|
Proposal to Introduce a 3-Argument Overload to std::hypot |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access |
2016-02 (Jacksonville) |
Complete |
4 |
||
Give |
2016-02 (Jacksonville) |
Complete |
3.9 |
||
|
2016-02 (Jacksonville) |
Complete |
3.9 |
||
Homogeneous interface for variant, any and optional |
2016-06 (Oulu) |
Complete |
4 |
||
Extending memory management tools |
2016-06 (Oulu) |
Complete |
4 |
||
C++17 should refer to C11 instead of C99 |
2016-06 (Oulu) |
Complete |
7 |
||
Elementary string conversions |
2016-06 (Oulu) |
Nothing To Do |
n/a |
Resolved by P0067R5 |
|
Splicing Maps and Sets |
2016-06 (Oulu) |
Complete |
8 |
||
Emplace Return Type |
2016-06 (Oulu) |
Complete |
4 |
||
Variant: a type-safe union for C++17 |
2016-06 (Oulu) |
Complete |
4 |
||
Core Issue 1776: Replacement of class objects containing reference members |
2016-06 (Oulu) |
Complete |
6 |
||
shared_ptr::weak_type |
2016-06 (Oulu) |
Complete |
3.9 |
||
Deprecating Vestigial Library Parts in C++17 |
2016-06 (Oulu) |
Complete |
15 |
||
Synopses for the C library |
2016-06 (Oulu) |
Nothing To Do |
n/a |
||
Reserve a New Library Namespace for Future Standardization |
2016-06 (Oulu) |
Nothing To Do |
n/a |
||
Ordered by Default |
2016-06 (Oulu) |
Nothing To Do |
n/a |
Pulled at the 2017-01 meeting in Kona |
|
make_from_tuple: apply for construction |
2016-06 (Oulu) |
Complete |
3.9 |
||
Relative Paths for Filesystem |
2016-06 (Oulu) |
Complete |
7 |
||
Integrating std::string_view and std::string |
2016-06 (Oulu) |
Complete |
4 |
||
has_unique_object_representations |
2016-06 (Oulu) |
Complete |
6 |
||
Adopt Selected Library Fundamentals V2 Components for C++17 |
2016-06 (Oulu) |
Complete |
4 |
||
Removing Allocator Support in std::function |
2016-06 (Oulu) |
Complete |
4 |
||
Making Optional Greater Equal Again |
2016-06 (Oulu) |
Complete |
4 |
||
Better Names for Parallel Execution Policies in C++17 |
2016-06 (Oulu) |
Complete |
17 |
||
Delete |
2016-06 (Oulu) |
Complete |
3.9 |
||
A <random> Nomenclature Tweak |
2016-06 (Oulu) |
Complete |
3.9 |
||
Fixes for not_fn |
2016-06 (Oulu) |
Complete |
3.9 |
||
Temporarily discourage memory_order_consume |
2016-06 (Oulu) |
Nothing To Do |
n/a |
||
Adapting string_view by filesystem paths |
2016-06 (Oulu) |
Complete |
4 |
||
Making Variant Greater Equal |
2016-06 (Oulu) |
Complete |
4 |
||
Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling |
2016-06 (Oulu) |
Complete |
17 |
||
Removing Deprecated Exception Specifications from C++17 |
2016-11 (Issaquah) |
Complete |
5 |
||
Elementary string conversions, revision 5 |
2016-11 (Issaquah) |
Partial |
For integer types, |
||
Literal suffixes for |
2016-11 (Issaquah) |
Complete |
4 |
||
Merging shared_ptr changes from Library Fundamentals to C++17 |
2016-11 (Issaquah) |
Complete |
11 |
||
Fail or succeed: there is no atomic lattice |
2016-11 (Issaquah) |
||||
Constexpr for |
2016-11 (Issaquah) |
Complete |
4 |
||
Resolving LWG Issues re |
2016-11 (Issaquah) |
Complete |
4 |
||
Throwing out of a parallel algorithm terminates - but how? |
2016-11 (Issaquah) |
||||
Correcting library usage of “literal type” |
2016-11 (Issaquah) |
Complete |
4 |
||
Revisiting in-place tag types for any/optional/variant |
2016-11 (Issaquah) |
Complete |
4 |
||
Wording for GB 50 - constexpr for chrono |
2016-11 (Issaquah) |
Complete |
4 |
||
Wording for GB 58 - structured bindings for node_handles |
2016-11 (Issaquah) |
Complete |
7 |
||
Updating “Restrictions on exception handling” |
2016-11 (Issaquah) |
Nothing To Do |
n/a |
||
Disallowing references, incomplete types, arrays, and empty variants |
2016-11 (Issaquah) |
Complete |
4 |
||
Poisoning the Hash |
2016-11 (Issaquah) |
Complete |
5 |
||
Clarify That shared_future’s Copy Operations have Wide Contracts |
2016-11 (Issaquah) |
Complete |
4 |
||
Make future_error Constructible |
2016-11 (Issaquah) |
Complete |
4 |
||
Proposed Resolution for CA 14 (shared_ptr use_count/unique) |
2016-11 (Issaquah) |
Complete |
18 |
||
Variadic Lock guard(rev 5) |
2017-02 (Kona) |
Complete |
5 |
||
Removing C dependencies from signal handler wording |
2017-02 (Kona) |
Nothing To Do |
|||
A byte type definition |
2017-02 (Kona) |
Complete |
5 |
||
Directory Entry Caching for Filesystem |
2017-02 (Kona) |
Complete |
7 |
||
File system library on non-POSIX-like operating systems |
2017-02 (Kona) |
Complete |
7 |
||
Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library |
2017-02 (Kona) |
Complete |
14 |
||
Unifying <numeric> Parallel Algorithms |
2017-02 (Kona) |
Partial |
The changes to |
||
Iterator Concerns for Parallel Algorithms |
2017-02 (Kona) |
Partial |
|||
Proposed Resolution of C++17 National Body Comments for Filesystems |
2017-02 (Kona) |
Complete |
7 |
||
Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 |
2017-02 (Kona) |
Nothing To Do |
|||
Wording for CH 10: Complexity of parallel algorithms |
2017-02 (Kona) |
Nothing To Do |
|||
common_type and duration |
2017-02 (Kona) |
Complete |
5 |
||
Resolving atomic<T> named base class inconsistencies |
2017-02 (Kona) |
Complete |
|||
Algorithm Complexity Constraints and Parallel Overloads |
2017-02 (Kona) |
Nothing To Do |
|||
noexcept for hash functions |
2017-02 (Kona) |
Complete |
5 |
||
Resolving GB 55, US 84, US 85, US 86 |
2017-02 (Kona) |
Complete |
|||
Inline Variables for the Standard Library |
2017-02 (Kona) |
In Progress |
6 |
The parts of P0607 that are not done are the |
|
Deprecating <codecvt> |
2017-02 (Kona) |
Complete |
15 |
||
Final C++17 Parallel Algorithms Fixes |
2017-02 (Kona) |
Nothing To Do |
|||
Repairing elementary string conversions |
2017-07 (Toronto) |
||||
Some improvements to class template argument deduction integration into the standard library |
2017-07 (Toronto) |
Complete |
5 |
Library Working Group Issues Status¶
Issue # |
Issue Name |
Meeting |
Status |
First released version |
Notes |
---|---|---|---|---|---|
Allocators must be no-throw swappable |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
Aggregates cannot be |
2014-11 (Urbana) |
Complete |
|||
Replacement allocation functions declared as inline |
2014-11 (Urbana) |
Complete |
|||
Unnecessary copying when inserting into maps with braced-init syntax |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
SFINAE-friendly |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
User specializations of |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
“see below” for |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
Apply 2299 resolution throughout library |
2014-11 (Urbana) |
Complete |
|||
Missing noexcept in |
2014-11 (Urbana) |
Complete |
|||
|
2014-11 (Urbana) |
Complete |
|||
More nested types that must be accessible and unambiguous |
2014-11 (Urbana) |
Complete |
|||
C++0x ambiguity problem with map::erase |
2015-05 (Lenexa) |
Complete |
|||
Contradictory requirements for string move assignment |
2015-05 (Lenexa) |
Complete |
|||
Bad CopyConstructible requirement in set constructors |
2015-05 (Lenexa) |
Complete |
|||
Unintended destruction ordering-specification of resize |
2015-05 (Lenexa) |
Complete |
|||
Inconsistent specification of uniform_real_distribution constructor |
2015-05 (Lenexa) |
Complete |
|||
min/max/minmax requirements |
2015-05 (Lenexa) |
Complete |
|||
deque and vector pop_back don’t specify iterator invalidation requirements |
2015-05 (Lenexa) |
Complete |
|||
constexpr max(initializer_list) vs max_element |
2015-05 (Lenexa) |
Complete |
|||
Behaviour of standard exception types |
2015-05 (Lenexa) |
Complete |
|||
stof() should call strtof() and wcstof() |
2015-05 (Lenexa) |
Complete |
|||
negative_binomial_distribution should reject p == 1 |
2015-05 (Lenexa) |
Complete |
|||
packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit |
2015-05 (Lenexa) |
Complete |
|||
shared_ptr is only contextually convertible to bool |
2015-05 (Lenexa) |
Complete |
|||
Inconsistency between unique_ptr and shared_ptr |
2015-05 (Lenexa) |
Complete |
|||
function<void(ArgTypes…)> does not discard the return value of the target object |
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
Container adaptors as sequence containers, redux |
2015-05 (Lenexa) |
Complete |
|||
“External declaration” used without being defined |
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
Non-normative Container destructor specification |
2015-05 (Lenexa) |
Complete |
|||
Add |
2015-05 (Lenexa) |
Complete |
|||
Allocator default construction should be allowed to throw |
2015-05 (Lenexa) |
Complete |
|||
N3778 and new library deallocation signatures |
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
|
2015-05 (Lenexa) |
Complete |
|||
Allocator’s destroy function should be allowed to fail to instantiate |
2015-05 (Lenexa) |
Complete |
|||
[c.strings] Table 73 mentions nonexistent functions |
2015-05 (Lenexa) |
Complete |
|||
Placeholders should be allowed and encouraged to be constexpr |
2015-05 (Lenexa) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Unclear wording about capacity of temporary buffers |
2015-10 (Kona) |
Complete |
|||
Some transformation types can produce impossible types |
2015-10 (Kona) |
Complete |
|||
Which |
2015-10 (Kona) |
Complete |
|||
Missing |
2015-10 (Kona) |
Complete |
|||
Move-construction with |
2015-10 (Kona) |
Complete |
|||
Attitude to overloaded comma for iterators |
2015-10 (Kona) |
Complete |
|||
Unordered containers’ |
2015-10 (Kona) |
Complete |
|||
Unclear how containers use |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Ambiguous status of access to non-live objects |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Issue on |
2015-10 (Kona) |
Complete |
|||
Follow-up On Library Issue 2207 |
2015-10 (Kona) |
Complete |
|||
Issues in 17.6.5.5 rules for member functions |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
May |
2015-10 (Kona) |
Complete |
|||
Allocator’s |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Allocators and |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Wrong specification of Requires clause of |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Inconsistency of wordings in |
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
|
2015-10 (Kona) |
Complete |
|||
Clarify requirements for |
2015-10 (Kona) |
Complete |
|||
There is no such thing as an Exception Safety element |
2015-10 (Kona) |
Complete |
|||
Validity and return type of |
2016-02 (Jacksonville) |
Complete |
|||
Missing requirement on |
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
N4089 broke initializing |
2016-02 (Jacksonville) |
Complete |
|||
[fund.ts.v2] Contradiction in |
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
Constructors for |
2016-02 (Jacksonville) |
Complete |
|||
[fund.ts.v2] |
2016-02 (Jacksonville) |
||||
Simplify wording for |
2016-02 (Jacksonville) |
Complete |
|||
Logical operator traits are broken in the zero-argument case |
2016-02 (Jacksonville) |
Complete |
|||
[fund.ts.v2] Logical operator traits are broken in the zero-argument case |
2016-02 (Jacksonville) |
Complete |
|||
Error in LWG 2234’s resolution |
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
Requirements on the first template parameter of container adaptors |
2016-02 (Jacksonville) |
Complete |
|||
§[map.modifiers]/2 imposes nonsensical requirement on |
2016-02 (Jacksonville) |
Complete |
|||
The remarks for |
2016-02 (Jacksonville) |
Complete |
|||
[fund.ts.v2] |
2016-02 (Jacksonville) |
Complete |
|||
[fund.ts.v2] |
2016-02 (Jacksonville) |
||||
|
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
Inconsistency wrt Allocators in |
2016-02 (Jacksonville) |
Complete |
|||
Specialization of |
2016-02 (Jacksonville) |
Complete |
|||
§[res.on.functions]/2’s prohibition against incomplete types shouldn’t apply to type traits |
2016-02 (Jacksonville) |
Complete |
|||
There is no way to supply an allocator for |
2016-02 (Jacksonville) |
Complete |
|||
|
2016-02 (Jacksonville) |
Complete |
|||
Wrong value category used in |
2016-02 (Jacksonville) |
Complete |
|||
Aggregate initialization for |
2016-02 (Jacksonville) |
Complete |
|||
Exceptions from seed sequence operations |
2016-06 (Oulu) |
Complete |
|||
mutex::lock() should not throw device_or_resource_busy |
2016-06 (Oulu) |
Complete |
|||
Public exposition only member in std::array |
2016-06 (Oulu) |
Complete |
|||
tuple’s constructor constraints need to be phrased more precisely |
2016-06 (Oulu) |
Complete |
|||
Rvalue stream extraction should use perfect forwarding |
2016-06 (Oulu) |
Complete |
|||
std::function’s Callable definition is broken |
2016-06 (Oulu) |
Complete |
|||
|
2016-06 (Oulu) |
Complete |
|||
Issue about compare_exchange |
2016-06 (Oulu) |
Complete |
|||
Comparators for associative containers should always be CopyConstructible |
2016-06 (Oulu) |
Complete |
|||
Exact-width atomic typedefs should be provided |
2016-06 (Oulu) |
Complete |
|||
[fund.ts.v2] optional should ‘forward’ T’s implicit conversions |
2016-06 (Oulu) |
Nothing To Do |
|||
[fund.ts.v2] any_cast doesn’t work with rvalue reference targets and cannot move with a value target |
2016-06 (Oulu) |
Complete |
|||
[fund.ts.v2] Public “exposition only” members in observer_ptr |
2016-06 (Oulu) |
Complete |
18 |
||
Missing const requirements for associative containers |
2016-06 (Oulu) |
||||
Tuple EXPLICIT constructor templates that take tuple parameters end up taking references to temporaries and will create dangling references |
2016-06 (Oulu) |
Complete |
|||
Wording of unordered container’s clear() method complexity |
2016-06 (Oulu) |
Complete |
|||
[fund.ts.v2] “Exception safety” cleanup in library fundamentals required |
2016-06 (Oulu) |
Complete |
|||
[fund.ts.v2] No handling for over-aligned types in optional |
2016-06 (Oulu) |
Complete |
|||
[fund.ts.v2] std::hash<std::experimental::shared_ptr> does not work for arrays |
2016-06 (Oulu) |
||||
vector::data() should use addressof |
2016-06 (Oulu) |
Complete |
|||
path::root_directory() description is confusing |
2016-06 (Oulu) |
Complete |
|||
recursive_directory_iterator effects refers to non-existent functions |
2016-06 (Oulu) |
Complete |
|||
system_complete refers to undefined variable ‘base’ |
2016-06 (Oulu) |
Complete |
|||
Errors in Copy |
2016-06 (Oulu) |
Complete |
|||
status() effects cannot be implemented as specified |
2016-06 (Oulu) |
Complete |
|||
Bidirectional iterator requirement on path::iterator is very expensive |
2016-06 (Oulu) |
Complete |
|||
filesystem::copy() says “no effects” |
2016-06 (Oulu) |
Complete |
|||
priority_queue lacking comparator typedef |
2016-06 (Oulu) |
Complete |
|||
shared_ptr deleters must not throw on move construction |
2016-06 (Oulu) |
Complete |
|||
{inclusive,exclusive}_scan misspecified |
2016-06 (Oulu) |
||||
clamp misses preconditions and has extraneous condition on result |
2016-06 (Oulu) |
Complete |
|||
Parallel versions of std::copy and std::move shouldn’t be in order |
2016-06 (Oulu) |
Nothing To Do |
|||
Effect of assign() on iterators/pointers/references |
2016-06 (Oulu) |
Complete |
|||
recursive_directory_iterator’s members should require ‘ |
2016-06 (Oulu) |
Complete |
|||
Error reporting for recursive_directory_iterator::pop() is under-specified |
2016-06 (Oulu) |
Complete |
|||
path construction and assignment should have “string_type&&” overloads |
2016-06 (Oulu) |
Complete |
|||
offsetof is unnecessarily imprecise |
2016-06 (Oulu) |
||||
“Effects: Equivalent to …” doesn’t count “Synchronization:” as determined semantics |
2016-06 (Oulu) |
Complete |
|||
path is convertible from approximately everything under the sun |
2016-06 (Oulu) |
Complete |
|||
Specification of shuffle and sample disallows lvalue URNGs |
2016-06 (Oulu) |
Complete |
|||
Parallelism bug in [algorithms.parallel.exec] p2 |
2016-06 (Oulu) |
||||
permissions function should not be noexcept due to narrow contract |
2016-06 (Oulu) |
Complete |
|||
permissions function incorrectly specified for symlinks |
2016-06 (Oulu) |
Complete |
|||
remove_all has incorrect post conditions |
2016-06 (Oulu) |
Complete |
|||
Do directory_iterator and recursive_directory_iterator become the end iterator upon error? |
2016-06 (Oulu) |
Complete |
|||
The protected virtual member functions of memory_resource should be private |
2016-06 (Oulu) |
Complete |
16 |
||
filesystem::exists(const path&, error_code&) error reporting |
2016-06 (Oulu) |
Complete |
|||
|
2016-06 (Oulu) |
Complete |
|||
Parallel algorithms with constexpr specifier |
2016-06 (Oulu) |
||||
status(p).permissions() and symlink_status(p).permissions() are not specified |
2016-06 (Oulu) |
Complete |
|||
Effect contradictions w/o no-throw guarantee of std::function swaps |
2016-11 (Issaquah) |
Complete |
|||
Heap property underspecified? |
2016-11 (Issaquah) |
||||
No formatted output operator for nullptr |
2016-11 (Issaquah) |
Complete |
|||
shrink_to_fit effect on iterator validity |
2016-11 (Issaquah) |
Complete |
|||
Are containers required to use their ‘pointer’ type internally? |
2016-11 (Issaquah) |
||||
locale::name specification unclear - what is implementation-defined? |
2016-11 (Issaquah) |
Complete |
|||
LWG issue 2408 and value categories |
2016-11 (Issaquah) |
Complete |
|||
Self-move-assignment of library types |
2016-11 (Issaquah) |
||||
Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs |
2016-11 (Issaquah) |
Complete |
|||
multiline option should be added to syntax_option_type |
2016-11 (Issaquah) |
Complete |
|||
Tag types should not be DefaultConstructible |
2016-11 (Issaquah) |
Complete |
|||
Type traits must not be final |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] Non-member swap for propagate_const should call member swap |
2016-11 (Issaquah) |
Complete |
|||
Iterator operator-= has gratuitous undefined behaviour |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] weak_ptr’s converting move constructor should be modified as well for array support |
2016-11 (Issaquah) |
||||
[fund.ts.v2] get_memory_resource should be const and noexcept |
2016-11 (Issaquah) |
||||
[fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default |
2016-11 (Issaquah) |
||||
future::get should explicitly state that the shared state is released |
2016-11 (Issaquah) |
Nothing To Do |
|||
Constrain rvalue stream operators |
2016-11 (Issaquah) |
Complete |
|||
What should <complex.h> do? |
2016-11 (Issaquah) |
Complete |
|||
unordered_multimap::insert hint iterator |
2016-11 (Issaquah) |
Complete |
|||
LWG 2148 (hash support for enum types) seems under-specified |
2016-11 (Issaquah) |
Complete |
|||
|
2016-11 (Issaquah) |
Complete |
|||
Wide contract for future::share() |
2016-11 (Issaquah) |
Complete |
|||
Consistent total ordering of pointers by comparison functors |
2016-11 (Issaquah) |
||||
Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits |
2016-11 (Issaquah) |
Complete |
15 |
||
conjunction and disjunction requirements are too strict |
2016-11 (Issaquah) |
Complete |
15 |
||
[fund.ts.v2] conjunction and disjunction requirements are too strict |
2016-11 (Issaquah) |
||||
Iterator requirements should reference iterator traits |
2016-11 (Issaquah) |
Complete |
|||
<regex> ECMAScript IdentityEscape is ambiguous |
2016-11 (Issaquah) |
||||
“Convertible to bool” requirement in conjunction and disjunction |
2016-11 (Issaquah) |
Nothing To Do |
Resolved by LWG2567 |
||
[fund.ts.v2] “Convertible to bool” requirement in conjunction and disjunction |
2016-11 (Issaquah) |
Nothing To Do |
Resolved by LWG2568 |
||
match_results can’t satisfy the requirements of a container |
2016-11 (Issaquah) |
Complete |
|||
std::function’s member template target() should not lead to undefined behaviour |
2016-11 (Issaquah) |
Complete |
|||
addressof works on temporaries |
2016-11 (Issaquah) |
Complete |
|||
operator/ (and other append) semantics not useful if argument has root |
2016-11 (Issaquah) |
Complete |
|||
remove_filename() post condition is incorrect |
2016-11 (Issaquah) |
Complete |
|||
Should |
2016-11 (Issaquah) |
Complete |
|||
std::filesystem enum classes overspecified |
2016-11 (Issaquah) |
Complete |
|||
Inconsistent Use of Effects and Equivalent To |
2016-11 (Issaquah) |
Complete |
|||
Add “Equivalent to” to filesystem |
2016-11 (Issaquah) |
Complete |
|||
filesystem::copy() cannot copy symlinks |
2016-11 (Issaquah) |
Complete |
|||
Why is std::hash specialized for error_code, but not error_condition? |
2016-11 (Issaquah) |
Complete |
|||
Application of LWG 436 accidentally deleted definition of “facet” |
2016-11 (Issaquah) |
Complete |
|||
Interaction between make_shared and enable_shared_from_this is underspecified |
2016-11 (Issaquah) |
Nothing To Do |
|||
Missing restriction in [numeric.requirements] |
2016-11 (Issaquah) |
Complete |
|||
copy_file(from, to, …) has a number of unspecified error conditions |
2016-11 (Issaquah) |
Complete |
|||
equivalent incorrectly specifies throws clause |
2016-11 (Issaquah) |
Complete |
|||
Missing SFINAE on std::pair::operator= |
2016-11 (Issaquah) |
Complete |
|||
Questionable specification of path::operator/= and path::append |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] gcd / lcm and bool |
2016-11 (Issaquah) |
Complete |
|||
std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C |
2016-11 (Issaquah) |
Complete |
|||
nullopt_t insufficiently constrained |
2016-11 (Issaquah) |
Complete |
|||
|
2016-11 (Issaquah) |
Complete |
|||
Issue with time_point non-member subtraction with an unsigned duration |
2016-11 (Issaquah) |
Complete |
|||
constexpr optional<T>::operator-> |
2016-11 (Issaquah) |
Complete |
|||
Inconsistent string interface taking string_view |
2016-11 (Issaquah) |
Complete |
|||
any’s in_place constructors |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] Implementability of LWG 2451 |
2016-11 (Issaquah) |
Complete |
|||
Possibly redundant std::move in [alg.foreach] |
2016-11 (Issaquah) |
Complete |
|||
swappable traits for optionals |
2016-11 (Issaquah) |
Complete |
|||
swappable traits for variants |
2016-11 (Issaquah) |
Complete |
|||
[fund.ts.v2] LWG 2451 conversion constructor constraint |
2016-11 (Issaquah) |
Nothing To Do |
|||
“Throws:” clauses of async and packaged_task are unimplementable |
2016-11 (Issaquah) |
Nothing To Do |
|||
[string.view.io] uses non-existent basic_string_view::to_string function |
2016-11 (Issaquah) |
Complete |
|||
C++ WP optional<T> should ‘forward’ T’s implicit conversions |
2016-11 (Issaquah) |
Complete |
|||
std::string{}.assign(“ABCDE”, 0, 1) is ambiguous |
2016-11 (Issaquah) |
Complete |
|||
gcd / lcm and bool for the WP |
2016-11 (Issaquah) |
Complete |
|||
non-const basic_string::data should not invalidate iterators |
2016-11 (Issaquah) |
Complete |
|||
Did LWG 1123 go too far? |
2016-11 (Issaquah) |
Complete |
|||
not_fn call_wrapper can form invalid types |
2016-11 (Issaquah) |
Complete |
|||
Broken Effects of some basic_string::compare functions in terms of basic_string_view |
2016-11 (Issaquah) |
Complete |
|||
Making std::ignore constexpr |
2016-11 (Issaquah) |
Complete |
|||
basic_string_view::copy should use char_traits::copy |
2016-11 (Issaquah) |
Complete |
|||
basic_string_view is missing constexpr |
2016-11 (Issaquah) |
Complete |
|||
Missing requirement for Allocator::pointer |
2017-02 (Kona) |
Complete |
|||
Provide filesystem::path overloads for File-based streams |
2017-02 (Kona) |
Complete |
|||
any_cast and move semantics |
2017-02 (Kona) |
Complete |
|||
Redundant const in the return type of any_cast(const any&) |
2017-02 (Kona) |
Complete |
|||
Contradictory requirements for std::function and std::reference_wrapper |
2017-02 (Kona) |
Complete |
|||
scoped_allocator_adaptor constructors must be constrained |
2017-02 (Kona) |
Complete |
|||
Resolution to LWG 2484 is missing “otherwise, no effects” and is hard to parse |
2017-02 (Kona) |
Complete |
|||
quoted should work with basic_string_view |
2017-02 (Kona) |
Complete |
|||
Annex C should mention shared_ptr changes for array support |
2017-02 (Kona) |
Complete |
|||
§[file_status.cons] doesn’t match class definition |
2017-02 (Kona) |
Complete |
|||
basic_string range mutators unintentionally require a default constructible allocator |
2017-02 (Kona) |
Complete |
|||
Equivalence of contained objects |
2017-02 (Kona) |
Complete |
|||
Missing specification of istreambuf_iterator::operator-> |
2017-02 (Kona) |
Complete |
|||
Missing requirements for allocator pointers |
2017-02 (Kona) |
Nothing To Do |
|||
§[global.functions] provides incorrect example of ADL use |
2017-02 (Kona) |
Complete |
|||
tuple should be a literal type |
2017-02 (Kona) |
Complete |
|||
Default-constructibility of unique_ptr |
2017-02 (Kona) |
Complete |
|||
shared_ptr constructor requirements for a deleter |
2017-02 (Kona) |
Complete |
|||
Unconditional constexpr default constructor for istream_iterator |
2017-02 (Kona) |
Complete |
|||
Base class of bad_optional_access |
2017-02 (Kona) |
Complete |
|||
std::invoke should use |
2017-02 (Kona) |
Complete |
|||
Range access is available with <string_view> |
2017-02 (Kona) |
Complete |
|||
list::sort should say that the order of elements is unspecified if an exception is thrown |
2017-02 (Kona) |
Complete |
|||
string_view iterators use old wording |
2017-02 (Kona) |
Complete |
|||
Resolution LWG 2223 is missing wording about end iterators |
2017-02 (Kona) |
Complete |
|||
LWG 2536 seems to misspecify <tgmath.h> |
2017-02 (Kona) |
Complete |
|||
gcd and lcm should support a wider range of input values |
2017-02 (Kona) |
Complete |
|||
is_literal_type specification needs a little cleanup |
2017-02 (Kona) |
Complete |
|||
in_place_t check for optional::optional(U&&) should decay U |
2017-02 (Kona) |
Complete |
|||
std::function move constructor does unnecessary work |
2017-02 (Kona) |
Complete |
|||
Possible inconsistency in specification of erase in [vector.modifiers] |
2017-02 (Kona) |
Complete |
|||
std::throw_with_nested(“string_literal”) |
2017-02 (Kona) |
Complete |
|||
{variant,optional,any}::emplace should return the constructed value |
2017-02 (Kona) |
Complete |
|||
basic_string should require that charT match traits::char_type |
2017-02 (Kona) |
Complete |
|||
Incorrect derived classes constraints |
2017-02 (Kona) |
Nothing To Do |
|||
Missing specification of bad_any_cast::what() |
2017-02 (Kona) |
Complete |
|||
Add definition for direct-non-list-initialization |
2017-02 (Kona) |
Complete |
|||
Add noexcept to several shared_ptr related functions |
2017-02 (Kona) |
Complete |
|||
Constructor |
2017-02 (Kona) |
Complete |
13 |
||
shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrained |
2017-02 (Kona) |
Complete |
|||
|
2017-02 (Kona) |
Complete |
14 |
||
Missing DefaultConstructible requirement for istream_iterator default constructor |
2017-02 (Kona) |
Complete |
|||
The definition of ‘object state’ applies only to class types |
2017-02 (Kona) |
Complete |
|||
The copy and move constructors of optional are not constexpr |
2017-02 (Kona) |
Complete |
|||
The form of initialization for the emplace-constructors is not specified |
2017-02 (Kona) |
Complete |
|||
Make variant move-assignment more exception safe |
2017-02 (Kona) |
Complete |
|||
is_constructible_v<unique_ptr<P, D>, P, D const &> should be false when D is not copy constructible |
2017-02 (Kona) |
Complete |
|||
The less-than operator for shared pointers could do more |
2017-02 (Kona) |
Complete |
|||
An is_aggregate type trait is needed |
2017-02 (Kona) |
Complete |
|||
packaged_task and type-erased allocators |
2017-02 (Kona) |
Complete |
20 |
Originally implemented in LLVM 6 but reverted later. Old documentation incorrectly said it was implemented. |
|
optional<const T> doesn’t compare with T |
2017-02 (Kona) |
Complete |
|||
Variants cannot properly support allocators |
2017-07 (Toronto) |
Complete |
|||
|
2017-07 (Toronto) |
Nothing To Do |
Resolved by P0682R1 |
||
|
2017-07 (Toronto) |
Complete |