C++ Standard Library Issues List (Revision R60)

Table of Contents

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.

Index by Section

(view only non-Ready open issues)

Section 1 (2 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

Section 3 (2 issues)

(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

Section 17 (32 issues)

(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

Section 18 (43 issues)

(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

Section 19 (9 issues)

(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

Section 20 (129 issues)

(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

Section 21 (53 issues)

(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

Section 22 (103 issues)

(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

Section 23 (106 issues)

(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