Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
1173 |
Open |
17 [library] |
"Equivalence" wishy-washiness |
No |
3 |
|
877 |
LEWG |
17 [library] |
to throw() or to Throw: Nothing. |
Yes |
|
|
2392 |
New |
17.3.16 [defns.ntcts] |
"character type" is used but not defined |
No |
3 |
|
2136 |
Open |
17.5.1 [structure] |
Postconditions vs. exceptions |
No |
3 |
|
2679 |
Tentatively Ready |
17.5.1.4 [structure.specifications] |
Inconsistent Use of Effects and Equivalent To |
Yes |
3 |
|
2292 |
New |
17.5.1.4 [structure.specifications] |
Find a better phrasing for "shall not participate in overload resolution" |
No |
3 |
|
2692 |
Tentatively NAD |
17.5.2.1.3 [bitmask.types] |
Overspecification of lvalueness of bitmask elements |
No |
3 |
|
2146 |
Open |
17.6.3.1 [utility.arg.requirements] |
Are reference types Copy/Move-Constructible/Assignable or Destructible? |
No |
2 |
|
2152 |
LEWG |
17.6.3.2 [swappable.requirements] |
Instances of standard container types are not swappable |
Yes |
2 |
|
2114 |
Open |
17.6.3.3 [nullablepointer.requirements] |
Incorrect "contextually convertible to bool" requirements |
Yes |
3 |
|
2461 |
New |
17.6.3.5 [allocator.requirements] |
Interaction between allocators and container exception safety guarantees |
No |
3 |
|
2178 |
Open |
17.6.3.5 [allocator.requirements] |
Allocator requirement changes not mentioned Annex C |
No |
3 |
|
2260 |
Open |
17.6.3.5 [allocator.requirements] |
Missing requirement for Allocator::pointer |
No |
3 |
|
2593 |
LEWG |
17.6.3.5 [allocator.requirements] |
Moved-from state of Allocators |
Yes |
4 |
|
2139 |
Open |
17.6.4.2.1 [namespace.std] |
What is a user-defined type? |
Yes |
4 |
|
2468 |
Tentatively Ready |
17.6.4.9 [res.on.arguments] |
Self-move-assignment of library types |
Yes |
2 |
|
2563 |
New |
17.6.5.5 [member.functions] |
LWG 2259 relaxes requirements, perhaps unintentionally |
No |
2 |
|
2695 |
New |
17.6.5.5 [member.functions] |
"As if" unclear in [member.functions] |
No |
3 |
|
2414 |
Open |
17.6.5.8 [reentrancy] |
Member function reentrancy should be implementation-defined |
Yes |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
1289 |
LEWG |
20.2 [utility] |
Generic casting requirements for smart pointers |
Yes |
|
|
2153 |
LEWG |
20.2.2 [utility.swap] |
Narrowing of the non-member swap contract |
Yes |
2 |
|
2599 |
New |
20.2.6 [declval] |
Library incomplete type permission phrase is unclear |
No |
3 |
|
2729 |
Tentatively Ready |
20.4.2 [pairs.pair] |
Missing SFINAE on std::pair::operator= |
Yes |
2 |
|
2289 |
Open |
20.4.2 [pairs.pair] |
constexpr guarantees of defaulted functions still insufficient |
Yes |
3 |
|
2766 |
New |
20.4.3 [pairs.spec] |
Swapping non-swappable types |
Yes |
3 |
|
2773 |
Tentatively Ready |
20.5.1 [tuple.general] |
Making std::ignore constexpr |
Yes |
0 |
|
2446 |
LEWG |
20.5.1 [tuple.general] |
Unspecialized std::tuple_size should be defined |
Yes |
|
|
2528 |
New |
20.5.2.1 [tuple.cnstr] |
Order of std::tuple construction unspecified |
No |
3 |
|
2419 |
LEWG |
20.5.2.1 [tuple.cnstr] |
Clang's libc++ extension to std::tuple |
No |
|
|
1201 |
LEWG |
20.5.2.4 [tuple.creation] |
Do we always want to unwrap ref-wrappers in make_tuple |
Yes |
|
|
2770 |
Open |
20.5.2.6 [tuple.helper] |
tuple_size<const T> specialization is not SFINAE compatible and breaks decomposition declarations |
Yes |
1 |
|
2472 |
New |
20.5.2.8 [tuple.rel] |
Heterogeneous comparisons in the standard library can result in ambiguities |
No |
3 |
|
532 |
LEWG |
20.5.2.8 [tuple.rel] |
Tuple comparison |
Yes |
|
348 |
2756 |
Tentatively Ready |
20.6.3 [optional.object] |
C++ WP optional<T> should 'forward' T's implicit conversions |
Yes |
1 |
|
2746 |
New |
20.6.3 [optional.object] |
Inconsistency between requirements for emplace between optional and variant |
No |
3 |
|
2753 |
Tentatively Ready |
20.6.3.1 [optional.object.ctor] |
Optional's constructors and assignments need constraints |
Yes |
0 |
|
2748 |
Tentatively Ready |
20.6.3.4 [optional.object.swap] |
swappable traits for optionals |
Yes |
0 |
|
2740 |
Tentatively Ready |
20.6.3.5 [optional.object.observe] |
constexpr optional<T>::operator-> |
Yes |
0 |
|
2736 |
Tentatively Ready |
20.6.4 [optional.nullopt] |
nullopt_t insufficiently constrained |
Yes |
2 |
|
2749 |
Tentatively Ready |
20.7.2.6 [variant.swap] |
swappable traits for variants |
Yes |
1 |
|
2744 |
Tentatively Ready |
20.8.3.1 [any.cons] |
any's in_place constructors |
Yes |
0 |
|
2754 |
Tentatively Ready |
20.8.3.1 [any.cons] |
The in_place constructors and emplace functions added by P0032R3 don't require CopyConstructible |
Yes |
1 |
|
2768 |
Tentatively Ready |
20.8.4 [any.nonmembers] |
any_cast and move semantics |
Yes |
0 |
|
2769 |
Open |
20.8.4 [any.nonmembers] |
Redundant const in the return type of any_cast(const any&) |
Yes |
0 |
|
2348 |
Open |
20.9 [template.bitset] |
charT('1') is not the wide equivalent of '1' |
Yes |
3 |
|
1112 |
LEWG |
20.9 [template.bitset] |
bitsets and new style for loop |
Yes |
|
|
2421 |
New |
20.10.5 [ptr.align] |
Non-specification of handling zero size in std::align [ptr.align] |
No |
3 |
|
2089 |
EWG |
20.10.9.1 [allocator.members] |
std::allocator::construct should use uniform initialization |
Yes |
2 |
|
2598 |
Tentatively Ready |
20.10.10.1 [specialized.addressof] |
addressof works on temporaries |
Yes |
3 |
|
2262 |
Open |
20.11.1.2 [unique.ptr.single] |
Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr |
Yes |
3 |
|
933 |
LEWG |
20.11.1.2.5 [unique.ptr.single.modifiers] |
Unique_ptr defect |
No |
|
|
2594 |
New |
20.11.2.2 [util.smartptr.shared] |
Contradicting definition of empty shared_ptr on shared_ptr(nullptr, d) |
Yes |
3 |
|
1031 |
LEWG |
20.11.2.2 [util.smartptr.shared] |
Need shared_ptr conversion to a unique_ptr |
No |
|
|
1406 |
LEWG |
20.11.2.2 [util.smartptr.shared] |
Support hashing smart-pointers based on owner |
Yes |
|
|
2751 |
New |
20.11.2.2.2 [util.smartptr.shared.dest] |
shared_ptr deleter not specified to observe expired weak_ptr instances |
No |
4 |
|
2337 |
Tentatively NAD |
20.11.2.2.5 [util.smartptr.shared.obs] |
shared_ptr operator*() should not be noexcept |
No |
2 |
|
2776 |
New |
20.11.2.2.5 [util.smartptr.shared.obs] |
shared_ptr unique() and use_count() |
No |
2 |
|
2696 |
Tentatively Ready |
20.11.2.2.6 [util.smartptr.shared.create] |
Interaction between make_shared and enable_shared_from_this is underspecified |
Yes |
2 |
|
2070 |
Open |
20.11.2.2.6 [util.smartptr.shared.create] |
allocate_shared should use allocator_traits<A>::construct |
Yes |
2 |
|
2529 |
Tentatively Resolved |
20.11.2.5 [util.smartptr.enab] |
Assigning to enable_shared_from_this::__weak_this twice |
No |
3 |
|
2179 |
Tentatively Resolved |
20.11.2.5 [util.smartptr.enab] |
enable_shared_from_this and construction from raw pointers |
No |
3 |
|
2445 |
SG1 |
20.11.2.6 [util.smartptr.shared.atomic] |
"Stronger" memory ordering |
No |
|
|
2782 |
New |
20.13.3 [allocator.adaptor.cnstr] |
scoped_allocator_adaptor constructors must be constrained |
Yes |
|
|
2717 |
Tentatively NAD |
20.13.4 [allocator.adaptor.members] |
scoped_allocator_adaptor uses forward to do move's job |
Yes |
|
|
2511 |
New |
20.13.4 [allocator.adaptor.members] |
scoped_allocator_adaptor piecewise construction does not require CopyConstructible |
No |
3 |
|
2690 |
LEWG |
20.14.3 [func.invoke] |
invoke<R> |
Yes |
|
|
2562 |
Tentatively Ready |
20.14.6 [comparisons] |
Consistent total ordering of pointers by comparison functors |
Yes |
3 |
|
2547 |
New |
20.14.6 [comparisons] |
Container requirements (and other library text) should say "strict total order", not just "total order" |
No |
3 |
|
2491 |
New |
20.14.6 [comparisons] |
std::less<T*> in constant expression |
No |
3 |
|
2767 |
Tentatively Ready |
20.14.9 [func.not_fn] |
not_fn call_wrapper can form invalid types |
Yes |
0 |
|
2062 |
Tentatively Ready |
20.14.12.2 [func.wrap.func] |
Effect contradictions w/o no-throw guarantee of std::function swaps |
Yes |
2 |
|
2370 |
Tentatively Resolved |
20.14.12.2 [func.wrap.func] |
Operations involving type-erased allocators should not be noexcept in std::function |
Yes |
3 |
|
2501 |
Tentatively Resolved |
20.14.12.2 [func.wrap.func] |
std::function requires POCMA/POCCA |
Yes |
3 |
|
2502 |
Tentatively Resolved |
20.14.12.2 [func.wrap.func] |
std::function does not use allocator::construct |
Yes |
3 |
|
2781 |
New |
20.14.12.2.1 [func.wrap.func.con] |
Contradictory requirements for std::function and std::reference_wrapper |
Yes |
|
|
2774 |
New |
20.14.12.2.1 [func.wrap.func.con] |
std::function construction vs assignment |
No |
3 |
|
2591 |
Tentatively Ready |
20.14.12.2.5 [func.wrap.func.targ] |
std::function's member template target() should not lead to undefined behaviour |
Yes |
3 |
|
2543 |
Tentatively Ready |
20.14.14 [unord.hash] |
LWG 2148 (hash support for enum types) seems under-specified |
Yes |
2 |
|
1025 |
LEWG |
20.14.14 [unord.hash] |
The library should provide more specializations for std::hash |
No |
|
|
1317 |
LEWG |
20.14.14 [unord.hash] |
make_hash |
Yes |
|
|
2290 |
Open |
20.15 [meta] |
Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 |
Yes |
3 |
|
1120 |
LEWG |
20.15 [meta] |
New type trait - remove_all |
No |
|
|
2040 |
LEWG |
20.15 [meta] |
Missing type traits related to is_convertible |
Yes |
|
|
2452 |
Core |
20.15 [meta] |
is_constructible, etc. and default arguments |
No |
3 |
|
2514 |
Tentatively Ready |
20.15.1 [meta.rqmts] |
Type traits must not be final |
Yes |
3 |
|
2738 |
Tentatively Ready |
20.15.4.3 [meta.unary.prop] |
is_constructible with void types |
Yes |
|
|
2496 |
New |
20.15.4.3 [meta.unary.prop] |
Certain hard-to-avoid errors not in the immediate context are not allowed to be triggered by
the evaluation of type traits |
No |
3 |
|
2358 |
Open |
20.15.4.3 [meta.unary.prop] |
Apparently-bogus definition of is_empty type trait |
Yes |
3 |
|
2077 |
Open |
20.15.4.3 [meta.unary.prop] |
Further incomplete constraints for type traits |
No |
3 |
|
2116 |
Open |
20.15.4.3 [meta.unary.prop] |
std::swap noexcept(what?) |
No |
3 |
|
2460 |
Tentatively Ready |
20.15.7.6 [meta.trans.other] |
LWG issue 2408 and value categories |
Yes |
2 |
|
2763 |
New |
20.15.7.6 [meta.trans.other] |
common_type_t<void, void> is undefined |
Yes |
2 |
|
2465 |
Open |
20.15.7.6 [meta.trans.other] |
SFINAE-friendly common_type is nearly impossible to specialize
correctly and regresses key functionality |
Yes |
2 |
|
2567 |
Tentatively Ready |
20.15.8 [meta.logical] |
Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits
and BinaryTypeTraits |
Yes |
2 |
|
2569 |
Tentatively Ready |
20.15.8 [meta.logical] |
conjunction and disjunction requirements are too strict |
Yes |
2 |
|
2587 |
Open |
20.15.8 [meta.logical] |
"Convertible to bool" requirement in conjunction and disjunction |
Yes |
3 |
|
1121 |
LEWG |
20.16.4 [ratio.arithmetic] |
Support for multiple arguments |
Yes |
|
|
2592 |
New |
20.17.2 [time.syn] |
Require that chrono::duration_casts from smaller durations to larger durations do not overflow |
Yes |
4 |
|
2383 |
Open |
20.17.5.8 [time.duration.literals] |
Overflow cannot be ill-formed for chrono::duration integer literals |
No |
3 |
|
2739 |
Tentatively Ready |
20.17.6.5 [time.point.nonmember] |
Issue with time_point non-member subtraction with an unsigned duration |
Yes |
0 |
|
935 |
LEWG |
20.17.7 [time.clock] |
clock error handling needs to be specified |
Yes |
|
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2513 |
New |
21.1 [strings.general] |
Missing requirements for basic_string::value_type |
No |
4 |
|
2232 |
LEWG |
21.2.3 [char.traits.specializations] |
[CD] The char_traits specializations should declare their length(), compare(), and
find() members constexpr |
Yes |
|
|
2318 |
New |
21.3.1 [basic.string] |
basic_string's wording has confusing relics from the copy-on-write era |
No |
4 |
|
2391 |
Tentatively Resolved |
21.3.1 [basic.string] |
basic_string is missing non-const data() |
Yes |
3 |
|
2760 |
Tentatively Ready |
21.3.1.1 [string.require] |
non-const basic_string::data should not invalidate iterators |
Yes |
|
|
2151 |
Open |
21.3.1.1 [string.require] |
basic_string<>::swap semantics ignore allocators |
No |
3 |
|
2742 |
Tentatively Ready |
21.3.1.2 [string.cons] |
Inconsistent string interface taking string_view |
Yes |
1 |
|
2475 |
Tentatively Ready |
21.3.1.5 [string.access] |
Allow overwriting of std::basic_string terminator with charT() to allow
cleaner interoperation with legacy APIs |
Yes |
3 |
|
2758 |
Tentatively Ready |
21.3.1.6.3 [string::assign] |
std::string{}.assign("ABCDE", 0, 1) is ambiguous |
Yes |
1 |
|
2757 |
Tentatively Resolved |
21.3.1.6.4 [string::insert] |
std::string{}.insert(3, "ABCDE", 0, 1) is ambiguous |
Yes |
1 |
|
2771 |
Tentatively Ready |
21.3.1.7.9 [string::compare] |
Broken Effects of some basic_string::compare functions in terms of basic_string_view |
Yes |
1 |
|
2778 |
Tentatively Ready |
21.4 [string.view] |
basic_string_view is missing constexpr |
Yes |
0 |
|
2780 |
New |
21.4 [string.view] |
basic_string_view::copy is missing constexpr |
Yes |
2 |
|
2777 |
Tentatively Ready |
21.4.2.6 [string.view.ops] |
basic_string_view::copy should use char_traits::copy |
Yes |
0 |
|
2755 |
Tentatively Ready |
21.4.4 [string.view.io] |
§[string.view.io] uses non-existent basic_string_view::to_string function |
Yes |
0 |
|
2237 |
New |
21.5 [c.strings] |
<cuchar> macros |
No |
4 |
|
2238 |
Open |
21.5 [c.strings] |
Problematic iterator-pair constructor of containers |
No |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
708 |
LEWG |
22 [localization] |
Locales need to be per thread and updated for POSIX changes |
No |
|
|
2694 |
Tentatively Ready |
22.3.1.1.2 [locale.facet] |
Application of LWG 436 accidentally deleted definition of "facet" |
Yes |
3 |
|
2295 |
New |
22.3.1.2 [locale.cons] |
Locale name when the provided Facet is a nullptr |
No |
3 |
|
2394 |
Tentatively Ready |
22.3.1.3 [locale.members] |
locale::name specification unclear — what is implementation-defined? |
Yes |
3 |
|
2478 |
New |
22.3.3.2.2 [conversions.string] |
Unclear how wstring_convert uses cvtstate |
No |
4 |
|
2481 |
New |
22.3.3.2.2 [conversions.string] |
wstring_convert should be more precise regarding "byte-error string" etc. |
No |
4 |
|
2226 |
LEWG |
22.3.3.2.2 [conversions.string] |
wstring_convert methods do not take allocator instance |
Yes |
|
|
2479 |
New |
22.3.3.2.3 [conversions.buffer] |
Unclear how wbuffer_convert uses cvtstate |
No |
4 |
|
2480 |
New |
22.3.3.2.3 [conversions.buffer] |
Error handling of wbuffer_convert unclear |
No |
4 |
|
2381 |
Open |
22.4.2.1.2 [facet.num.get.virtuals] |
Inconsistency in parsing floating point numbers |
Yes |
2 |
|
2702 |
New |
22.4.2.2.2 [facet.num.put.virtuals] |
num_put::do_put(..., bool) performs ill-formed do_put call |
No |
3 |
|
2703 |
New |
22.4.2.2.2 [facet.num.put.virtuals] |
No provision for fill-padding when boolalpha is set |
No |
3 |
|
2117 |
Open |
22.4.2.2.2 [facet.num.put.virtuals] |
ios_base manipulators should have showgrouping/noshowgrouping |
No |
3 |
|
2512 |
Open |
22.4.5.1.2 [locale.time.get.virtuals] |
Y2K bites; what is an "unambiguous year identifier"? |
No |
4 |
|
2691 |
New |
22.4.6.3 [locale.moneypunct] |
money_base::space and do_put: U+0020 versus fill |
Yes |
3 |
|
2507 |
New |
22.5 [locale.stdcvt] |
codecvt_mode should be a bitmask type |
No |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2307 |
Open |
23 [containers] |
Should the Standard Library use explicit only when necessary? |
No |
2 |
|
1242 |
LEWG |
23 [containers] |
Enable SCARY iterators |
Yes |
|
|
2743 |
New |
23.1.1.1 [container.node.overview] |
p0083r3 node_handle private members missing "exposition only" comment |
No |
3 |
|
2261 |
Tentatively Ready |
23.2 [container.requirements] |
Are containers required to use their 'pointer' type internally? |
Yes |
2 |
|
760 |
Tentatively NAD |
23.2 [container.requirements] |
The emplace issue |
Yes |
2 |
|
2269 |
New |
23.2.1 [container.requirements.general] |
Container iterators and argument-dependent lookup |
No |
4 |
|
2321 |
Open |
23.2.1 [container.requirements.general] |
Moving containers should (usually) be required to preserve iterators |
Yes |
2 |
|
1521 |
LEWG |
23.2.1 [container.requirements.general] |
Requirements on internal pointer representations in containers |
Yes |
|
|
2705 |
New |
23.2.3 [sequence.reqmts] |
Questionable precondition on Sequence containers a.assign(n, t) |
Yes |
3 |
|
2206 |
Open |
23.2.3 [sequence.reqmts] |
Inaccuracy in initializer_list constructor requirements |
No |
3 |
|
2772 |
New |
23.2.4 [associative.reqmts] |
Inconsistency in the insert(node) interface |
No |
2 |
|
2362 |
New |
23.2.4 [associative.reqmts] |
unique, associative emplace() should not move/copy the mapped_type constructor
arguments when no insertion happens |
No |
3 |
|
2227 |
Open |
23.2.4 [associative.reqmts] |
Stateful comparison objects in associative containers |
No |
3 |
|
2215 |
Open |
23.2.4 [associative.reqmts] |
(unordered) associative container functors should be CopyConstructible |
Yes |
3 |
|
2430 |
LEWG |
23.2.4 [associative.reqmts] |
Heterogeneous container lookup should be enabled using meta-function instead of nested type |
No |
|
|
1041 |
Tentatively Resolved |
23.2.4 [associative.reqmts] |
Add associative/unordered container functions that allow to extract elements |
Yes |
|
|
2540 |
Tentatively Ready |
23.2.5 [unord.req] |
unordered_multimap::insert hint iterator |
Yes |
3 |
|
1175 |
Open |
23.2.5 [unord.req] |
unordered complexity |
Yes |
3 |
|
2198 |
Open |
23.2.5 [unord.req] |
max_load_factor(z) makes no strong guarantees, but bans useful behavior |
No |
3 |
|
2199 |
Open |
23.2.5 [unord.req] |
unordered containers are required to have an initial max load factor of 1.0 |
No |
3 |
|
1188 |
LEWG |
23.2.5 [unord.req] |
Unordered containers should have a minimum load factor as well as a maximum |
Yes |
|
|
2189 |
Open |
23.2.5.1 [unord.req.except] |
Throwing swap breaks unordered containers' state |
No |
3 |
|
2335 |
New |
23.3.7 [array] |
array<array<int, 3>, 4> should be layout-compatible with int[4][3] |
No |
3 |
|
851 |
LEWG |
23.3.7 [array] |
simplified array construction |
Yes |
|
|
2443 |
Tentatively Resolved |
23.3.7 [array] |
std::array member functions should be constexpr |
Yes |
|
|
2157 |
Open |
23.3.7.8 [array.zero] |
How does std::array<T,0> initialization work when T is not default-constructible? |
Yes |
3 |
|
1184 |
LEWG |
23.3.11 [vector] |
Feature request: dynamic bitset |
No |
|
|
2223 |
Tentatively Ready |
23.3.11.3 [vector.capacity] |
shrink_to_fit effect on iterator validity |
Yes |
2 |
|
2158 |
Open |
23.3.11.3 [vector.capacity] |
Conditional copy/move in std::vector |
Yes |
2 |
|
2256 |
New |
23.3.11.5 [vector.modifiers] |
On vector iterator invalidation |
No |
3 |
|
2449 |
New |
23.3.11.5 [vector.modifiers] |
vector::insert invalidates end()? |
No |
3 |
|
2164 |
Open |
23.3.11.5 [vector.modifiers] |
What are the semantics of vector.emplace(vector.begin(), vector.back())? |
No |
2 |
|
1422 |
LEWG |
23.3.12 [vector.bool] |
vector<bool> iterators are not random access |
No |
|
|
839 |
Tentatively Resolved |
23.4 [associative] |
Maps and sets missing splice operation |
Yes |
|
|
2713 |
New |
23.5 [unord] |
More missing allocator-extended constructors for unordered containers |
Yes |
3 |
|
2783 |
New |
23.6.4.1 [queue.defn] |
stack::emplace() and queue::emplace() should return decltype(auto) |
Yes |
|
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
423 |
LEWG |
27 [input.output] |
effects of negative streamsize in iostreams |
Yes |
|
|
2765 |
Tentatively Ready |
27.5.3.1.6 [ios::Init] |
Did LWG 1123 go too far? |
Yes |
0 |
|
2600 |
LEWG |
27.5.3.5 [ios.base.storage] |
ios_base must store inaccessible iostate flags |
No |
|
|
2675 |
New |
27.5.3.6 [ios.base.callback] |
register_callback can fail |
No |
3 |
|
2214 |
Open |
27.5.5.2 [basic.ios.cons] |
Clarify basic_ios::init call restrictions |
Yes |
4 |
|
2504 |
New |
27.6.3 [streambuf] |
basic_streambuf is not an abstract class |
No |
3 |
|
255 |
LEWG |
27.6.3 [streambuf] |
Why do basic_streambuf<>::pbump() and gbump() take an int? |
Yes |
|
|
2349 |
Open |
27.7.2.2.1 [istream.formatted.reqmts] |
Clarify input/output function rethrow behavior |
Yes |
3 |
|
2499 |
Open |
27.7.2.2.3 [istream::extractors] |
operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows |
Yes |
2 |
|
2243 |
New |
27.7.2.3 [istream.unformatted] |
istream::putback problem |
No |
3 |
|
2498 |
New |
27.7.2.6 [istream.rvalue] |
operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return
basic_istream&& |
No |
3 |
|
2221 |
Tentatively Ready |
27.7.3 [output.streams] |
No formatted output operator for nullptr |
Yes |
3 |
|
2342 |
New |
27.7.3.1 [ostream] |
User conversion to wchar_t const* or to wchar_t not invoked for operator<< |
Yes |
4 |
|
2497 |
New |
27.7.3.4 [ostream::sentry] |
Use of uncaught_exception() |
No |
3 |
|
2534 |
Tentatively Ready |
27.7.3.9 [ostream.rvalue] |
Constrain rvalue stream operators |
Yes |
3 |
|
1203 |
LEWG |
27.7.3.9 [ostream.rvalue] |
More useful rvalue stream insertion |
Yes |
|
|
2286 |
New |
27.8.2.4 [stringbuf.virtuals] |
stringbuf::underflow() underspecified |
Yes |
4 |
|
2121 |
New |
27.8.5.1 [stringstream.cons] |
app for string streams |
No |
3 |
|
2676 |
Review |
27.9 [file.streams] |
Provide filesystem::path overloads for File-based streams |
Yes |
2 |
|
1150 |
LEWG |
27.9.5 [fstream] |
wchar_t, char16_t and char32_t filenames |
No |
|
|
2680 |
Tentatively Ready |
27.10 [filesystems] |
Add "Equivalent to" to filesystem |
Yes |
2 |
|
2668 |
New |
27.10.8 [class.path] |
path::operator+= is defined, but not operator+ |
Yes |
3 |
|
2732 |
Tentatively Ready |
27.10.8.4.3 [path.append] |
Questionable specification of path::operator/= and path::append |
Yes |
2 |
|
2664 |
Tentatively Ready |
27.10.8.4.3 [path.append] |
operator/ (and other append) semantics not useful if argument has root |
Yes |
2 |
|
2734 |
New |
27.10.8.4.4 [path.concat] |
Questionable specification in [path.concat] |
No |
2 |
|
2665 |
Open |
27.10.8.4.5 [path.modifiers] |
remove_filename() post condition is incorrect |
Yes |
3 |
|
2678 |
Tentatively Ready |
27.10.10.1 [enum.file_type] |
std::filesystem enum classes overspecified |
Yes |
3 |
|
2762 |
LEWG |
27.10.12.3 [directory_entry.obs] |
unique_ptr operator*() should be noexcept |
Yes |
3 |
|
2677 |
Tentatively Resolved |
27.10.12.3 [directory_entry.obs] |
directory_entry::status is not allowed to be cached as a quality-of-implementation issue |
No |
2 |
|
2708 |
Open |
27.10.14.1 [rec.dir.itr.members] |
recursive_directory_iterator::recursion_pending() is incorrectly specified |
Yes |
2 |
|
2681 |
Tentatively Ready |
27.10.15.3 [fs.op.copy] |
filesystem::copy() cannot copy symlinks |
Yes |
2 |
|
2682 |
Open |
27.10.15.3 [fs.op.copy] |
filesystem::copy() won't create a symlink to a directory |
Yes |
2 |
|
2712 |
Tentatively Ready |
27.10.15.4 [fs.op.copy_file] |
copy_file(from, to, ...) has a number of unspecified error conditions |
Yes |
2 |
|
2722 |
Tentatively Ready |
27.10.15.13 [fs.op.equivalent] |
equivalent incorrectly specifies throws clause |
Yes |
3 |
|
2663 |
Tentatively Resolved |
27.10.15.14 [fs.op.file_size] |
Enable efficient retrieval of file size from directory_entry |
No |
2 |
|
2672 |
Tentatively Ready |
27.10.15.19 [fs.op.is_empty] |
Should is_empty use error_code in its specification? |
Yes |
3 |
|
2548 |
Tentatively Resolved |
27.11 [c.files] |
Missing vfscanf from <cstdio> |
Yes |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
1484 |
LEWG |
30.3.1 [thread.thread.class] |
Need a way to join a thread with a timeout |
No |
|
|
1488 |
LEWG |
30.4 [thread.mutex] |
Improve interoperability between the C++0x and C1x threads APIs |
No |
|
|
936 |
LEWG |
30.4.1 [thread.mutex.requirements] |
Mutex type overspecified |
No |
|
961 |
961 |
LEWG |
30.4.1 [thread.mutex.requirements] |
Various threading bugs #11 |
No |
|
936 |
1493 |
LEWG |
30.4.1 [thread.mutex.requirements] |
Add mutex, recursive_mutex, is_locked function |
No |
|
|
2363 |
Open |
30.4.1.5.1 [thread.sharedtimedmutex.class] |
Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] |
Yes |
2 |
|
2731 |
New |
30.4.2.1 [thread.lock.guard] |
Existence of lock_guard<MutexTypes...>::mutex_type typedef unclear |
Yes |
3 |
|
1499 |
LEWG |
30.5 [thread.condition] |
Condition variables preclude wakeup optimization |
No |
|
|
2530 |
Open |
30.6.4 [futures.state] |
Clarify observable side effects of releasing a shared state |
No |
3 |
|
2532 |
Open |
30.6.5 [futures.promise] |
Satisfying a promise at thread exit |
Yes |
3 |
|
2095 |
LEWG |
30.6.5 [futures.promise] |
promise and packaged_task missing constructors needed for uses-allocator construction |
Yes |
4 |
|
2412 |
SG1 |
30.6.5 [futures.promise] |
promise::set_value() and promise::get_future() should not race |
Yes |
|
|
2556 |
Tentatively Ready |
30.6.6 [futures.unique_future] |
Wide contract for future::share() |
Yes |
3 |
|
2531 |
Tentatively Ready |
30.6.6 [futures.unique_future] |
future::get should explicitly state that the shared state is released |
Yes |
3 |
|
2752 |
Tentatively Ready |
30.6.8 [futures.async] |
"Throws:" clauses of async and packaged_task are unimplementable |
Yes |
3 |
|
2202 |
Deferred |
30.6.8 [futures.async] |
Missing allocator support by async |
No |
4 |
|
2245 |
Review |
30.6.9.1 [futures.task.members] |
packaged_task::reset() memory allocation |
Yes |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2570 |
Tentatively Ready |
99 [fund.ts.v2::meta.logical] |
[fund.ts.v2] conjunction and disjunction requirements are too strict |
No |
2 |
|
2745 |
Tentatively Ready |
99 [fund.ts.v2::optional.object] |
[fund.ts.v2] Implementability of LWG 2451 |
Yes |
0 |
|
2750 |
Tentatively Ready |
99 [fund.ts.v2::optional.object.ctor] |
[fund.ts.v2] LWG 2451 conversion constructor constraint |
Yes |
0 |
|
2733 |
Tentatively Ready |
99 [fund.ts.v2::numeric.ops.gcd] |
[fund.ts.v2] gcd / lcm and bool |
Yes |
4 |
|
2561 |
New |
99 [fund.ts.v2::optional.object.swap] |
[fund.ts.v2] Incorrect exception specifications for 'swap' in C++ Extensions for Library Fundamentals |
No |
3 |
|
2518 |
New |
99 [fund.ts.v2::propagate_const.algorithms] |
[fund.ts.v2] Non-member swap for propagate_const should call member swap |
Yes |
3 |
|
2564 |
New |
99 [fund.ts.v2::func.wrap.func] |
[fund.ts.v2] std::experimental::function constructors taking allocator arguments may throw exceptions |
Yes |
3 |
|
2521 |
New |
99 [fund.ts.v2::memory.smartptr.weak.const] |
[fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array support |
Yes |
2 |
|
2525 |
New |
99 [fund.ts.v2::func.wrap.func] |
[fund.ts.v2] get_memory_resource should be const and noexcept |
Yes |
3 |
|
2527 |
New |
99 [fund.ts.v2::func.wrap.func.con] |
[fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default |
Yes |
3 |
|
2568 |
Open |
99 [fund.ts.v2::meta.logical] |
[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for
UnaryTypeTraits and BinaryTypeTraits |
Yes |
2 |
|
2588 |
Open |
99 [fund.ts.v2::meta.logical] |
[fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunction |
Yes |
3 |
|
2417 |
LEWG |
99 [fund.ts.v2::optional.relops] |
[fund.ts.v2] std::experimental::optional::operator< and LessThanComparable requirement |
No |
|
|