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 [defns.ntcts] |
"character type" is used but not defined |
No |
3 |
|
2136 |
Open |
17.5.1 [structure] |
Postconditions vs. exceptions |
No |
3 |
|
2292 |
New |
17.5.1.4 [structure.specifications] |
Find a better phrasing for "shall not participate in overload resolution" |
No |
3 |
|
2380 |
Review |
17.6.1.2 [headers] |
May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? |
Yes |
2 |
|
2146 |
Open |
17.6.3.1 [utility.arg.requirements] |
Are reference types Copy/Move-Constructible/Assignable or Destructible? |
No |
2 |
|
2152 |
Open |
17.6.3.2 [swappable.requirements] |
Instances of standard container types are not swappable |
No |
2 |
|
2114 |
Open |
17.6.3.3 [nullablepointer.requirements] |
Incorrect "contextually convertible to bool" requirements |
Yes |
3 |
|
2455 |
Tentatively Ready |
17.6.3.5 [allocator.requirements] |
Allocator default construction should be allowed to throw |
Yes |
|
|
2467 |
Tentatively Ready |
17.6.3.5 [allocator.requirements] |
is_always_equal has slightly inconsistent default |
Yes |
0 |
|
2470 |
Tentatively Ready |
17.6.3.5 [allocator.requirements] |
Allocator's destroy function should be allowed to fail to instantiate |
Yes |
|
|
2384 |
New |
17.6.3.5 [allocator.requirements] |
Allocator's deallocate function needs better specification |
Yes |
3 |
|
2461 |
New |
17.6.3.5 [allocator.requirements] |
Interaction between allocators and container exception safety guarantees |
No |
3 |
|
2466 |
New |
17.6.3.5 [allocator.requirements] |
allocator_traits::max_size() default behavior is incorrect |
Yes |
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 |
Yes |
3 |
|
2447 |
Open |
17.6.3.5 [allocator.requirements] |
Allocators and volatile-qualified value types |
Yes |
4 |
|
2139 |
Open |
17.6.4.2.1 [namespace.std] |
What is a user-defined type? |
Yes |
4 |
|
2468 |
New |
17.6.4.9 [res.on.arguments] |
Self-move-assignment of library types |
No |
2 |
|
2224 |
Open |
17.6.4.10 [res.on.objects] |
Ambiguous status of access to non-live objects |
Yes |
2 |
|
2373 |
New |
17.6.5 [conforming] |
Make new entities and names in namespace std conforming extensions |
No |
3 |
|
2133 |
Open |
17.6.5.4 [global.functions] |
Attitude to overloaded comma for iterators |
Yes |
3 |
|
2259 |
New |
17.6.5.5 [member.functions] |
Issues in 17.6.5.5 rules for member functions |
Yes |
3 |
|
2414 |
Open |
17.6.5.8 [reentrancy] |
Member function reentrancy should be implementation-defined |
Yes |
3 |
|
1526 |
Open |
17.6.5.9 [res.on.data.races] |
C++ should not impose thread safety requirements on C99 library implementations |
Yes |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2456 |
New |
20.2 [utility] |
Incorrect exception specifications for 'swap' throughout library |
No |
1 |
|
1289 |
LEWG |
20.2 [utility] |
Generic casting requirements for smart pointers |
Yes |
|
|
2153 |
Open |
20.2.2 [utility.swap] |
Narrowing of the non-member swap contract |
No |
2 |
|
2388 |
Open |
20.2.3 [utility.exchange] |
Handling self-assignment in the proposed library function std::exchange |
Yes |
2 |
|
2289 |
New |
20.3.2 [pairs.pair] |
constexpr guarantees of defaulted functions still insufficient |
Yes |
3 |
|
2446 |
LEWG |
20.4.1 [tuple.general] |
Unspecialized std::tuple_size should be defined |
Yes |
|
|
2051 |
Open |
20.4.2 [tuple.tuple] |
Explicit tuple constructors for more than one parameter |
No |
2 |
|
2312 |
Open |
20.4.2.1 [tuple.cnstr] |
tuple's constructor constraints need to be phrased more precisely |
Yes |
2 |
|
2419 |
LEWG |
20.4.2.1 [tuple.cnstr] |
Clang's libc++ extension to std::tuple |
No |
|
|
1201 |
LEWG |
20.4.2.4 [tuple.creation] |
Do we always want to unwrap ref-wrappers in make_tuple |
Yes |
|
|
2485 |
New |
20.4.2.6 [tuple.elem] |
get() should be overloaded for const tuple&& |
Yes |
|
|
2472 |
New |
20.4.2.7 [tuple.rel] |
Heterogeneous comparisons in the standard library can result in ambiguities |
No |
|
|
532 |
LEWG |
20.4.2.7 [tuple.rel] |
Tuple comparison |
Yes |
|
348 |
2348 |
New |
20.6 [template.bitset] |
charT('1') is not the wide equivalent of '1' |
Yes |
3 |
|
1112 |
LEWG |
20.6 [template.bitset] |
bitsets and new style for loop |
Yes |
|
|
2250 |
New |
20.6.1 [bitset.cons] |
Follow-up On Library Issue 2207 |
Yes |
3 |
|
2421 |
New |
20.7.5 [ptr.align] |
Non-specification of handling zero size in std::align [ptr.align] |
No |
3 |
|
2089 |
EWG |
20.7.9.1 [allocator.members] |
std::allocator::construct should use uniform initialization |
Yes |
2 |
|
2454 |
Tentatively Ready |
20.7.10 [storage.iterator] |
Add raw_storage_iterator::base() member |
Yes |
0 |
|
2127 |
Open |
20.7.10 [storage.iterator] |
Move-construction with raw_storage_iterator |
Yes |
3 |
|
2072 |
Open |
20.7.11 [temporary.buffer] |
Unclear wording about capacity of temporary buffers |
Yes |
3 |
|
2296 |
New |
20.7.12.1 [specialized.addressof] |
std::addressof should be constexpr |
Yes |
3 |
|
2262 |
New |
20.8.1.2 [unique.ptr.single] |
Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr |
Yes |
3 |
|
2228 |
Review |
20.8.1.2.3 [unique.ptr.single.asgn] |
Missing SFINAE rule in unique_ptr templated assignment |
Yes |
3 |
|
933 |
LEWG |
20.8.1.2.5 [unique.ptr.single.modifiers] |
Unique_ptr defect |
No |
|
|
1031 |
LEWG |
20.8.2.2 [util.smartptr.shared] |
Need shared_ptr conversion to a unique_ptr |
No |
|
|
1406 |
LEWG |
20.8.2.2 [util.smartptr.shared] |
Support hashing smart-pointers based on owner |
Yes |
|
|
2415 |
Tentatively Ready |
20.8.2.2.1 [util.smartptr.shared.const] |
Inconsistency between unique_ptr and shared_ptr |
Yes |
2 |
|
2337 |
Tentatively NAD |
20.8.2.2.5 [util.smartptr.shared.obs] |
shared_ptr operator*() should not be noexcept |
No |
2 |
|
2070 |
Open |
20.8.2.2.6 [util.smartptr.shared.create] |
allocate_shared should use allocator_traits<A>::construct |
Yes |
2 |
|
2179 |
Open |
20.8.2.5 [util.smartptr.enab] |
enable_shared_from_this and construction from raw pointers |
No |
3 |
|
2445 |
SG1 |
20.8.2.6 [util.smartptr.shared.atomic] |
"Stronger" memory ordering |
No |
|
|
2486 |
New |
20.9.2 [func.require] |
mem_fn() should be required to use perfect forwarding |
Yes |
|
|
2219 |
Open |
20.9.2 [func.require] |
INVOKE-ing a pointer to member with a reference_wrapper as the object expression |
Yes |
2 |
|
2435 |
New |
20.9.4.4 [refwrap.invoke] |
reference_wrapper::operator()'s Remark should be deleted |
Yes |
4 |
|
2450 |
New |
20.9.6 [comparisons] |
(greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers |
Yes |
2 |
|
2491 |
New |
20.9.6 [comparisons] |
std::less<T*> in constant expression |
No |
|
|
2487 |
New |
20.9.10.3 [func.bind.bind] |
bind() should be const-overloaded, not cv-overloaded |
Yes |
|
|
2488 |
New |
20.9.10.4 [func.bind.place] |
Placeholders should be allowed and encouraged to be constexpr |
Yes |
|
|
2489 |
New |
20.9.11 [func.memfn] |
mem_fn() should be noexcept |
Yes |
|
|
2370 |
New |
20.9.12.2 [func.wrap.func] |
Operations involving type-erased allocators should not be noexcept in std::function |
Yes |
1 |
|
2385 |
New |
20.9.12.2 [func.wrap.func] |
function::assign allocator argument doesn't make sense |
Yes |
2 |
|
2420 |
New |
20.9.12.2 [func.wrap.func] |
function<void(ArgTypes...)> does not discard the return value of the target object |
Yes |
1 |
|
2062 |
Open |
20.9.12.2 [func.wrap.func] |
Effect contradictions w/o no-throw guarantee of std::function swaps |
No |
2 |
|
2393 |
Open |
20.9.12.2 [func.wrap.func] |
std::function's Callable definition is broken |
Yes |
2 |
|
2386 |
New |
20.9.12.2.1 [func.wrap.func.con] |
function::operator= handles allocators incorrectly |
Yes |
1 |
|
2119 |
Open |
20.9.13 [unord.hash] |
Missing hash specializations for extended integer types |
Yes |
3 |
|
1025 |
LEWG |
20.9.13 [unord.hash] |
The library should provide more specializations for std::hash |
No |
|
|
1317 |
LEWG |
20.9.13 [unord.hash] |
make_hash |
Yes |
|
|
2290 |
New |
20.10 [meta] |
Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 |
Yes |
3 |
|
1120 |
LEWG |
20.10 [meta] |
New type trait - remove_all |
No |
|
|
2040 |
LEWG |
20.10 [meta] |
Missing type traits related to is_convertible |
Yes |
|
|
2452 |
Core |
20.10 [meta] |
is_constructible, etc. and default arguments |
No |
|
|
2336 |
New |
20.10.4.3 [meta.unary.prop] |
is_trivially_constructible/is_trivially_assignable traits are always false |
Yes |
3 |
|
2358 |
New |
20.10.4.3 [meta.unary.prop] |
Apparently-bogus definition of is_empty type trait |
No |
3 |
|
2367 |
New |
20.10.4.3 [meta.unary.prop] |
pair and tuple are not correctly implemented for is_constructible with no args |
Yes |
3 |
|
2077 |
Open |
20.10.4.3 [meta.unary.prop] |
Further incomplete constraints for type traits |
No |
3 |
|
2116 |
Open |
20.10.4.3 [meta.unary.prop] |
std::swap noexcept(what?) |
No |
3 |
|
2101 |
Open |
20.10.7 [meta.trans] |
Some transformation types can produce impossible types |
Yes |
3 |
|
2460 |
New |
20.10.7.6 [meta.trans.other] |
LWG issue 2408 and value categories |
No |
2 |
|
2465 |
New |
20.10.7.6 [meta.trans.other] |
SFINAE-friendly common_type is nearly impossible to specialize
correctly and regresses key functionality |
No |
2 |
|
2397 |
Open |
20.10.7.6 [meta.trans.other] |
map<K, V>::emplace and explicit V constructors |
No |
1 |
|
1121 |
LEWG |
20.11.4 [ratio.arithmetic] |
Support for multiple arguments |
Yes |
|
|
2383 |
Open |
20.12.5.8 [time.duration.literals] |
Overflow cannot be ill-formed for chrono::duration integer literals |
No |
3 |
|
935 |
LEWG |
20.12.7 [time.clock] |
clock error handling needs to be specified |
Yes |
|
|
2476 |
New |
20.13.1 [allocator.adaptor.syn] |
scoped_allocator_adaptor is not assignable |
Yes |
|
|
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 |
|
|
760 |
Tentatively NAD |
23.2 [container.requirements] |
The emplace issue |
Yes |
2 |
|
2261 |
New |
23.2 [container.requirements] |
Are containers required to use their 'pointer' type internally? |
No |
2 |
|
2448 |
Tentatively Ready |
23.2.1 [container.requirements.general] |
Non-normative Container destructor specification |
Yes |
0 |
|
2269 |
New |
23.2.1 [container.requirements.general] |
Container iterators and argument-dependent lookup |
No |
4 |
|
2218 |
Open |
23.2.1 [container.requirements.general] |
Unclear how containers use allocator_traits::construct() |
Yes |
3 |
|
2254 |
Open |
23.2.1 [container.requirements.general] |
[arrays.ts] Is dynarray an allocator-aware container? |
Yes |
3 |
|
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 |
|
|
2206 |
Open |
23.2.3 [sequence.reqmts] |
Inaccuracy in initializer_list constructor requirements |
No |
3 |
|
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 |
|
2215 |
Open |
23.2.4 [associative.reqmts] |
(unordered) associative container functors should be CopyConstructible |
No |
3 |
|
2227 |
Open |
23.2.4 [associative.reqmts] |
Stateful comparison objects in associative containers |
Yes |
3 |
|
1041 |
LEWG |
23.2.4 [associative.reqmts] |
Add associative/unordered container functions that allow to extract elements |
Yes |
|
|
2430 |
LEWG |
23.2.4 [associative.reqmts] |
Heterogeneous container lookup should be enabled using meta-function instead of nested type |
No |
|
|
2436 |
LEWG |
23.2.4 [associative.reqmts] |
Comparators for associative containers should always be CopyConstructible |
Yes |
2 |
|
1175 |
Open |
23.2.5 [unord.req] |
unordered complexity |
Yes |
3 |
|
2156 |
Open |
23.2.5 [unord.req] |
Unordered containers' reserve(n) reserves for n-1 elements |
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.2 [array] |
array<array<int, 3>, 4> should be layout-compatible with int[4][3] |
No |
3 |
|
851 |
LEWG |
23.3.2 [array] |
simplified array construction |
Yes |
|
|
2443 |
LEWG |
23.3.2 [array] |
std::array member functions should be constexpr |
No |
|
|
2310 |
Open |
23.3.2.1 [array.overview] |
Public exposition only member in std::array |
No |
4 |
|
2157 |
Open |
23.3.2.8 [array.zero] |
How does std::array<T,0> initialization work when T is not default-constructible? |
Yes |
3 |
|
2477 |
New |
23.3.3.4 [deque.modifiers] |
Inconsistency of wordings in std::vector::erase() and std::deque::erase() |
Yes |
|
|
1184 |
LEWG |
23.3.6 [vector] |
Feature request: dynamic bitset |
No |
|
|
2158 |
New |
23.3.6.3 [vector.capacity] |
Conditional copy/move in std::vector |
No |
2 |
|
2223 |
Open |
23.3.6.3 [vector.capacity] |
shrink_to_fit effect on iterator validity |
Yes |
2 |
|
2164 |
New |
23.3.6.5 [vector.modifiers] |
What are the semantics of vector.emplace(vector.begin(), vector.back())? |
No |
2 |
|
2256 |
New |
23.3.6.5 [vector.modifiers] |
On vector iterator invalidation |
No |
3 |
|
2449 |
New |
23.3.6.5 [vector.modifiers] |
vector::insert invalidates end()? |
No |
3 |
|
1422 |
LEWG |
23.3.7 [vector.bool] |
vector<bool> iterators are not random access |
No |
|
|
2161 |
New |
23.4 [associative] |
const equivalence of std::map |
No |
2 |
|
839 |
LEWG |
23.4 [associative] |
Maps and sets missing splice operation |
No |
|
|
2059 |
Tentatively Ready |
23.4.4 [map] |
C++0x ambiguity problem with map::erase |
Yes |
3 |
|
2274 |
Open |
23.4.4.3 [map.access] |
Does map::operator[] value-initialize or default-insert a missing element? |
Yes |
3 |
|
2469 |
Open |
23.4.4.3 [map.access] |
Wrong specification of Requires clause of operator[] for map and unordered_map |
Yes |
3 |
|
2464 |
New |
23.4.4.4 [map.modifiers] |
try_emplace and insert_or_assign misspecified |
Yes |
2 |
|
2076 |
Tentatively Ready |
23.4.6.2 [set.cons] |
Bad CopyConstructible requirement in set constructors |
Yes |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
423 |
LEWG |
27 [input.output] |
effects of negative streamsize in iostreams |
Yes |
|
|
2462 |
New |
27.5.3 [ios.base] |
std::ios_base::failure is overspecified |
Yes |
3 |
|
2214 |
Open |
27.5.5.2 [basic.ios.cons] |
Clarify basic_ios::init call restrictions |
Yes |
4 |
|
255 |
LEWG |
27.6.3 [streambuf] |
Why do basic_streambuf<>::pbump() and gbump() take an int? |
Yes |
|
|
2349 |
New |
27.7.2.2.1 [istream.formatted.reqmts] |
Clarify input/output function rethrow behavior |
Yes |
3 |
|
2243 |
New |
27.7.2.3 [istream.unformatted] |
istream::putback problem |
No |
3 |
|
2244 |
New |
27.7.2.3 [istream.unformatted] |
Issue on basic_istream::seekg |
Yes |
3 |
|
2328 |
Open |
27.7.2.6 [istream.rvalue] |
Rvalue stream extraction should use perfect forwarding |
Yes |
3 |
|
2221 |
New |
27.7.3 [output.streams] |
No formatted output operator for nullptr |
No |
3 |
|
2342 |
New |
27.7.3.1 [ostream] |
User conversion to wchar_t const* or to wchar_t not invoked for operator<< |
Yes |
4 |
|
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 |
|
2473 |
New |
27.9.1.5 [filebuf.virtuals] |
basic_filebuf's relation to C FILE semantics |
Yes |
|
|
1150 |
LEWG |
27.9.1.14 [fstream] |
wchar_t, char16_t and char32_t filenames |
No |
|
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2379 |
SG1 |
30.2.3 [thread.req.native] |
Obtaining native handle of the current thread |
Yes |
|
|
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 |
|
|
2309 |
SG1 |
30.4.1.2 [thread.mutex.requirements.mutex] |
mutex::lock() should not throw device_or_resource_busy |
Yes |
|
|
2363 |
SG1 |
30.4.1.4.1 [thread.sharedtimedmutex.class] |
Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] |
Yes |
|
|
2442 |
SG1 |
30.4.4.2 [thread.once.callonce] |
call_once() shouldn't DECAY_COPY() |
Yes |
|
|
1499 |
LEWG |
30.5 [thread.condition] |
Condition variables preclude wakeup optimization |
No |
|
|
2276 |
SG1 |
30.6 [futures] |
Missing requirement on std::promise::set_exception |
No |
|
|
2095 |
Open |
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 |
|
|
2202 |
Open |
30.6.8 [futures.async] |
Missing allocator support by async |
No |
4 |
|
2245 |
SG1 |
30.6.9.1 [futures.task.members] |
packaged_task::reset() memory allocation |
No |
|
|
2407 |
SG1 |
30.6.9.1 [futures.task.members] |
packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor
explicit |
Yes |
|
|