Reference ISO/IEC IS 14882:1998(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 |
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 462 | NAD | 3.6.3 [basic.start.term] | Destroying objects with static storage duration | Yes |
(view only non-Ready open issues)
| 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 | |
| 833 | Open | 17.4.1.3 [compliance] | Freestanding implementations header list needs review for C++0x | No | |
| 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.2 [reserved.names] | Can an implementor add specializations? | Yes | |
| 226 | WP | 17.4.3.2 [reserved.names] | User supplied specializations or overloads of namespace std function templates | Yes | |
| 232 | WP | 17.4.3.2 [reserved.names] | "depends" poorly defined in 17.4.3.1 | Yes | |
| 422 | WP | 17.4.3.2 [reserved.names] | explicit specializations of member functions of class templates | Yes | |
| 294 | WP | 17.4.3.2.1 [macro.names] | User defined macros and standard headers | Yes | |
| 404 | WP | 17.4.3.5 [replacement.functions] | May a replacement allocation function be declared inline? | Yes | |
| 611 | WP | 17.4.3.7 [res.on.functions] | Standard library templates and incomplete types | Yes | |
| 529 | NAD Editorial | 17.4.3.9 [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 |
(view only non-Ready open issues)
| 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 | |
| 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 | |
| 612 | WP | 18.2.1.2 [numeric.limits.members] | numeric_limits::is_modulo insufficiently defined | 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 | 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 | |
| 841 | New | 18.3.1 [cstdint.syn] | cstdint.syn inconsistent with C99 | 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 | Open | 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 | |
| 820 | New | 18.7.5 [propagation] | current_exception()'s interaction with throwing copy ctors | Yes | |
| 829 | Ready | 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 | |
| 744 | WP | 18.7.5 [propagation] | What is the lifetime of an exception pointed to by an exception_ptr? | Yes | |
| 746 | WP | 18.7.5 [propagation] | current_exception may fail with bad_alloc | Yes | |
| 819 | New | 18.7.6 [except.nested] | rethrow_if_nested | No | |
| 619 | WP | 18.8 [support.runtime] | Longjmp wording problem | Yes |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 254 | WP | 19.1 [std.exceptions] | Exception types in clause 19 are constructed from std::string | Yes | |
| 288 | WP | 19.3 [errno] | <cerrno> requirements missing macro EILSEQ | Yes | |
| 804 | Review | 19.4 [syserr] | Some problems with classes error_code/error_condition | Yes | |
| 832 | Review | 19.4 [syserr] | Applying constexpr to System error support | Yes | |
| 805 | Ready | 19.4 [syserr] | posix_error::posix_errno concerns | Yes | |
| 697 | NAD Editorial | 19.4 [syserr] | New <system_error> header leads to name clashes | Yes | |
| 825 | Open | 19.4.2.1 [syserr.errcode.overview] | Missing rvalues reference stream insert/extract operators? | No | |
| 698 | Review | 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 | WP | 20 [utilities] | Table 27 is missing headers | Yes | |
| 822 | New | 20.1.1 [utility.arg.requirements] | Object with explicit copy constructor no longer CopyConstructible | 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 | |
| 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 | |
| 672 | WP | 20.1.1 [utility.arg.requirements] | Swappable requirements need updating | 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 | Review | 20.1.2 [allocator.requirements] | Allocator complexity requirement | 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 | |
| 823 | Review | 20.2.2 [forward] | identity<void> seems broken | Yes | |
| 808 | Ready | 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 | |
| 840 | NAD | 20.2.3 [pairs] | pair default template argument | 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 | |
| 801 | Open | 20.3 [tuple] | tuple and pair trivial members | No | |
| 522 | Ready | 20.3 [tuple] | Tuple doesn't define swap | Yes | |
| 807 | Ready | 20.3.1.2 [tuple.cnstr] | tuple construction should not fail unless its element's construction fails | Yes | |
| 775 | WP | 20.3.1.4 [tuple.helper] | Tuple indexing should be unsigned? | Yes | |
| 532 | Pending NAD Editorial | 20.3.1.6 [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 | |
| 748 | NAD | 20.4.4.3 [meta.unary.prop] | The is_abstract type trait is defined by reference to 10.4. | Yes | |
| 749 | WP | 20.4.4.3 [meta.unary.prop] | Currently has_nothrow_copy_constructor<T>::value is true if T has 'a' nothrow copy constructor. | 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 | |
| 849 | New | 20.4.7 [meta.trans.other] | missing type traits to compute root class and derived class of types in a class hierachy | Yes | |
| 856 | New | 20.4.7 [meta.trans.other] | Removal of aligned_union | Yes | |
| 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 | |
| 816 | New | 20.5.11.1.3 [func.bind.bind] | Should bind()'s returned functor have a nofail copy ctor when bind() is nofail? | No | |
| 817 | New | 20.5.11.1.3 [func.bind.bind] | bind needs to be moved | No | |
| 527 | WP | 20.5.11.1.3 [func.bind.bind] | tr1::bind has lost its Throws clause | Yes | |
| 770 | WP | 20.5.15 [func.wrap] | std::function should use rvalue swap | Yes | |
| 769 | Ready | 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 | |
| 815 | Open | 20.5.15.2.4 [func.wrap.func.inv] | std::function and reference_closure do not use perfect forwarding | No | |
| 633 | NAD Editorial | 20.5.15.2.5 [func.wrap.func.targ] | Return clause mentions undefined "type()" | Yes | |
| 848 | Ready | 20.5.16 [unord.hash] | missing std::hash specializations for std::bitset/std::vector<bool> | Yes | |
| 843 | New | 20.5.17.1 [func.referenceclosure.cons] | Reference Closure | Yes | |
| 350 | Dup | 20.6.5.1 [allocator.members] | allocator<>::address | Yes | 634 |
| 234 | WP | 20.6.5.1 [allocator.members] | Typos in allocator definition | Yes | |
| 400 | WP | 20.6.5.1 [allocator.members] | redundant type cast in lib.allocator.members | Yes | |
| 578 | WP | 20.6.5.1 [allocator.members] | purpose of hint to allocator::allocate() | Yes | |
| 634 | WP | 20.6.5.1 [allocator.members] | allocator.address() doesn't work for types overloading operator& | Yes | 350 |
| 425 | WP | 20.6.8 [temporary.buffer] | return value of std::get_temporary_buffer | Yes | |
| 866 | New | 20.6.10 [specialized.algorithms] | Qualification of placement new-expressions | Yes | |
| 582 | Open | 20.6.10.1 [uninitialized.copy] | specialized algorithms and volatile storage | Yes | |
| 754 | NAD Editorial | 20.6.10.1 [uninitialized.copy] | Ambiguous return clause for std::uninitialized_copy | Yes | |
| 762 | Ready | 20.6.11 [unique.ptr] | std::unique_ptr requires complete type? | Yes | |
| 673 | WP | 20.6.11 [unique.ptr] | unique_ptr update | Yes | |
| 854 | New | 20.6.11.1.1 [unique.ptr.dltr.dflt] | default_delete converting constructor underspecified | Yes | |
| 834 | Open | 20.6.11.2 [unique.ptr.single] | Unique_ptr::pointer requirements underspecified | Yes | |
| 686 | NAD | 20.6.11.2.4 [unique.ptr.single.observers] | Unique_ptr and shared_ptr fail to specify non-convertibility to int for unspecified-bool-type | Yes | |
| 806 | Ready | 20.6.11.2.5 [unique.ptr.single.modifiers] | unique_ptr::reset effects incorrect, too permissive | Yes | |
| 821 | New | 20.6.11.3.3 [unique.ptr.runtime.modifiers] | Minor cleanup : unique_ptr | Yes | |
| 740 | WP | 20.6.11.4 [unique.ptr.compiletime] | Please remove *_ptr<T[N]> | Yes | |
| 758 | Review | 20.6.12.2 [util.smartptr.shared] | shared_ptr and nullptr | Yes | |
| 813 | Ready | 20.6.12.2 [util.smartptr.shared] | "empty" undefined for shared_ptr | Yes | |
| 541 | WP | 20.6.12.2 [util.smartptr.shared] | shared_ptr template assignment and void | Yes | |
| 674 | WP | 20.6.12.2 [util.smartptr.shared] | shared_ptr interface changes for consistency with N1856 | Yes | |
| 710 | WP | 20.6.12.2 [util.smartptr.shared] | Missing postconditions | Yes | |
| 827 | New | 20.6.12.2.1 [util.smartptr.shared.const] | constexpr shared_ptr::shared_ptr()? | No | |
| 687 | WP | 20.6.12.2.1 [util.smartptr.shared.const] | shared_ptr conversion constructor not constrained | Yes | |
| 575 | WP | 20.6.12.2.2 [util.smartptr.shared.dest] | the specification of ~shared_ptr is MT-unfriendly, makes implementation assumptions | Yes | |
| 711 | Open | 20.6.12.2.5 [util.smartptr.shared.obs] | Contradiction in empty shared_ptr | Yes | |
| 540 | WP | 20.6.12.2.5 [util.smartptr.shared.obs] | shared_ptr<void>::operator*() | Yes | |
| 542 | WP | 20.6.12.2.5 [util.smartptr.shared.obs] | shared_ptr observers | Yes | |
| 743 | WP | 20.6.12.2.9 [util.smartptr.shared.spec] | rvalue swap for shared_ptr | Yes | |
| 533 | DR | 20.6.12.2.11 [util.smartptr.getdeleter] | typo in 2.2.3.10/1 | Yes | |
| 741 | NAD | 20.6.12.2.11 [util.smartptr.getdeleter] | Const-incorrect get_deleter function for shared_ptr | Yes | |
| 545 | WP | 20.6.12.2.11 [util.smartptr.getdeleter] | When is a deleter deleted? | 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 | TC | 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 | 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 | Review | 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 | 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 | |
| 180 | Ready | 21.3 [basic.string] | Container member iterator arguments constness has unintended consequences | 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 | |
| 847 | New | 21.3.1 [string.require] | string exception safety guarantees | 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 | |
| 824 | Ready | 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 | 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 | |
| 771 | Ready | 21.4 [string.conversions] | Impossible throws clause in [string.conversions] | Yes | |
| 772 | Ready | 21.4 [string.conversions] | Impossible return 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 |
(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 | 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 | 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 | |
| 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 | Review | 22.2.2.1.2 [facet.num.get.virtuals] | Num_get overflow result | 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 | |
| 826 | NAD | 22.2.2.2 [locale.nm.put] | Equivalent of %'d, or rather, lack thereof? | 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 | |
| 836 | New | 22.2.6.1.2 [locale.money.get.virtuals] |
effects of money_base::space and
money_base::none on money_get
|
Yes | 670 |
| 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 | 836 |
| 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 |
(view only non-Ready open issues)
| Issue | Status | Section | Title | Proposed Resolution | Duplicates |
| 868 | New | 23 [containers] | default construction and value-initialization | Yes | |
| 492 | Open | 23 [containers] | Invalid iterator arithmetic expressions | Yes | |
| 774 | Open | 23 [containers] | Member swap undefined for most containers | Yes | |
| 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 | |
| 861 | New | 23.1 [container.requirements] | Incomplete specification of EqualityComparable for std::forward_list | Yes | |
| 632 | Open | 23.1 [container.requirements] | Time complexity of size() for std::set | No | |
| 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 | |
| 675 | Review | 23.1 [container.requirements] | Move assignment of containers | Yes | |
| 842 | Ready | 23.1 [container.requirements] | ConstructibleAsElement and bit 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 |
| 759 | WP | 23.1 [container.requirements] | A reference is not an object | Yes | |
| 766 | WP | 23.1 [container.requirements] | Inconsistent exception guarantees between ordered and unordered associative containers | Yes | |
| 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 |