Reference ISO/IEC IS 14882:2003(E)
This document is the Table of Contents for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 653 | NAD | 1.2 [intro.refs] | Library reserved names | Yes | |
| 571 | NAD Editorial | 1.2 [intro.refs] | Update C90 references to C99? | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 462 | NAD | 3.6.3 [basic.start.term] | Destroying objects with static storage duration | Yes | |
| 873 | Open | 3.9.1 [basic.fundamental] | signed integral type and unsigned integral type are not clearly defined | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 625 | Open | 17 [library] | mixed up Effects and Returns clauses | No | |
| 877 | Open | 17 [library] | to throw() or to Throw: Nothing. | Yes | |
| 182 | CD1 | 17 [library] | Ambiguous references to size_t | Yes | |
| 230 | CD1 | 17 [library] | Assignable specified without also specifying CopyConstructible | Yes | |
| 336 | CD1 | 17 [library] | Clause 17 lack of references to deprecated headers | Yes | |
| 385 | NAD | 17 [library] | Does call by value imply the CopyConstructible requirement? | Yes | |
| 424 | Open | 17.5.2.2 [structure.summary] | normative notes | Yes | |
| 663 | NAD | 17.5.2.4 [structure.specifications] | Complexity Requirements | Yes | |
| 626 | NAD Editorial | 17.5.2.4 [structure.specifications] | new Remark clauses not documented | Yes | |
| 222 | TC1 | 17.5.2.4 [structure.specifications] | Are throw clauses necessary if a throw is already implied by the effects clause? | Yes | |
| 262 | CD1 | 17.5.3.2.3 [bitmask.types] | Bitmask operator ~ specified incorrectly | Yes | |
| 229 | CD1 | 17.6.2.2 [contents] | Unqualified references of other library entities | Yes | |
| 310 | CD1 | 17.6.2.3 [headers] | Is errno a macro? | Yes | |
| 456 | CD1 | 17.6.2.3 [headers] | Traditional C header files are overspecified | Yes | |
| 465 | CD1 | 17.6.2.3 [headers] | Contents of <ciso646> | Yes | |
| 833 | Open | 17.6.2.4 [compliance] | Freestanding implementations header list needs review for C++0x | No | |
| 657 | NAD | 17.6.3.2 [using.headers] | unclear requirement about header inclusion | Yes | |
| 1 | TC1 | 17.6.3.3 [using.linkage] | C library linkage editing oversight | Yes | |
| 120 | CD1 | 17.6.4.3 [reserved.names] | Can an implementor add specializations? | Yes | |
| 226 | CD1 | 17.6.4.3 [reserved.names] | User supplied specializations or overloads of namespace std function templates | Yes | |
| 232 | CD1 | 17.6.4.3 [reserved.names] | "depends" poorly defined in 17.4.3.1 | Yes | |
| 422 | CD1 | 17.6.4.3 [reserved.names] | explicit specializations of member functions of class templates | Yes | |
| 294 | CD1 | 17.6.4.3.2 [macro.names] | User defined macros and standard headers | Yes | |
| 404 | CD1 | 17.6.4.6 [replacement.functions] | May a replacement allocation function be declared inline? | Yes | |
| 611 | CD1 | 17.6.4.8 [res.on.functions] | Standard library templates and incomplete types | Yes | |
| 529 | NAD Editorial | 17.6.4.11 [res.on.required] | The standard encourages redundant and confusing preconditions | Yes | |
| 94 | NAD | 17.6.5 [conforming] | May library implementors add template parameters to Standard Library classes? | Yes | |
| 225 | CD1 | 17.6.5.4 [global.functions] | std:: algorithms use of other unqualified algorithms | Yes | |
| 147 | TC1 | 17.6.5.4 [global.functions] | Library Intro refers to global functions that aren't global | Yes | |
| 95 | NAD | 17.6.5.5 [member.functions] | Members added by the implementation | Yes | |
| 372 | NAD | 17.6.5.9 [res.on.exception.handling] | Inconsistent description of stdlib exceptions | Yes | |
| 119 | TC1 | 17.6.5.9 [res.on.exception.handling] | Should virtual functions be allowed to strengthen the exception specification? | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 306 | CD1 | 18.1 [support.types] | offsetof macro and non-POD types | Yes | |
| 449 | CD1 | 18.1 [support.types] | Library Issue 306 Goes Too Far | Yes | |
| 902 | New | 18.2.1 [limits] | Regular is the wrong concept to constrain numeric_limits | No | |
| 201 | CD1 | 18.2.1 [limits] | Numeric limits terminology wrong | Yes | |
| 559 | CD1 | 18.2.1 [limits] | numeric_limits<const T> | Yes | |
| 497 | CD1 | 18.2.1.2 [numeric.limits.members] | meaning of numeric_limits::traps for floating point types | Yes | |
| 612 | CD1 | 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 | |
| 184 | CD1 | 18.2.1.5 [numeric.special] | numeric_limits<bool> wording problems | Yes | |
| 613 | CD1 | 18.2.1.5 [numeric.special] | max_digits10 missing from numeric_limits | Yes | |
| 554 | NAD | 18.2.1.5 [numeric.special] | Problem with lwg DR 184 numeric_limits<bool> | Yes | |
| 416 | CD1 | 18.2.2 [c.limits] | definitions of XXX_MIN and XXX_MAX macros in climits | Yes | |
| 593 | CD1 | 18.3 [cstdint] | __STDC_CONSTANT_MACROS | Yes | |
| 557 | NAD Editorial | 18.3 [cstdint] | TR1: div(_Longlong, _Longlong) vs div(intmax_t, intmax_t) | Yes | |
| 553 | NAD Editorial | 18.3.1 [cstdint.syn] | very minor editorial change intptr_t / uintptr_t | Yes | |
| 841 | NAD Editorial | 18.3.1 [cstdint.syn] | cstdint.syn inconsistent with C99 | Yes | |
| 3 | TC1 | 18.4 [support.start.term] | Atexit registration during atexit() call is not described | Yes | |
| 9 | TC1 | 18.5.1 [new.delete] | Operator new(0) calls should not yield the same pointer | Yes | |
| 206 | CD1 | 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 | CD1 | 18.5.1.1 [new.delete.single] | Storage allocation wording confuses "Required behavior", "Requires" | Yes | |
| 627 | NAD | 18.5.1.1 [new.delete.single] | Low memory and exceptions | Yes | |
| 298 | CD1 | 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 | TC1 | 18.5.1.3 [new.delete.placement] | Placement forms example in error twice | Yes | 196 |
| 471 | Open | 18.6.1 [type.info] | result of what() implementation-defined | Yes | |
| 108 | TC1 | 18.6.1 [type.info] | Lifetime of exception::what() return unspecified | Yes | |
| 269 | NAD | 18.7 [support.exception] | cstdarg and unnamed parameters | Yes | |
| 70 | TC1 | 18.7 [support.exception] | Uncaught_exception() missing throw() specification | Yes | |
| 266 | CD1 | 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 | CD1 | 18.7.5 [propagation] | What is the lifetime of an exception pointed to by an exception_ptr? | Yes | |
| 746 | CD1 | 18.7.5 [propagation] | current_exception may fail with bad_alloc | Yes | |
| 820 | CD1 | 18.7.5 [propagation] | current_exception()'s interaction with throwing copy ctors | Yes | |
| 829 | CD1 | 18.7.5 [propagation] | current_exception wording unclear about exception type | 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 | |
| 819 | Open | 18.7.6 [except.nested] | rethrow_if_nested | No | |
| 906 | New | 18.8 [support.initlist] | ObjectType is the wrong concept to constrain initializer_list | Yes | |
| 894 | Ready | 18.9 [support.runtime] | longjmp and destructors | Yes | |
| 619 | CD1 | 18.9 [support.runtime] | Longjmp wording problem | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 254 | CD1 | 19.1 [std.exceptions] | Exception types in clause 19 are constructed from std::string | Yes | |
| 288 | CD1 | 19.3 [errno] | <cerrno> requirements missing macro EILSEQ | Yes | |
| 804 | CD1 | 19.4 [syserr] | Some problems with classes error_code/error_condition | Yes | |
| 805 | CD1 | 19.4 [syserr] | posix_error::posix_errno concerns | Yes | |
| 832 | NAD | 19.4 [syserr] | Applying constexpr to System error support | Yes | |
| 697 | NAD Editorial | 19.4 [syserr] | New <system_error> header leads to name clashes | Yes | |
| 890 | Open | 19.4.1 [syserr.errcat] | Improving <system_error> initialization | Yes | |
| 825 | Open | 19.4.2.2 [syserr.errcode.overview] | Missing rvalues reference stream insert/extract operators? | No | |
| 698 | CD1 | 19.4.5.1 [syserr.syserr.overview] | system_error needs const char* constructors | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 312 | CD1 | 20 [utilities] | Table 27 is missing headers | Yes | |
| 822 | Review | 20.1.1 [utility.arg.requirements] | Object with explicit copy constructor no longer CopyConstructible | Yes | |
| 753 | Ready | 20.1.1 [utility.arg.requirements] | Move constructor in draft | Yes | |
| 672 | CD1 | 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 | NAD Editorial | 20.1.1 [utility.arg.requirements] | Disadvantages of defining Swappable in terms of CopyConstructible and Assignable | Yes | |
| 724 | NAD Editorial | 20.1.1 [utility.arg.requirements] | DefaultConstructible is not defined | Yes | |
| 742 | NAD Editorial | 20.1.1 [utility.arg.requirements] | Enabling swap for proxy iterators | 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 | |
| 752 | Ready | 20.1.2 [allocator.requirements] | Allocator complexity requirement | Yes | |
| 258 | CD1 | 20.1.2 [allocator.requirements] | Missing allocator requirement | Yes | |
| 274 | CD1 | 20.1.2 [allocator.requirements] | a missing/impossible allocator requirement | Yes | |
| 401 | CD1 | 20.1.2 [allocator.requirements] | incorrect type casts in table 32 in lib.allocator.requirements | Yes | |
| 402 | CD1 | 20.1.2 [allocator.requirements] | wrong new expression in [some_]allocator::construct | 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 | TC1 | 20.1.2 [allocator.requirements] | What does allocate(0) return? | Yes | |
| 910 | New | 20.2.8 [concept.copymove] | Effects of MoveAssignable | Yes | |
| 700 | CD1 | 20.3.2 [forward] | N1856 defines struct identity | Yes | |
| 808 | CD1 | 20.3.2 [forward] | [forward] incorrect redundant specification | Yes | |
| 823 | CD1 | 20.3.2 [forward] | identity<void> seems broken | Yes | |
| 916 | New | 20.3.3 [pairs] | Redundant move-assignment operator of pair should be removed | Yes | |
| 885 | Open | 20.3.3 [pairs] | pair assignment | No | |
| 265 | CD1 | 20.3.3 [pairs] | std::pair::pair() effects overly restrictive | Yes | |
| 706 | CD1 | 20.3.3 [pairs] | make_pair() should behave as make_tuple() wrt. reference_wrapper() | Yes | |
| 348 | Dup | 20.3.3 [pairs] | Minor issue with std::pair operator< | Yes | 532 |
| 296 | NAD | 20.3.3 [pairs] | Missing descriptions and requirements of pair operators | Yes | |
| 840 | NAD | 20.3.3 [pairs] | pair default template argument | Yes | |
| 353 | NAD Editorial | 20.3.3 [pairs] | std::pair missing template assignment | Yes | |
| 482 | NAD Editorial | 20.3.3 [pairs] | Swapping pairs | Yes | |
| 811 | NAD Editorial | 20.3.3 [pairs] | pair of pointers no longer works with literal 0 | Yes | |
| 181 | TC1 | 20.3.3 [pairs] | make_pair() unintended behavior | Yes | |
| 853 | Review | 20.3.6 [template.bitset] | to_string needs updating with zero and one | Yes | |
| 693 | CD1 | 20.3.6 [template.bitset] | std::bitset::all() missing |
Yes | |
| 694 | CD1 | 20.3.6 [template.bitset] | std::bitset and long long |
Yes | |
| 116 | Dup | 20.3.6 [template.bitset] | bitset cannot be constructed with a const char* | Yes | 778 |
| 11 | TC1 | 20.3.6 [template.bitset] | Bitset minor problems | Yes | |
| 396 | CD1 | 20.3.6.1 [bitset.cons] | what are characters zero and one | Yes | |
| 778 | CD1 | 20.3.6.1 [bitset.cons] | std::bitset does not have any constructor taking a string literal | Yes | 116 |
| 457 | DR | 20.3.6.1 [bitset.cons] | bitset constructor: incorrect number of initialized bits | Yes | |
| 907 | New | 20.3.6.2 [bitset.members] | Bitset's immutable element retrieval is inconsistently defined | Yes | |
| 186 | CD1 | 20.3.6.2 [bitset.members] | bitset::set() second parameter should be bool | Yes | |
| 434 | DR | 20.3.6.2 [bitset.members] | bitset::to_string() hard to use | Yes | |
| 303 | CD1 | 20.3.6.3 [bitset.operators] | Bitset input operator underspecified | Yes | |
| 801 | Open | 20.5 [tuple] | tuple and pair trivial members | No | |
| 522 | CD1 | 20.5 [tuple] | Tuple doesn't define swap | Yes | |
| 917 | New | 20.5.2.2 [tuple.cnstr] | Redundant move-assignment operator of tuple should be removed | No | |
| 886 | Open | 20.5.2.2 [tuple.cnstr] | tuple construction | No | |
| 807 | CD1 | 20.5.2.2 [tuple.cnstr] | tuple construction should not fail unless its element's construction fails | Yes | |
| 775 | CD1 | 20.5.2.4 [tuple.helper] | Tuple indexing should be unsigned? | Yes | |
| 532 | NAD Editorial | 20.5.2.6 [tuple.rel] | Tuple comparison | Yes | 348 |
| 719 | Open | 20.6 [meta] | std::is_literal type traits should be provided | Yes | |
| 590 | NAD Editorial | 20.6 [meta] | Type traits implementation latitude should be removed for C++0x | Yes | |
| 525 | NAD Editorial | 20.6.4 [meta.unary] | type traits definitions not clear | Yes | |
| 747 | Open | 20.6.4.3 [meta.unary.prop] | We have 3 separate type traits to identify classes supporting no-throw operations | No | |
| 749 | CD1 | 20.6.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.6.4.3 [meta.unary.prop] | The is_abstract type trait is defined by reference to 10.4. | Yes | |
| 750 | Open | 20.6.5 [meta.rel] | The current definition for is_convertible requires that the type be implicitly convertible, so explicit constructors are ignored. | No | |
| 705 | CD1 | 20.6.7 [meta.trans.other] | type-trait decay incompletely specified | Yes | |
| 856 | CD1 | 20.6.7 [meta.trans.other] | Removal of aligned_union | Yes | |
| 849 | NAD | 20.6.7 [meta.trans.other] | missing type traits to compute root class and derived class of types in a class hierachy | Yes | |
| 185 | CD1 | 20.7 [function.objects] | Questionable use of term "inline" | Yes | |
| 660 | CD1 | 20.7 [function.objects] | Missing Bitwise Operations | Yes | |
| 351 | NAD Editorial | 20.7 [function.objects] | unary_negate and binary_negate: struct or class? | Yes | |
| 658 | NAD Editorial | 20.7 [function.objects] | Two unspecified function comparators in [function.objects] | Yes | |
| 257 | NAD | 20.7.3 [base] | STL functional object and iterator inheritance. | Yes | |
| 480 | NAD | 20.7.3 [base] | unary_function and binary_function should have protected nonvirtual destructors | Yes | |
| 501 | NAD | 20.7.3 [base] | Proposal: strengthen guarantees of lib.comparisons | Yes | |
| 904 | New | 20.7.4 [func.ret] | result_of argument types | Yes | |
| 521 | CD1 | 20.7.5 [refwrap] | Garbled requirements for argument_type in reference_wrapper | Yes | |
| 688 | Open | 20.7.5.1 [refwrap.const] | reference_wrapper, cref unsafe, allow binding to rvalues | Yes | |
| 689 | CD1 | 20.7.5.1 [refwrap.const] | reference_wrapper constructor overly constrained | Yes | |
| 284 | CD1 | 20.7.8 [comparisons] | unportable example in 20.3.7, p6 | Yes | |
| 297 | CD1 | 20.7.9 [logical.operations] | const_mem_fun_t<>::argument_type should be const T* | Yes | |
| 520 | CD1 | 20.7.12.1 [func.bind] | Result_of and pointers to data members | Yes | |
| 816 | Open | 20.7.12.1.3 [func.bind.bind] | Should bind()'s returned functor have a nofail copy ctor when bind() is nofail? | No | |
| 817 | Open | 20.7.12.1.3 [func.bind.bind] | bind needs to be moved | No | |
| 527 | CD1 | 20.7.12.1.3 [func.bind.bind] | tr1::bind has lost its Throws clause | Yes | |
| 770 | CD1 | 20.7.16 [func.wrap] | std::function should use rvalue swap | Yes | |
| 644 | Open | 20.7.16.2 [func.wrap.func] | Possible typos in 'function' description | Yes | |
| 769 | CD1 | 20.7.16.2 [func.wrap.func] | std::function should use nullptr_t instead of "unspecified-null-pointer-type" | Yes | |
| 610 | CD1 | 20.7.16.2.1 [func.wrap.func.con] | Suggested non-normative note for C++0x | Yes | |
| 815 | Open | 20.7.16.2.4 [func.wrap.func.inv] | std::function and reference_closure do not use perfect forwarding | No | |
| 633 | NAD Editorial | 20.7.16.2.5 [func.wrap.func.targ] | Return clause mentions undefined "type()" | Yes | |
| 848 | CD1 | 20.7.17 [unord.hash] | missing std::hash specializations for std::bitset/std::vector<bool> | Yes | |
| 843 | CD1 | 20.7.18.1 [func.referenceclosure.cons] | Reference Closure | Yes | |
| 234 | CD1 | 20.8.6.1 [allocator.members] | Typos in allocator definition | Yes | |
| 400 | CD1 | 20.8.6.1 [allocator.members] | redundant type cast in lib.allocator.members | Yes | |
| 578 | CD1 | 20.8.6.1 [allocator.members] | purpose of hint to allocator::allocate() | Yes | |
| 634 | CD1 | 20.8.6.1 [allocator.members] | allocator.address() doesn't work for types overloading operator& | Yes | 350 |
| 350 | Dup | 20.8.6.1 [allocator.members] | allocator<>::address | Yes | 634 |
| 425 | CD1 | 20.8.9 [temporary.buffer] | return value of std::get_temporary_buffer | Yes | |
| 866 | Ready | 20.8.11 [specialized.algorithms] | Qualification of placement new-expressions | Yes | |
| 582 | Open | 20.8.11.2 [uninitialized.copy] | specialized algorithms and volatile storage | Yes | |
| 754 | NAD Editorial | 20.8.11.2 [uninitialized.copy] | Ambiguous return clause for std::uninitialized_copy | Yes | |
| 673 | CD1 | 20.8.12 [unique.ptr] | unique_ptr update | Yes | |
| 762 | CD1 | 20.8.12 [unique.ptr] | std::unique_ptr requires complete type? | Yes | |
| 854 | Review | 20.8.12.1.1 [unique.ptr.dltr.dflt] | default_delete converting constructor underspecified | Yes | |
| 834 | Open | 20.8.12.2 [unique.ptr.single] | Unique_ptr::pointer requirements underspecified | Yes | |
| 686 | NAD | 20.8.12.2.4 [unique.ptr.single.observers] | Unique_ptr and shared_ptr fail to specify non-convertibility to int for unspecified-bool-type | Yes | |
| 806 | CD1 | 20.8.12.2.5 [unique.ptr.single.modifiers] | unique_ptr::reset effects incorrect, too permissive | Yes | |
| 821 | Ready | 20.8.12.3.3 [unique.ptr.runtime.modifiers] | Minor cleanup : unique_ptr | Yes | |
| 896 | Open | 20.8.13.2 [util.smartptr.shared] | Library thread safety issue | Yes | |
| 758 | Ready | 20.8.13.2 [util.smartptr.shared] | shared_ptr and nullptr | Yes | |
| 541 | CD1 | 20.8.13.2 [util.smartptr.shared] | shared_ptr template assignment and void | Yes | |
| 674 | CD1 | 20.8.13.2 [util.smartptr.shared] | shared_ptr interface changes for consistency with N1856 | Yes | |
| 710 | CD1 | 20.8.13.2 [util.smartptr.shared] | Missing postconditions | Yes | |
| 813 | CD1 | 20.8.13.2 [util.smartptr.shared] | "empty" undefined for shared_ptr | Yes | |
| 827 | Open | 20.8.13.2.1 [util.smartptr.shared.const] | constexpr shared_ptr::shared_ptr()? | No | |
| 881 | Open | 20.8.13.2.1 [util.smartptr.shared.const] | shared_ptr conversion issue | Yes | |
| 687 | CD1 | 20.8.13.2.1 [util.smartptr.shared.const] | shared_ptr conversion constructor not constrained | Yes | |
| 899 | New | 20.8.13.2.2 [util.smartptr.shared.dest] | Adjusting shared_ptr for nullptr_t | Yes | |
| 575 | CD1 | 20.8.13.2.2 [util.smartptr.shared.dest] | the specification of ~shared_ptr is MT-unfriendly, makes implementation assumptions | Yes | |
| 884 | Open | 20.8.13.2.4 [util.smartptr.shared.mod] | shared_ptr swap | No | |
| 711 | Open | 20.8.13.2.5 [util.smartptr.shared.obs] | Contradiction in empty shared_ptr | Yes | |
| 540 | CD1 | 20.8.13.2.5 [util.smartptr.shared.obs] | shared_ptr<void>::operator*() | Yes | |
| 542 | CD1 | 20.8.13.2.5 [util.smartptr.shared.obs] | shared_ptr observers | Yes | |
| 743 | CD1 | 20.8.13.2.9 [util.smartptr.shared.spec] | rvalue swap for shared_ptr | Yes | |
| 545 | CD1 | 20.8.13.2.11 [util.smartptr.getdeleter] | When is a deleter deleted? | Yes | |
| 533 | DR | 20.8.13.2.11 [util.smartptr.getdeleter] | typo in 2.2.3.10/1 | Yes | |
| 741 | NAD | 20.8.13.2.11 [util.smartptr.getdeleter] | Const-incorrect get_deleter function for shared_ptr | Yes | |
| 858 | CD1 | 20.8.13.7 [util.dynamic.safety] | Wording for Minimal Support for Garbage Collection | Yes | |
| 786 | NAD Editorial | 20.9 [time] | Thread library timed waits, UTC and monotonic clocks | Yes | |
| 882 | CD1 | 20.9.3.5 [time.duration.nonmember] | duration non-member arithmetic requirements | Yes |
(view only non-Ready open issues)
| 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 | TC1 | 21 [strings] | String clause minor problems | Yes | |
| 830 | Open | 21.1 [char.traits] | Incomplete list of char_traits specializations | Yes | |
| 570 | NAD | 21.1 [char.traits] | Request adding additional explicit specializations of char_traits | Yes | |
| 335 | CD1 | 21.1.1 [char.traits.require] | minor issue with char_traits, table 37 | Yes | |
| 352 | CD1 | 21.1.2 [char.traits.typedefs] | missing fpos requirements | Yes | |
| 709 | CD1 | 21.1.3 [char.traits.specializations] | char_traits::not_eof has wrong signature | Yes | |
| 831 | NAD Editorial | 21.1.3 [char.traits.specializations] | wrong type for not_eof() | Yes | |
| 467 | CD1 | 21.1.3.1 [char.traits.specializations.char] | char_traits::lt(), compare(), and memcmp() | Yes | |
| 57 | TC1 | 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 | |
| 876 | Open | 21.3 [basic.string] | basic_string access operations should give stronger guarantees | Yes | |
| 180 | CD1 | 21.3 [basic.string] | Container member iterator arguments constness has unintended consequences | Yes | |
| 263 | CD1 | 21.3 [basic.string] | Severe restriction on basic_string reference counting | Yes | |
| 530 | CD1 | 21.3 [basic.string] | Must elements of a string be contiguous? | Yes | |
| 534 | CD1 | 21.3 [basic.string] | Missing basic_string members | Yes | |
| 4 | NAD | 21.3 [basic.string] | Basic_string size_type and difference_type should be implementation defined | Yes | |
| 42 | TC1 | 21.3 [basic.string] | String ctors specify wrong default allocator | Yes | |
| 83 | TC1 | 21.3 [basic.string] | String::npos vs. string::max_size() | Yes | 89 |
| 209 | TC1 | 21.3 [basic.string] | basic_string declarations inconsistent | Yes | |
| 847 | Open | 21.3.1 [string.require] | string exception safety guarantees | Yes | |
| 301 | CD1 | 21.3.1 [string.require] | basic_string template ctor effects clause omits allocator argument | Yes | |
| 466 | NAD | 21.3.1 [string.require] | basic_string ctor should prevent null pointer error | Yes | |
| 86 | TC1 | 21.3.1 [string.require] | String constructors don't describe exceptions | Yes | |
| 259 | CD1 | 21.3.4 [string.capacity] | basic_string::operator[] and const correctness | Yes | |
| 104 | NAD | 21.3.4 [string.capacity] | Description of basic_string::operator[] is unclear | Yes | |
| 895 | Open | 21.3.5 [string.access] | "Requires:" on std::string::at et al | No | |
| 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 | TC1 | 21.3.6.4 [string::insert] | basic_string::find_last_of, find_last_not_of say pos instead of xpos | Yes | |
| 428 | CD1 | 21.3.6.5 [string::erase] | string::erase(iterator) validity | Yes | |
| 27 | TC1 | 21.3.6.5 [string::erase] | String::erase(range) yields wrong iterator | Yes | |
| 368 | NAD Editorial | 21.3.6.6 [string::replace] | basic_string::replace has two "Throws" paragraphs | Yes | |
| 403 | CD1 | 21.3.6.8 [string::swap] | basic_string::swap should not throw exceptions | Yes | |
| 535 | CD1 | 21.3.6.8 [string::swap] | std::string::swap specification poorly worded | Yes | |
| 87 | Dup | 21.3.6.8 [string::swap] | Error in description of string::compare() | Yes | 5 |
| 5 | TC1 | 21.3.6.8 [string::swap] | String::compare specification questionable | Yes | 87 |
| 91 | CD1 | 21.3.8.9 [string.io] | Description of operator>> and getline() for string<> might cause endless loop | Yes | |
| 435 | CD1 | 21.3.8.9 [string.io] | bug in DR 25 | Yes | |
| 586 | CD1 | 21.3.8.9 [string.io] | string inserter not a formatted function | Yes | |
| 824 | CD1 | 21.3.8.9 [string.io] | rvalue ref issue with basic_string inserter | Yes | |
| 67 | Dup | 21.3.8.9 [string.io] | Setw useless for strings | Yes | 25 |
| 25 | TC1 | 21.3.8.9 [string.io] | String operator<< uses width() value wrong | Yes | 67 |
| 90 | TC1 | 21.3.8.9 [string.io] | Incorrect description of operator >> for strings | Yes | |
| 211 | TC1 | 21.3.8.9 [string.io] | operator>>(istream&, string&) doesn't set failbit | Yes | |
| 771 | CD1 | 21.4 [string.conversions] | Impossible throws clause in [string.conversions] | Yes | |
| 772 | CD1 | 21.4 [string.conversions] | Impossible return clause in [string.conversions] | Yes | |
| 345 | CD1 | 21.5 [c.strings] | type tm in <cwchar> | Yes | |
| 615 | NAD Editorial | 21.5 [c.strings] | Inconsistencies in Section 21.4 | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 708 | Open | 22 [localization] | Locales need to be per thread and updated for POSIX changes | No | |
| 317 | CD1 | 22 [localization] | Instantiation vs. specialization of facets | Yes | |
| 495 | CD1 | 22 [localization] | Clause 22 template parameter requirements | Yes | |
| 268 | CD1 | 22.1.1 [locale] | Typo in locale synopsis | Yes | |
| 360 | CD1 | 22.1.1 [locale] | locale mandates inefficient implementation | 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 | TC1 | 22.1.1 [locale] | Immutable locale values | Yes | 378 |
| 37 | TC1 | 22.1.1 [locale] | Leftover "global" reference | Yes | |
| 137 | TC1 | 22.1.1 [locale] | Do use_facet and has_facet look in the global locale? | Yes | |
| 502 | Open | 22.1.1.1.1 [locale.category] | Proposition: Clarification of the interaction between a facet and an iterator | Yes | |
| 327 | CD1 | 22.1.1.1.1 [locale.category] | Typo in time_get facet in table 52 | Yes | 447 |
| 340 | CD1 | 22.1.1.1.1 [locale.category] | interpretation of has_facet<Facet>(loc) | Yes | |
| 347 | CD1 | 22.1.1.1.1 [locale.category] | locale::category and bitmask requirements | 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 | TC1 | 22.1.1.1.1 [locale.category] | Codecvt_byname<> instantiations | Yes | |
| 30 | TC1 | 22.1.1.1.1 [locale.category] | Wrong header for LC_* | Yes | |
| 436 | CD1 | 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 | TC1 | 22.1.1.3 [locale.members] | Locale::combine should be const | Yes | |
| 15 | TC1 | 22.1.1.3 [locale.members] | Locale::name requirement inconsistent | Yes | |
| 8 | TC1 | 22.1.1.5 [locale.statics] | Locale::global lacks guarantee | Yes | |
| 38 | TC1 | 22.1.2 [locale.global.templates] | Facet definition incomplete | Yes | |
| 391 | CD1 | 22.1.3.2 [conversions] | non-member functions specified as const | Yes | |
| 721 | Open | 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 | |
| 228 | CD1 | 22.2 [locale.categories] | Incorrect specification of "..._byname" facets | Yes | |
| 338 | CD1 | 22.2 [locale.categories] | is whitespace allowed between `-' and a digit? | Yes | |
| 439 | NAD | 22.2 [locale.categories] | Should facets be copyable? | Yes | |
| 339 | CD1 | 22.2.1 [category.ctype] | definition of bitmask type restricted to clause 27 | Yes | |
| 356 | NAD | 22.2.1 [category.ctype] | Meaning of ctype_base::mask enumerators | 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 | |
| 379 | CD1 | 22.2.1.1.2 [locale.ctype.virtuals] | nonsensical ctype::do_widen() requirement | Yes | |
| 126 | TC1 | 22.2.1.1.2 [locale.ctype.virtuals] | typos in Effects clause of ctype::do_narrow() | Yes | |
| 152 | TC1 | 22.2.1.1.2 [locale.ctype.virtuals] | Typo in scan_is() semantics | Yes | |
| 616 | CD1 | 22.2.1.2 [locale.ctype.byname] | missing 'typename' in ctype_byname | Yes | |
| 124 | TC1 | 22.2.1.2 [locale.ctype.byname] | ctype_byname<charT>::do_scan_is & do_scan_not return type should be const charT* | Yes | |
| 695 | CD1 | 22.2.1.3 [facet.ctype.special] | ctype<char>::classic_table() not accessible | Yes | |
| 153 | CD1 | 22.2.1.3.2 [facet.ctype.char.members] | Typo in narrow() semantics | Yes | 207 |
| 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 | TC1 | 22.2.1.3.2 [facet.ctype.char.members] | Ctype<char>is ambiguous | Yes | 236 |
| 382 | Open | 22.2.1.4 [locale.codecvt] | codecvt do_in/out result | No | |
| 76 | CD1 | 22.2.1.4 [locale.codecvt] | Can a codecvt facet always convert one internal character at a time? | Yes | |
| 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 | TC1 | 22.2.1.4 [locale.codecvt] | Bad ctype_byname<char> decl | Yes | |
| 19 | TC1 | 22.2.1.4 [locale.codecvt] | "Noconv" definition too vague | Yes | 10 |
| 24 | TC1 | 22.2.1.4 [locale.codecvt] | "do_convert" doesn't exist | Yes | 72 |
| 33 | TC1 | 22.2.1.4 [locale.codecvt] | Codecvt<> mentions from_type | Yes | 43 |
| 74 | TC1 | 22.2.1.4 [locale.codecvt] | Garbled text for codecvt::do_max_length | Yes | |
| 75 | TC1 | 22.2.1.4 [locale.codecvt] | Contradiction in codecvt::length's argument types | Yes | |
| 664 | CD1 | 22.2.1.4.2 [locale.codecvt.virtuals] | do_unshift for codecvt<char, char, mbstate_t> | Yes | |
| 665 | CD1 | 22.2.1.4.2 [locale.codecvt.virtuals] | do_unshift return value | Yes | |
| 393 | NAD Editorial | 22.2.1.4.2 [locale.codecvt.virtuals] | do_in/do_out operation on state unclear | Yes | |
| 305 | CD1 | 22.2.1.5 [locale.codecvt.byname] | Default behavior of codecvt<wchar_t, char, mbstate_t>::length() | Yes | |
| 380 | CD1 | 22.2.1.5 [locale.codecvt.byname] | typos in codecvt tables 53 and 54 | Yes | |
| 381 | CD1 | 22.2.1.5 [locale.codecvt.byname] | detection of invalid mbstate_t in codecvt | 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 | |
| 344 | NAD | 22.2.2 [category.numeric] | grouping + showbase | Yes | |
| 275 | CD1 | 22.2.2.1.1 [facet.num.get.members] | Wrong type in num_get::get() overloads | Yes | |
| 18 | TC1 | 22.2.2.1.1 [facet.num.get.members] | Get(...bool&) omitted | 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 | |
| 23 | CD1 | 22.2.2.1.2 [facet.num.get.virtuals] | Num_get overflow result | Yes | |
| 221 | CD1 | 22.2.2.1.2 [facet.num.get.virtuals] | num_get<>::do_get stage 2 processing broken | Yes | |
| 321 | CD1 | 22.2.2.1.2 [facet.num.get.virtuals] | Typo in num_get | Yes | |
| 358 | CD1 | 22.2.2.1.2 [facet.num.get.virtuals] | interpreting thousands_sep after a decimal_point | Yes | |
| 662 | NAD | 22.2.2.1.2 [facet.num.get.virtuals] | Inconsistent handling of incorrectly-placed thousands separators | Yes | |
| 17 | TC1 | 22.2.2.1.2 [facet.num.get.virtuals] | Bad bool parsing | Yes | |
| 154 | TC1 | 22.2.2.1.2 [facet.num.get.virtuals] | Missing double specifier for do_get() | Yes | |
| 826 | NAD | 22.2.2.2 [locale.nm.put] | Equivalent of %'d, or rather, lack thereof? | Yes | |
| 359 | CD1 | 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 | |
| 231 | CD1 | 22.2.2.2.2 [facet.num.put.virtuals] | Precision in iostream? | Yes | |
| 282 | CD1 | 22.2.2.2.2 [facet.num.put.virtuals] | What types does numpunct grouping refer to? | Yes | |
| 361 | NAD | 22.2.2.2.2 [facet.num.put.virtuals] | num_get<>::do_get (..., void*&) checks grouping | Yes | |
| 34 | TC1 | 22.2.2.2.2 [facet.num.put.virtuals] | True/falsename() not in ctype<> | Yes | |
| 20 | TC1 | 22.2.3.1.2 [facet.numpunct.virtuals] | Thousands_sep returns wrong type | Yes | |
| 318 | CD1 | 22.2.3.2 [locale.numpunct.byname] | Misleading comment in definition of numpunct_byname | Yes | |
| 248 | CD1 | 22.2.5 [category.time] | time_get fails to set eofbit | Yes | |
| 71 | TC1 | 22.2.5.1 [locale.time.get] | Do_get_monthname synopsis missing argument | Yes | |
| 461 | CD1 | 22.2.5.1.2 [locale.time.get.virtuals] | time_get hard or impossible to implement | Yes | |
| 164 | TC1 | 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 | |
| 836 | Open | 22.2.6.1.2 [locale.money.get.virtuals] |
effects of money_base::space and
money_base::none on money_get
|
Yes | 670 |
| 328 | CD1 | 22.2.6.2.2 [locale.money.put.virtuals] | Bad sprintf format modifier in money_put<>::do_put() | Yes | |
| 670 | Dup | 22.2.6.3 [locale.moneypunct] | money_base::pattern and space | Yes | 836 |
| 374 | NAD | 22.2.6.3.1 [locale.moneypunct.members] | moneypunct::frac_digits returns int not unsigned | Yes | |
| 325 | CD1 | 22.2.6.3.2 [locale.moneypunct.virtuals] | Misleading text in moneypunct<>::do_grouping | Yes | |
| 666 | CD1 | 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 | TC1 | 22.2.8 [facets.examples] | Meaningless normative paragraph in examples | Yes | |
| 148 | TC1 | 22.2.8 [facets.examples] | Functions in the example facet BoolNames should be const | Yes | |
| 217 | TC1 | 22.2.8 [facets.examples] | Facets example (Classifying Japanese characters) contains errors | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 492 | Open | 23 [containers] | Invalid iterator arithmetic expressions | Yes | |
| 774 | Open | 23 [containers] | Member swap undefined for most containers | Yes | |
| 868 | Open | 23 [containers] | default construction and value-initialization | Yes | |
| 883 | Open | 23 [containers] | swap circular definition | No | |
| 97 | NAD | 23 [containers] | Insert inconsistent definition | Yes | |
| 470 | NAD | 23 [containers] | accessing containers from their elements' special functions | Yes | |
| 767 | NAD Editorial | 23 [containers] | Forwarding and backward compatibility | Yes | |
| 632 | Open | 23.1 [container.requirements] | Time complexity of size() for std::set | No | |
| 760 | Open | 23.1 [container.requirements] | The emplace issue | Yes | |
| 861 | Open | 23.1 [container.requirements] | Incomplete specification of EqualityComparable for std::forward_list | Yes | |
| 179 | CD1 | 23.1 [container.requirements] | Comparison of const_iterators to iterators doesn't work | Yes | |
| 276 | CD1 | 23.1 [container.requirements] | Assignable requirement for container value type overly strict | Yes | |
| 322 | CD1 | 23.1 [container.requirements] | iterator and const_iterator should have the same value type | Yes | |
| 371 | CD1 | 23.1 [container.requirements] | Stability of multiset and multimap member functions | Yes | |
| 589 | CD1 | 23.1 [container.requirements] | Requirements on iterators of member template functions of containers | Yes | 536 |
| 675 | CD1 | 23.1 [container.requirements] | Move assignment of containers | Yes | |
| 759 | CD1 | 23.1 [container.requirements] | A reference is not an object | Yes | |
| 766 | CD1 | 23.1 [container.requirements] | Inconsistent exception guarantees between ordered and unordered associative containers | Yes | |
| 842 | CD1 | 23.1 [container.requirements] | ConstructibleAsElement and bit containers | Yes | |
| 479 |