| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 385 |
NAD |
17 [library] |
Does call by value imply the CopyConstructible requirement? |
Yes |
|
| 625 |
Pending NAD Editorial |
17 [library] |
mixed up Effects and Returns clauses |
Yes |
|
| 182 |
WP |
17 [library] |
Ambiguous references to size_t |
Yes |
|
| 230 |
WP |
17 [library] |
Assignable specified without also specifying CopyConstructible |
Yes |
|
| 336 |
WP |
17 [library] |
Clause 17 lack of references to deprecated headers |
Yes |
|
| 424 |
Pending NAD Editorial |
17.3.1.1 [structure.summary] |
normative notes |
Yes |
|
| 663 |
NAD |
17.3.1.3 [structure.specifications] |
Complexity Requirements |
Yes |
|
| 626 |
NAD Editorial |
17.3.1.3 [structure.specifications] |
new Remark clauses not documented |
Yes |
|
| 222 |
TC |
17.3.1.3 [structure.specifications] |
Are throw clauses necessary if a throw is already implied by the effects clause? |
Yes |
|
| 262 |
WP |
17.3.2.1.2 [bitmask.types] |
Bitmask operator ~ specified incorrectly |
Yes |
|
| 229 |
WP |
17.4.1.1 [contents] |
Unqualified references of other library entities |
Yes |
|
| 310 |
WP |
17.4.1.2 [headers] |
Is errno a macro? |
Yes |
|
| 456 |
WP |
17.4.1.2 [headers] |
Traditional C header files are overspecified |
Yes |
|
| 465 |
WP |
17.4.1.2 [headers] |
Contents of <ciso646> |
Yes |
|
| 657 |
NAD |
17.4.2.1 [using.headers] |
unclear requirement about header inclusion |
Yes |
|
| 1 |
TC |
17.4.2.2 [using.linkage] |
C library linkage editing oversight |
Yes |
|
| 120 |
WP |
17.4.3.1 [reserved.names] |
Can an implementor add specializations? |
Yes |
|
| 226 |
WP |
17.4.3.1 [reserved.names] |
User supplied specializations or overloads of namespace std function templates |
Yes |
|
| 232 |
WP |
17.4.3.1 [reserved.names] |
"depends" poorly defined in 17.4.3.1 |
Yes |
|
| 422 |
WP |
17.4.3.1 [reserved.names] |
explicit specializations of member functions of class templates |
Yes |
|
| 294 |
WP |
17.4.3.1.1 [macro.names] |
User defined macros and standard headers |
Yes |
|
| 404 |
WP |
17.4.3.4 [replacement.functions] |
May a replacement allocation function be declared inline? |
Yes |
|
| 611 |
WP |
17.4.3.6 [res.on.functions] |
Standard library templates and incomplete types |
Yes |
|
| 529 |
NAD Editorial |
17.4.3.8 [res.on.required] |
The standard encourages redundant and confusing preconditions |
Yes |
|
| 94 |
NAD |
17.4.4 [conforming] |
May library implementors add template parameters to Standard Library classes? |
Yes |
|
| 147 |
TC |
17.4.4.3 [global.functions] |
Library Intro refers to global functions that aren't global |
Yes |
|
| 225 |
WP |
17.4.4.3 [global.functions] |
std:: algorithms use of other unqualified algorithms |
Yes |
|
| 95 |
NAD |
17.4.4.4 [member.functions] |
Members added by the implementation |
Yes |
|
| 372 |
NAD |
17.4.4.8 [res.on.exception.handling] |
Inconsistent description of stdlib exceptions |
Yes |
|
| 119 |
TC |
17.4.4.8 [res.on.exception.handling] |
Should virtual functions be allowed to strengthen the exception specification? |
Yes |
|
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 306 |
WP |
18.1 [support.types] |
offsetof macro and non-POD types |
Yes |
|
| 449 |
WP |
18.1 [support.types] |
Library Issue 306 Goes Too Far |
Yes |
|
| 201 |
WP |
18.2.1 [limits] |
Numeric limits terminology wrong |
Yes |
|
| 559 |
WP |
18.2.1 [limits] |
numeric_limits<const T> |
Yes |
|
| 612 |
Ready |
18.2.1.2 [numeric.limits.members] |
numeric_limits::is_modulo insufficiently defined |
Yes |
|
| 205 |
NAD |
18.2.1.2 [numeric.limits.members] |
numeric_limits unclear on how to determine floating point types |
Yes |
|
| 591 |
NAD Editorial |
18.2.1.2 [numeric.limits.members] |
Misleading "built-in |
Yes |
|
| 497 |
WP |
18.2.1.2 [numeric.limits.members] |
meaning of numeric_limits::traps for floating point types |
Yes |
|
| 554 |
NAD |
18.2.1.5 [numeric.special] |
Problem with lwg DR 184 numeric_limits<bool> |
Yes |
|
| 184 |
WP |
18.2.1.5 [numeric.special] |
numeric_limits<bool> wording problems |
Yes |
|
| 613 |
WP |
18.2.1.5 [numeric.special] |
max_digits10 missing from numeric_limits |
Yes |
|
| 416 |
WP |
18.2.2 [c.limits] |
definitions of XXX_MIN and XXX_MAX macros in climits |
Yes |
|
| 557 |
Pending NAD Editorial |
18.3 [cstdint] |
TR1: div(_Longlong, _Longlong) vs div(intmax_t, intmax_t) |
Yes |
|
| 593 |
WP |
18.3 [cstdint] |
__STDC_CONSTANT_MACROS |
Yes |
|
| 553 |
NAD Editorial |
18.3.1 [cstdint.syn] |
very minor editorial change intptr_t / uintptr_t |
Yes |
|
| 3 |
TC |
18.4 [support.start.term] |
Atexit registration during atexit() call is not described |
Yes |
|
| 9 |
TC |
18.5.1 [new.delete] |
Operator new(0) calls should not yield the same pointer |
Yes |
|
| 627 |
NAD |
18.5.1.1 [new.delete.single] |
Low memory and exceptions |
Yes |
|
| 206 |
WP |
18.5.1.1 [new.delete.single] |
operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced |
Yes |
|
| 319 |
WP |
18.5.1.1 [new.delete.single] |
Storage allocation wording confuses "Required behavior", "Requires" |
Yes |
|
| 298 |
WP |
18.5.1.2 [new.delete.array] |
::operator delete[] requirement incorrect/insufficient |
Yes |
|
| 196 |
Dup |
18.5.1.3 [new.delete.placement] |
Placement new example has alignment problems |
Yes |
114 |
| 114 |
TC |
18.5.1.3 [new.delete.placement] |
Placement forms example in error twice |
Yes |
196 |
| 471 |
Ready |
18.6.1 [type.info] |
result of what() implementation-defined |
Yes |
|
| 108 |
TC |
18.6.1 [type.info] |
Lifetime of exception::what() return unspecified |
Yes |
|
| 269 |
NAD |
18.7 [support.exception] |
cstdarg and unnamed parameters |
Yes |
|
| 70 |
TC |
18.7 [support.exception] |
Uncaught_exception() missing throw() specification |
Yes |
|
| 266 |
WP |
18.7.2.1 [bad.exception] |
bad_exception::~bad_exception() missing Effects clause |
Yes |
|
| 433 |
NAD |
18.7.2.4 [unexpected] |
Contradiction in specification of unexpected() |
Yes |
|
| 313 |
NAD |
18.7.3.3 [terminate] |
set_terminate and set_unexpected question |
Yes |
|
| 314 |
NAD |
18.7.3.3 [terminate] |
Is the stack unwound when terminate() is called? |
Yes |
|
| 744 |
Ready |
18.7.5 [propagation] |
What is the lifetime of an exception pointed to by an exception_ptr? |
Yes |
|
| 746 |
Ready |
18.7.5 [propagation] |
current_exception may fail with bad_alloc |
Yes |
|
| 707 |
NAD |
18.7.5 [propagation] |
null pointer constant for exception_ptr |
Yes |
|
| 745 |
NAD |
18.7.5 [propagation] |
copy_exception API slices. |
Yes |
|
| 619 |
WP |
18.8 [support.runtime] |
Longjmp wording problem |
Yes |
|
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 312 |
WP |
20 [utilities] |
Table 27 is missing headers |
Yes |
|
| 724 |
Open |
20.1.1 [utility.arg.requirements] |
DefaultConstructible is not defined |
Yes |
|
| 742 |
Open |
20.1.1 [utility.arg.requirements] |
Enabling swap for proxy iterators |
Yes |
|
| 753 |
Open |
20.1.1 [utility.arg.requirements] |
Move constructor in draft |
Yes |
|
| 672 |
Ready |
20.1.1 [utility.arg.requirements] |
Swappable requirements need updating |
Yes |
|
| 390 |
NAD Editorial |
20.1.1 [utility.arg.requirements] |
CopyConstructible requirements too strict |
Yes |
|
| 594 |
Pending NAD Editorial |
20.1.1 [utility.arg.requirements] |
Disadvantages of defining Swappable in terms of CopyConstructible and Assignable |
Yes |
|
| 752 |
New |
20.1.2 [allocator.requirements] |
Allocator complexity requirement |
Yes |
|
| 431 |
Open |
20.1.2 [allocator.requirements] |
Swapping containers with unequal allocators |
No |
|
| 580 |
Open |
20.1.2 [allocator.requirements] |
unused allocator members |
Yes |
479 |
| 635 |
Open |
20.1.2 [allocator.requirements] |
domain of allocator::address |
Yes |
|
| 12 |
NAD |
20.1.2 [allocator.requirements] |
Way objects hold allocators unclear |
Yes |
|
| 197 |
NAD |
20.1.2 [allocator.requirements] |
max_size() underspecified |
Yes |
|
| 277 |
NAD |
20.1.2 [allocator.requirements] |
Normative encouragement in allocator requirements unclear |
Yes |
|
| 487 |
NAD |
20.1.2 [allocator.requirements] |
Allocator::construct is too limiting |
Yes |
|
| 560 |
NAD |
20.1.2 [allocator.requirements] |
User-defined allocators without default constructor |
Yes |
|
| 199 |
TC |
20.1.2 [allocator.requirements] |
What does allocate(0) return? |
Yes |
|
| 258 |
WP |
20.1.2 [allocator.requirements] |
Missing allocator requirement |
Yes |
|
| 274 |
WP |
20.1.2 [allocator.requirements] |
a missing/impossible allocator requirement |
Yes |
|
| 401 |
WP |
20.1.2 [allocator.requirements] |
incorrect type casts in table 32 in lib.allocator.requirements |
Yes |
|
| 402 |
WP |
20.1.2 [allocator.requirements] |
wrong new expression in [some_]allocator::construct |
Yes |
|
| 808 |
New |
20.2.2 [forward] |
[forward] incorrect redundant specification |
Yes |
|
| 700 |
WP |
20.2.2 [forward] |
N1856 defines struct identity |
Yes |
|
| 811 |
New |
20.2.3 [pairs] |
pair of pointers no longer works with literal 0 |
No |
|
| 348 |
Dup |
20.2.3 [pairs] |
Minor issue with std::pair operator< |
Yes |
532 |
| 296 |
NAD |
20.2.3 [pairs] |
Missing descriptions and requirements of pair operators |
Yes |
|
| 353 |
NAD Editorial |
20.2.3 [pairs] |
std::pair missing template assignment |
Yes |
|
| 482 |
NAD Editorial |
20.2.3 [pairs] |
Swapping pairs |
Yes |
|
| 181 |
TC |
20.2.3 [pairs] |
make_pair() unintended behavior |
Yes |
|
| 265 |
WP |
20.2.3 [pairs] |
std::pair::pair() effects overly restrictive |
Yes |
|
| 706 |
WP |
20.2.3 [pairs] |
make_pair() should behave as make_tuple() wrt. reference_wrapper() |
Yes |
|
| 522 |
Open |
20.3 [tuple] |
Tuple doesn't define swap |
Yes |
|
| 801 |
Open |
20.3 [tuple] |
tuple and pair trivial members |
No |
|
| 807 |
New |
20.3.1.1 [tuple.cnstr] |
tuple construction should not fail unless its element's construction fails |
Yes |
|
| 775 |
Ready |
20.3.1.3 [tuple.helper] |
Tuple indexing should be unsigned? |
Yes |
|
| 532 |
Pending NAD Editorial |
20.3.1.5 [tuple.rel] |
Tuple comparison |
Yes |
348 |
| 719 |
Open |
20.4 [meta] |
std::is_literal type traits should be provided |
Yes |
|
| 590 |
NAD Editorial |
20.4 [meta] |
Type traits implementation latitude should be removed for C++0x |
Yes |
|
| 525 |
NAD Editorial |
20.4.4 [meta.unary] |
type traits definitions not clear |
Yes |
|
| 747 |
Open |
20.4.4.3 [meta.unary.prop] |
We have 3 separate type traits to identify classes supporting no-throw operations |
No |
|
| 749 |
Ready |
20.4.4.3 [meta.unary.prop] |
Currently has_nothrow_copy_constructor<T>::value is true if T has 'a' nothrow copy constructor. |
Yes |
|
| 748 |
NAD |
20.4.4.3 [meta.unary.prop] |
The is_abstract type trait is defined by reference to 10.4. |
Yes |
|
| 750 |
Open |
20.4.5 [meta.rel] |
The current definition for is_convertible requires that the type be
implicitly convertible, so explicit constructors are ignored. |
No |
|
| 705 |
WP |
20.4.7 [meta.trans.other] |
type-trait decay incompletely specified |
Yes |
|
| 351 |
NAD Editorial |
20.5 [function.objects] |
unary_negate and binary_negate: struct or class? |
Yes |
|
| 658 |
NAD Editorial |
20.5 [function.objects] |
Two unspecified function comparators in [function.objects] |
Yes |
|
| 185 |
WP |
20.5 [function.objects] |
Questionable use of term "inline" |
Yes |
|
| 660 |
WP |
20.5 [function.objects] |
Missing Bitwise Operations |
Yes |
|
| 257 |
NAD |
20.5.3 [base] |
STL functional object and iterator inheritance. |
Yes |
|
| 480 |
NAD |
20.5.3 [base] |
unary_function and binary_function should have protected nonvirtual destructors |
Yes |
|
| 501 |
NAD |
20.5.3 [base] |
Proposal: strengthen guarantees of lib.comparisons |
Yes |
|
| 521 |
WP |
20.5.5 [refwrap] |
Garbled requirements for argument_type in reference_wrapper |
Yes |
|
| 688 |
Open |
20.5.5.1 [refwrap.const] |
reference_wrapper, cref unsafe, allow binding to rvalues |
Yes |
|
| 689 |
WP |
20.5.5.1 [refwrap.const] |
reference_wrapper constructor overly constrained |
Yes |
|
| 284 |
WP |
20.5.7 [comparisons] |
unportable example in 20.3.7, p6 |
Yes |
|
| 297 |
WP |
20.5.8 [logical.operations] |
const_mem_fun_t<>::argument_type should be const T* |
Yes |
|
| 520 |
WP |
20.5.11.1 [func.bind] |
Result_of and pointers to data members |
Yes |
|
| 527 |
WP |
20.5.11.1.3 [func.bind.bind] |
tr1::bind has lost its Throws clause |
Yes |
|
| 770 |
Ready |
20.5.15 [func.wrap] |
std::function should use rvalue swap |
Yes |
|
| 769 |
New |
20.5.15.2 [func.wrap.func] |
std::function should use nullptr_t instead of "unspecified-null-pointer-type" |
Yes |
|
| 610 |
WP |
20.5.15.2.1 [func.wrap.func.con] |
Suggested non-normative note for C++0x |
Yes |
|
| 633 |
NAD Editorial |
20.5.15.2.5 [func.wrap.func.targ] |
Return clause mentions undefined "type()" |
Yes |
|
| 350 |
Dup |
20.6.1.1 [allocator.members] |
allocator<>::address |
Yes |
634 |
| 234 |
WP |
20.6.1.1 [allocator.members] |
Typos in allocator definition |
Yes |
|
| 400 |
WP |
20.6.1.1 [allocator.members] |
redundant type cast in lib.allocator.members |
Yes |
|
| 578 |
WP |
20.6.1.1 [allocator.members] |
purpose of hint to allocator::allocate() |
Yes |
|
| 634 |
WP |
20.6.1.1 [allocator.members] |
allocator.address() doesn't work for types overloading operator& |
Yes |
350 |
| 425 |
WP |
20.6.3 [temporary.buffer] |
return value of std::get_temporary_buffer |
Yes |
|
| 582 |
Open |
20.6.4.1 [uninitialized.copy] |
specialized algorithms and volatile storage |
Yes |
|
| 754 |
Pending NAD Editorial |
20.6.4.1 [uninitialized.copy] |
Ambiguous return clause for std::uninitialized_copy |
Yes |
|
| 762 |
Open |
20.6.5 [unique.ptr] |
std::unique_ptr requires complete type? |
Yes |
|
| 673 |
Ready |
20.6.5 [unique.ptr] |
unique_ptr update |
Yes |
|
| 686 |
NAD |
20.6.5.2.4 [unique.ptr.single.observers] |
Unique_ptr and shared_ptr fail to specify non-convertibility to int for unspecified-bool-type |
Yes |
|
| 806 |
New |
20.6.5.2.5 [unique.ptr.single.modifiers] |
unique_ptr::reset effects incorrect, too permissive |
Yes |
|
| 740 |
Ready |
20.6.5.4 [unique.ptr.compiletime] |
Please remove *_ptr<T[N]> |
Yes |
|
| 813 |
New |
20.6.6.2 [util.smartptr.shared] |
"empty" undefined for shared_ptr |
No |
|
| 710 |
Ready |
20.6.6.2 [util.smartptr.shared] |
Missing postconditions |
Yes |
|
| 758 |
Ready |
20.6.6.2 [util.smartptr.shared] |
shared_ptr and nullptr |
Yes |
|
| 541 |
WP |
20.6.6.2 [util.smartptr.shared] |
shared_ptr template assignment and void |
Yes |
|
| 674 |
WP |
20.6.6.2 [util.smartptr.shared] |
shared_ptr interface changes for consistency with N1856 |
Yes |
|
| 687 |
WP |
20.6.6.2.1 [util.smartptr.shared.const] |
shared_ptr conversion constructor not constrained |
Yes |
|
| 575 |
WP |
20.6.6.2.2 [util.smartptr.shared.dest] |
the specification of ~shared_ptr is MT-unfriendly, makes implementation assumptions |
Yes |
|
| 711 |
Review |
20.6.6.2.5 [util.smartptr.shared.obs] |
Contradiction in empty shared_ptr |
Yes |
|
| 540 |
WP |
20.6.6.2.5 [util.smartptr.shared.obs] |
shared_ptr<void>::operator*() |
Yes |
|
| 542 |
WP |
20.6.6.2.5 [util.smartptr.shared.obs] |
shared_ptr observers |
Yes |
|
| 743 |
Ready |
20.6.6.2.9 [util.smartptr.shared.spec] |
rvalue swap for shared_ptr |
Yes |
|
| 533 |
DR |
20.6.6.2.11 [util.smartptr.getdeleter] |
typo in 2.2.3.10/1 |
Yes |
|
| 741 |
NAD |
20.6.6.2.11 [util.smartptr.getdeleter] |
Const-incorrect get_deleter function for shared_ptr |
Yes |
|
| 545 |
WP |
20.6.6.2.11 [util.smartptr.getdeleter] |
When is a deleter deleted? |
Yes |
|
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 343 |
Open |
21 [strings] |
Unspecified library header dependencies |
Yes |
|
| 85 |
NAD |
21 [strings] |
String char types |
Yes |
|
| 7 |
TC |
21 [strings] |
String clause minor problems |
Yes |
|
| 570 |
Open |
21.1 [char.traits] |
Request adding additional explicit specializations of char_traits |
No |
|
| 335 |
WP |
21.1.1 [char.traits.require] |
minor issue with char_traits, table 37 |
Yes |
|
| 352 |
WP |
21.1.2 [char.traits.typedefs] |
missing fpos requirements |
Yes |
|
| 709 |
Pending NAD Editorial |
21.1.3 [char.traits.specializations] |
char_traits::not_eof has wrong signature |
Yes |
|
| 467 |
WP |
21.1.3.1 [char.traits.specializations.char] |
char_traits::lt(), compare(), and memcmp() |
Yes |
|
| 57 |
TC |
21.1.3.4 [char.traits.specializations.wchar.t] |
Mistake in char_traits |
Yes |
|
| 614 |
Open |
21.3 [basic.string] |
std::string allocator requirements still inconsistent |
No |
|
| 718 |
Open |
21.3 [basic.string] |
basic_string is not a sequence |
Yes |
|
| 4 |
NAD |
21.3 [basic.string] |
Basic_string size_type and difference_type should be implementation defined |
Yes |
|
| 42 |
TC |
21.3 [basic.string] |
String ctors specify wrong default allocator |
Yes |
|
| 83 |
TC |
21.3 [basic.string] |
String::npos vs. string::max_size() |
Yes |
89 |
| 209 |
TC |
21.3 [basic.string] |
basic_string declarations inconsistent |
Yes |
|
| 263 |
WP |
21.3 [basic.string] |
Severe restriction on basic_string reference counting |
Yes |
|
| 530 |
WP |
21.3 [basic.string] |
Must elements of a string be contiguous? |
Yes |
|
| 534 |
WP |
21.3 [basic.string] |
Missing basic_string members |
Yes |
|
| 466 |
NAD |
21.3.1 [string.require] |
basic_string ctor should prevent null pointer error |
Yes |
|
| 86 |
TC |
21.3.1 [string.require] |
String constructors don't describe exceptions |
Yes |
|
| 301 |
WP |
21.3.1 [string.require] |
basic_string template ctor effects clause omits allocator argument |
Yes |
|
| 104 |
NAD |
21.3.4 [string.capacity] |
Description of basic_string::operator[] is unclear |
Yes |
|
| 259 |
WP |
21.3.4 [string.capacity] |
basic_string::operator[] and const correctness |
Yes |
|
| 84 |
NAD |
21.3.5 [string.access] |
Ambiguity with string::insert() |
Yes |
|
| 89 |
Dup |
21.3.6.4 [string::insert] |
Missing throw specification for string::insert() and string::replace() |
Yes |
83 |
| 88 |
NAD |
21.3.6.4 [string::insert] |
Inconsistency between string::insert() and string::append() |
Yes |
|
| 377 |
NAD |
21.3.6.4 [string::insert] |
basic_string::insert and length_error |
Yes |
|
| 141 |
TC |
21.3.6.4 [string::insert] |
basic_string::find_last_of, find_last_not_of say pos instead of xpos |
Yes |
|
| 27 |
TC |
21.3.6.5 [string::erase] |
String::erase(range) yields wrong iterator |
Yes |
|
| 428 |
WP |
21.3.6.5 [string::erase] |
string::erase(iterator) validity |
Yes |
|
| 368 |
NAD Editorial |
21.3.6.6 [string::replace] |
basic_string::replace has two "Throws" paragraphs |
Yes |
|
| 87 |
Dup |
21.3.6.8 [string::swap] |
Error in description of string::compare() |
Yes |
5 |
| 5 |
TC |
21.3.6.8 [string::swap] |
String::compare specification questionable |
Yes |
87 |
| 403 |
WP |
21.3.6.8 [string::swap] |
basic_string::swap should not throw exceptions |
Yes |
|
| 535 |
WP |
21.3.6.8 [string::swap] |
std::string::swap specification poorly worded |
Yes |
|
| 67 |
Dup |
21.3.8.9 [string.io] |
Setw useless for strings |
Yes |
25 |
| 25 |
TC |
21.3.8.9 [string.io] |
String operator<< uses width() value wrong |
Yes |
67 |
| 90 |
TC |
21.3.8.9 [string.io] |
Incorrect description of operator >> for strings |
Yes |
|
| 211 |
TC |
21.3.8.9 [string.io] |
operator>>(istream&, string&) doesn't set failbit |
Yes |
|
| 91 |
WP |
21.3.8.9 [string.io] |
Description of operator>> and getline() for string<> might cause endless loop |
Yes |
|
| 435 |
WP |
21.3.8.9 [string.io] |
bug in DR 25 |
Yes |
|
| 586 |
WP |
21.3.8.9 [string.io] |
string inserter not a formatted function |
Yes |
|
| 772 |
New |
21.4 [string.conversions] |
Impossible return clause in [string.conversions] |
Yes |
|
| 771 |
Review |
21.4 [string.conversions] |
Impossible throws clause in [string.conversions] |
Yes |
|
| 615 |
NAD Editorial |
21.5 [c.strings] |
Inconsistencies in Section 21.4 |
Yes |
|
| 345 |
WP |
21.5 [c.strings] |
type tm in <cwchar> |
Yes |
|
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 708 |
Open |
22 [localization] |
Locales need to be per thread and updated for POSIX changes |
No |
|
| 317 |
WP |
22 [localization] |
Instantiation vs. specialization of facets |
Yes |
|
| 495 |
WP |
22 [localization] |
Clause 22 template parameter requirements |
Yes |
|
| 378 |
Dup |
22.1.1 [locale] |
locale immutability and locale::operator=() |
Yes |
31 |
| 330 |
NAD |
22.1.1 [locale] |
Misleading "exposition only" value in class locale definition |
Yes |
|
| 31 |
TC |
22.1.1 [locale] |
Immutable locale values |
Yes |
378 |
| 37 |
TC |
22.1.1 [locale] |
Leftover "global" reference |
Yes |
|
| 137 |
TC |
22.1.1 [locale] |
Do use_facet and has_facet look in the global locale? |
Yes |
|
| 268 |
WP |
22.1.1 [locale] |
Typo in locale synopsis |
Yes |
|
| 360 |
WP |
22.1.1 [locale] |
locale mandates inefficient implementation |
Yes |
|
| 502 |
Open |
22.1.1.1.1 [locale.category] |
Proposition: Clarification of the interaction between a facet and an iterator |
Yes |
|
| 447 |
Dup |
22.1.1.1.1 [locale.category] |
Wrong template argument for time facets |
Yes |
327 |
| 121 |
NAD |
22.1.1.1.1 [locale.category] |
Detailed definition for ctype<wchar_t> specialization |
Yes |
|
| 21 |
TC |
22.1.1.1.1 [locale.category] |
Codecvt_byname<> instantiations |
Yes |
|
| 30 |
TC |
22.1.1.1.1 [locale.category] |
Wrong header for LC_* |
Yes |
|
| 327 |
WP |
22.1.1.1.1 [locale.category] |
Typo in time_get facet in table 52 |
Yes |
447 |
| 340 |
WP |
22.1.1.1.1 [locale.category] |
interpretation of has_facet<Facet>(loc) |
Yes |
|
| 347 |
WP |
22.1.1.1.1 [locale.category] |
locale::category and bitmask requirements |
Yes |
|
| 436 |
WP |
22.1.1.1.2 [locale.facet] |
are cv-qualified facet types valid facets? |
Yes |
|
| 452 |
NAD |
22.1.1.3 [locale.members] |
locale::combine should be permitted to generate a named locale |
Yes |
|
| 14 |
TC |
22.1.1.3 [locale.members] |
Locale::combine should be const |
Yes |
|
| 15 |
TC |
22.1.1.3 [locale.members] |
Locale::name requirement inconsistent |
Yes |
|
| 8 |
TC |
22.1.1.5 [locale.statics] |
Locale::global lacks guarantee |
Yes |
|
| 38 |
TC |
22.1.2 [locale.global.templates] |
Facet definition incomplete |
Yes |
|
| 391 |
WP |
22.1.3.2 [conversions] |
non-member functions specified as const |
Yes |
|
| 721 |
New |
22.1.3.2.2 [conversions.string] |
wstring_convert inconsistensies |
No |
|
| 503 |
Open |
22.2 [locale.categories] |
more on locales |
No |
|
| 585 |
Open |
22.2 [locale.categories] |
facet error reporting |
Yes |
|
| 439 |
NAD |
22.2 [locale.categories] |
Should facets be copyable? |
Yes |
|
| 228 |
WP |
22.2 [locale.categories] |
Incorrect specification of "..._byname" facets |
Yes |
|
| 338 |
WP |
22.2 [locale.categories] |
is whitespace allowed between `-' and a digit? |
Yes |
|
| 356 |
NAD |
22.2.1 [category.ctype] |
Meaning of ctype_base::mask enumerators |
Yes |
|
| 339 |
WP |
22.2.1 [category.ctype] |
definition of bitmask type restricted to clause 27 |
Yes |
|
| 473 |
Open |
22.2.1.1 [locale.ctype] |
underspecified ctype calls |
No |
|
| 417 |
Open |
22.2.1.1.2 [locale.ctype.virtuals] |
what does ctype::do_widen() return on failure |
No |
|
| 126 |
TC |
22.2.1.1.2 [locale.ctype.virtuals] |
typos in Effects clause of ctype::do_narrow() |
Yes |
|
| 152 |
TC |
22.2.1.1.2 [locale.ctype.virtuals] |
Typo in scan_is() semantics |
Yes |
|
| 379 |
WP |
22.2.1.1.2 [locale.ctype.virtuals] |
nonsensical ctype::do_widen() requirement |
Yes |
|
| 124 |
TC |
22.2.1.2 [locale.ctype.byname] |
ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT* |
Yes |
|
| 616 |
WP |
22.2.1.2 [locale.ctype.byname] |
missing 'typename' in ctype_byname |
Yes |
|
| 695 |
WP |
22.2.1.3 [facet.ctype.special] |
ctype<char>::classic_table() not accessible |
Yes |
|
| 207 |
Dup |
22.2.1.3.2 [facet.ctype.char.members] |
ctype<char> members return clause incomplete |
Yes |
153 |
| 236 |
Dup |
22.2.1.3.2 [facet.ctype.char.members] |
ctype<char>::is() member modifies facet |
Yes |
28 |
| 28 |
TC |
22.2.1.3.2 [facet.ctype.char.members] |
Ctype<char>is ambiguous |
Yes |
236 |
| 153 |
WP |
22.2.1.3.2 [facet.ctype.char.members] |
Typo in narrow() semantics |
Yes |
207 |
| 382 |
Open |
22.2.1.4 [locale.codecvt] |
codecvt do_in/out result |
No |
|
| 72 |
Dup |
22.2.1.4 [locale.codecvt] |
Do_convert phantom member function |
Yes |
24 |
| 138 |
NAD Future |
22.2.1.4 [locale.codecvt] |
Class ctype_byname<char> redundant and misleading |
Yes |
|
| 16 |
TC |
22.2.1.4 [locale.codecvt] |
Bad ctype_byname<char> decl |
Yes |
|
| 19 |
TC |
22.2.1.4 [locale.codecvt] |
"Noconv" definition too vague |
Yes |
10 |
| 24 |
TC |
22.2.1.4 [locale.codecvt] |
"do_convert" doesn't exist |
Yes |
72 |
| 33 |
TC |
22.2.1.4 [locale.codecvt] |
Codecvt<> mentions from_type |
Yes |
43 |
| 74 |
TC |
22.2.1.4 [locale.codecvt] |
Garbled text for codecvt::do_max_length |
Yes |
|
| 75 |
TC |
22.2.1.4 [locale.codecvt] |
Contradiction in codecvt::length's argument types |
Yes |
|
| 76 |
WP |
22.2.1.4 [locale.codecvt] |
Can a codecvt facet always convert one internal character at a time? |
Yes |
|
| 393 |
Pending NAD Editorial |
22.2.1.4.2 [locale.codecvt.virtuals] |
do_in/do_out operation on state unclear |
Yes |
|
| 664 |
WP |
22.2.1.4.2 [locale.codecvt.virtuals] |
do_unshift for codecvt<char, char, mbstate_t> |
Yes |
|
| 665 |
WP |
22.2.1.4.2 [locale.codecvt.virtuals] |
do_unshift return value |
Yes |
|
| 10 |
Dup |
22.2.1.5 [locale.codecvt.byname] |
Codecvt<>::do unclear |
Yes |
19 |
| 43 |
Dup |
22.2.1.5 [locale.codecvt.byname] |
Locale table correction |
Yes |
33 |
| 302 |
NAD |
22.2.1.5 [locale.codecvt.byname] |
Need error indication from codecvt<>::do_length |
Yes |
|
| 500 |
NAD |
22.2.1.5 [locale.codecvt.byname] |
do_length cannot be implemented correctly |
Yes |
|
| 305 |
WP |
22.2.1.5 [locale.codecvt.byname] |
Default behavior of codecvt<wchar_t, char, mbstate_t>::length() |
Yes |
|
| 380 |
WP |
22.2.1.5 [locale.codecvt.byname] |
typos in codecvt tables 53 and 54 |
Yes |
|
| 381 |
WP |
22.2.1.5 [locale.codecvt.byname] |
detection of invalid mbstate_t in codecvt |
Yes |
|
| 344 |
NAD |
22.2.2 [category.numeric] |
grouping + showbase |
Yes |
|
| 18 |
TC |
22.2.2.1.1 [facet.num.get.members] |
Get(...bool&) omitted |
Yes |
|
| 275 |
WP |
22.2.2.1.1 [facet.num.get.members] |
Wrong type in num_get::get() overloads |
Yes |
|
| 23 |
Open |
22.2.2.1.2 [facet.num.get.virtuals] |
Num_get overflow result |
Yes |
|
| 427 |
Open |
22.2.2.1.2 [facet.num.get.virtuals] |
stage 2 and rationale of DR 221 |
No |
|
| 459 |
Open |
22.2.2.1.2 [facet.num.get.virtuals] |
Requirement for widening in stage 2 is overspecification |
Yes |
|
| 662 |
NAD |
22.2.2.1.2 [facet.num.get.virtuals] |
Inconsistent handling of incorrectly-placed thousands separators |
Yes |
|
| 17 |
TC |
22.2.2.1.2 [facet.num.get.virtuals] |
Bad bool parsing |
Yes |
|
| 154 |
TC |
22.2.2.1.2 [facet.num.get.virtuals] |
Missing double specifier for do_get() |
Yes |
|
| 221 |
WP |
22.2.2.1.2 [facet.num.get.virtuals] |
num_get<>::do_get stage 2 processing broken |
Yes |
|
| 321 |
WP |
22.2.2.1.2 [facet.num.get.virtuals] |
Typo in num_get |
Yes |
|
| 358 |
WP |
22.2.2.1.2 [facet.num.get.virtuals] |
interpreting thousands_sep after a decimal_point |
Yes |
|
| 359 |
WP |
22.2.2.2.1 [facet.num.put.members] |
num_put<>::do_put (..., bool) undocumented |
Yes |
|
| 671 |
Open |
22.2.2.2.2 [facet.num.put.virtuals] |
precision of hexfloat |
No |
|
| 361 |
NAD |
22.2.2.2.2 [facet.num.put.virtuals] |
num_get<>::do_get (..., void*&) checks grouping |
Yes |
|
| 34 |
TC |
22.2.2.2.2 [facet.num.put.virtuals] |
True/falsename() not in ctype<> |
Yes |
|
| 231 |
WP |
22.2.2.2.2 [facet.num.put.virtuals] |
Precision in iostream? |
Yes |
|
| 282 |
WP |
22.2.2.2.2 [facet.num.put.virtuals] |
What types does numpunct grouping refer to? |
Yes |
|
| 20 |
TC |
22.2.3.1.2 [facet.numpunct.virtuals] |
Thousands_sep returns wrong type |
Yes |
|
| 318 |
WP |
22.2.3.2 [locale.numpunct.byname] |
Misleading comment in definition of numpunct_byname |
Yes |
|
| 248 |
WP |
22.2.5 [category.time] |
time_get fails to set eofbit |
Yes |
|
| 71 |
TC |
22.2.5.1 [locale.time.get] |
Do_get_monthname synopsis missing argument |
Yes |
|
| 461 |
WP |
22.2.5.1.2 [locale.time.get.virtuals] |
time_get hard or impossible to implement |
Yes |
|
| 164 |
TC |
22.2.5.3.2 [locale.time.put.virtuals] |
do_put() has apparently unused fill argument |
Yes |
|
| 667 |
Open |
22.2.6.1.2 [locale.money.get.virtuals] |
money_get's widened minus sign |
No |
|
| 668 |
Open |
22.2.6.1.2 [locale.money.get.virtuals] |
money_get's empty minus sign |
No |
|
| 669 |
Open |
22.2.6.1.2 [locale.money.get.virtuals] |
Equivalent postive and negative signs in money_get |
No |
|
| 328 |
WP |
22.2.6.2.2 [locale.money.put.virtuals] |
Bad sprintf format modifier in money_put<>::do_put() |
Yes |
|
| 670 |
Open |
22.2.6.3 [locale.moneypunct] |
money_base::pattern and space |
No |
|
| 374 |
NAD |
22.2.6.3.1 [locale.moneypunct.members] |
moneypunct::frac_digits returns int not unsigned |
Yes |
|
| 325 |
WP |
22.2.6.3.2 [locale.moneypunct.virtuals] |
Misleading text in moneypunct<>::do_grouping |
Yes |
|
| 666 |
WP |
22.2.6.3.2 [locale.moneypunct.virtuals] |
moneypunct::do_curr_symbol() |
Yes |
|
| 326 |
NAD |
22.2.6.4 [locale.moneypunct.byname] |
Missing typedef in moneypunct_byname |
Yes |
|
| 40 |
TC |
22.2.8 [facets.examples] |
Meaningless normative paragraph in examples |
Yes |
|
| 148 |
TC |
22.2.8 [facets.examples] |
Functions in the example facet BoolNames should be const |
Yes |
|
| 217 |
TC |
22.2.8 [facets.examples] |
Facets example (Classifying Japanese characters) contains errors |
Yes |
|
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Duplicates |
| 180 |
Open |
23 [containers] |
Container member iterator arguments constness has unintended consequences |
Yes |
|
| 492 |
Open |
23 [containers] |
Invalid iterator arithmetic expressions |
Yes |
|
| 767 |
Open |
23 [containers] |
Forwarding and backward compatibility |
Yes |
|
| 774 |
Open |
23 [containers] |
Member swap undefined for most containers |
No |
|
| 97 |
NAD |
23 [containers] |
Insert inconsistent definition |
Yes |
|
| 470 |
NAD |
23 [containers] |
accessing containers from their elements' special functions |
Yes |
|
| 632 |
Open |
23.1 [container.requirements] |
Time complexity of size() for std::set |
No |
|
| 675 |
Open |
23.1 [container.requirements] |
Move assignment of containers |
Yes |
|
| 704 |
Open |
23.1 [container.requirements] |
MoveAssignable requirement for container value type overly strict |
No |
|
| 760 |
Open |
23.1 [container.requirements] |
The emplace issue |
Yes |
|
| 759 |
Ready |
23.1 [container.requirements] |
A reference is not an object |
Yes |
|
| 766 |
Ready |
23.1 [container.requirements] |
Inconsistent exception guarantees between ordered and unordered associative containers |
Yes |
|
| 479 |
Dup |
23.1 [container.requirements] |
Container requirements and placement new |
Yes |
580 |
| 536 |
Dup |
23.1 [container.requirements] |
Container iterator constructor and explicit convertibility |
Yes |
589 |
| 279 |
NAD |
23.1 [container.requirements] |
const and non-const iterators should have equivalent typedefs |
Yes |
|
| 51 |
TC |
23.1 [container.requirements] |
Requirement to not invalidate iterators missing |
Yes |
|
| 179 |
WP |
23.1 [container.requirements] |
Comparison of const_iterators to iterators doesn't work |
Yes |
|
| 276 |
WP |
23.1 [container.requirements] |
Assignable requirement for container value type overly strict |
Yes |
|
| 322 |
WP |
23.1 [container.requirements] |
iterator and const_iterator should have the same value type |
Yes |
|
| 371 |
WP |
23.1 [container.requirements] |
Stability of multiset and multimap member functions |
Yes |
|
| 589 |
WP |
23.1 [container.requirements] |
Requirements on iterators of member template functions of containers |
Yes |
536 |
| 438 |
DR |
23.1.1 [sequence.reqmts] |
Ambiguity in the "do the right thing" clause |
Yes |
|
| 526 |
NAD |
23.1.1 [sequence.reqmts] |
Is it undefined if a function in the standard changes in parameters? |
Yes |
|
| 149 |
NAD Future |
23.1.1 [sequence.reqmts] |
Insert should return iterator to first element inserted |
Yes |
|
| 725 |
Pending NAD Editorial |
23.1.1 [sequence.reqmts] |
Optional sequence container requirements column label |
Yes |
|
| 139 |
TC |
23.1.1 [sequence.reqmts] |
Optional sequence operation table description unclear |
Yes |
|
| 151 |
TC |
23.1.1 [sequence.reqmts] |
Can't currently clear() empty container |
Yes |
|
| 355 |
WP |
23.1.1 [sequence.reqmts] |
Operational semantics for a.back() |
Yes |
|
| 130 |
DR |
23.1.2 [associative.reqmts] |
Return type of container::erase(iterator) differs for associative containers |
Yes |
451 |
| 102 |
Dup |
23.1.2 [associative.reqmts] |
Bug in insert range in associative containers |
Yes |
264 |
| 246 |
Dup |
23.1.2 [associative.reqmts] |
a.insert(p,t) is incorrectly specified |
Yes |
233 |
| 451 |
Dup |
23.1.2 [associative.reqmts] |
Associative erase should return an iterator |
Yes |
130 |
| 82 |
NAD |
23.1.2 [associative.reqmts] |
Missing constant for set elements |
Yes |
|
| 192 |
NAD |
23.1.2 [associative.reqmts] |
a.insert(p,t) is inefficient and overconstrained |
Yes |
233 |
| 215 |
NAD |
23.1.2 [associative.reqmts] |
Can a map's key_type be const? |
Yes |
|
| 494 |
NAD |
23.1.2 [associative.reqmts] |
Wrong runtime complexity for associative container's insert and delete |
Yes |
|
| 763 |
NAD |
23.1.2 [associative.reqmts] |
Renaming emplace() overloads |
Yes |
|
| 224 |
TC |
23.1.2 [associative.reqmts] |
clear() complexity for associative containers refers to undefined N |
Yes |
|
| 103 |
WP |
23.1.2 [associative.reqmts] |
set::iterator is required to be modifiable, but this allows modification of keys |
Yes |
|
| 233 |
WP |
23.1.2 [associative.reqmts] |
Insertion hints in associative containers |
Yes |
192, 246 |
| 264 |
WP |
23.1.2 [associative.reqmts] |
Associative container insert(i, j) complexity requirements are not feasible. |
Yes |
102 |
| 316 |
WP |
23.1.2 [associative.reqmts] |
Vague text in Table 69 |
Yes |
|
| 354 |
WP |
23.1.2 [associative.reqmts] |
Associative container lower/upper bound requirements |
Yes |
|
| 518 |
Ready |
23.1.3 [unord.req] |
Are insert and erase stable for unordered_multiset and unordered_multimap? |
Yes |
|
| 579 |
NAD |
23.1.3 [unord.req] |
erase(iterator) for unordered containers should not return an iterator |
Yes |
|
| 764 |
NAD |
23.1.3 [unord.req] |
equal_range on unordered containers should return a pair of local_iterators |
Yes |
|
| 679 |
WP |
23.2 [sequences] |
resize parameter by value |
Yes |
|
| 588 |
Open |
23.2.1 [array] |
requirements on zero sized tr1::arrays and other details |
No |
|
| 617 |
Open |
23.2.1 [array] |
std::array is a sequence that doesn't satisfy the sequence requirements? |
No |
|
| 720 |
Open |
23.2.1 [array] |
Omissions in constexpr usages |
Yes |
|
| 776 |
Review |
23.2.1 [array] |
Undescribed assign function of std::array |
Yes |
|
| 519 |
WP |
23.2.1 [array] |
Data() undocumented |
Yes |
|
| 144 |
TC |
23.2.2.1 [deque.cons] |
Deque constructor complexity wrong |
Yes |
|
| 237 |
WP |
23.2.2.1 [deque.cons] |
Undefined expression in complexity specification |
Yes |
|
| 638 |
Ready |
23.2.2.3 [deque.modifiers] |
deque end invalidation during erase |
Yes |
|
| 307 |
WP |
23.2.3 [list] |
Lack of reference typedefs in container adaptors |
Yes |
|
| 320 |
WP |
23.2.3.1 [list.cons] |
list::assign overspecified |
Yes |
|
| 410 |
WP |
23.2.3.1 [list.cons] |
Missing semantics for stack and queue comparison operators |
Yes |
|
| 132 |
TC |
23.2.3.2 [list.capacity] |
list::resize description uses random access iterators |
Yes |
|
| 131 |
NAD |
23.2.3.4 [list.ops] |
list::splice throws nothing |
Yes |
|
| 491 |
NAD |
23.2.3.4 [list.ops] |
std::list<>::unique incorrectly specified |
Yes |
|
| 250 |
WP |
23.2.3.4 [list.ops] |
splicing invalidates iterators |
Yes |
|
| 278 |
WP |
23.2.3.4 [list.ops] |
What does iterator validity mean? |
Yes |
|
| 300 |
WP |
23.2.3.4 [list.ops] |
list::merge() specification incomplete |
Yes |
|
| 315 |
WP |
23.2.3.4 [list.ops] |
Bad "range" in list::unique complexity |
Yes |
|
| 756 |
Open |
23.2.4 [container.adaptors] |
Container adaptors push |
Yes |
|
| 96 |
Open |
23.2.5 [vector] |
Vector<bool> is not a container |
Yes |
|
| 469 |
DR |
23.2.5 [vector] |
vector<bool> ill-formed relational operators |
Yes |
|
| 101 |
NAD |
23.2.5 [vector] |
No way to free storage for vector and deque |
Yes |
|
| 757 |
Pending NAD Editorial |
23.2.5 [vector] |
Typo in the synopsis of vector |
Yes |
|
| 69 |
TC |
23.2.5 [vector] |
Must elements of a vector be contiguous? |
Yes |
|
| 464 |
WP |
23.2.5 [vector] |
Suggestion for new member functions in standard containers |
Yes |
|
| 496 |
WP |
23.2.5 [vector] |
Illegal use of "T" in vector<bool> |
Yes |
|
| 134 |
TC |
23.2.5.1 [vector.cons] |
vector constructors over specified |
Yes |
|
| 755 |
Ready |
23.2.5.2 [vector.capacity] |
std::vector and std:string lack explicit shrink-to-fit operations |
Yes |
|
| 329 |
WP |
23.2.5.2 [vector.capacity] |
vector capacity, reserve and reallocation |
Yes |
|
| 341 |
WP |
23.2.5.2 [vector.capacity] |
Vector reallocation and swap |
Yes |
|
| 406 |
DR |
23.2.5.4 [vector.modifiers] |
vector::insert(s) exception safety |
Yes |
|
| 247 |
WP |
23.2.5.4 [vector.modifiers] |
vector, deque::insert complexity |
Yes |
|
| 414 |
WP |
23.2.5.4 [vector.modifiers] |
Which iterators are invalidated by v.erase()? |
Yes |
|
| 751 |
New |
23.2.6 [vector.bool] |
change pass-by-reference members of vector<bool> to pass-by-value? |
No |
|
| 140 |
NAD Editorial |
23.3.1 [map] |
map<Key, T>::value_type does not satisfy the assignable requirement |
Yes |
|
| 133 |
TC |
23.3.1 [map] |
map missing get_allocator() |
Yes |
|
| 334 |
WP |
23.3.1.2 [map.access] |
map::operator[] specification forces inefficient implementation |
Yes |
|
| 703 |
WP |
23.3.1.2 [map.access] |
map::at() need a complexity specification |
Yes |
|
| 450 |
|