C++ Standard Library Issues List (Revision R62)

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 (non-Ready active issues only)

(view all issues)

Section 3 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
873 Open 3.9.1 [basic.fundamental] signed integral type and unsigned integral type are not clearly defined Yes

Section 17 (6 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
941 New 17 [library] Ref-qualifiers for assignment operators Yes
972 New 17 [library] The term "Assignable" undefined but still in use Yes
625 Open 17 [library] mixed up Effects and Returns clauses No
877 Open 17 [library] to throw() or to Throw: Nothing. Yes
424 Open 17.5.2.2 [structure.summary] normative notes Yes
833 Open 17.6.2.4 [compliance] Freestanding implementations header list needs review for C++0x No

Section 18 (4 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
902 New 18.2.1 [limits] Regular is the wrong concept to constrain numeric_limits No
471 Open 18.6.1 [type.info] result of what() implementation-defined 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

Section 19 (3 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
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
971 New 19.4.2.6 [syserr.errcode.nonmembers] Spurious diagnostic conversion function Yes

Section 20 (61 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
822 Review 20.1.1 [utility.arg.requirements] Object with explicit copy constructor no longer CopyConstructible 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
910 New 20.2.8 [concept.copymove] Effects of MoveAssignable 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
853 Review 20.3.6 [template.bitset] to_string needs updating with zero and one Yes
907 New 20.3.6.2 [bitset.members] Bitset's immutable element retrieval is inconsistently defined Yes
921 New 20.4.1 [ratio.ratio] Rational Arithmetic should use template aliases Yes
948 New 20.4.2 [ratio.arithmetic] ratio arithmetic tweak Yes
801 Open 20.5 [tuple] tuple and pair trivial members No
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
928 New 20.5.2.6 [tuple.rel] Wrong concepts used for tuple's comparison operators Yes
918 New 20.5.2.7 [tuple.swap] Swap for tuple needs to be conceptualized Yes
719 Open 20.6 [meta] std::is_literal type traits should be provided Yes
931 New 20.6.4.3 [meta.unary.prop] type trait extent<T, I> Yes
747 Open 20.6.4.3 [meta.unary.prop] We have 3 separate type traits to identify classes supporting no-throw operations No
975 New 20.6.5 [meta.rel] is_convertible cannot be instantiated for non-convertible types 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
904 New 20.7.4 [func.ret] result_of argument types Yes
688 Open 20.7.5.1 [refwrap.const] reference_wrapper, cref unsafe, allow binding to rvalues Yes
939 New 20.7.6 [identity.operation] Problem with std::identity and reference-to-temporaries No
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
922 New 20.7.12.1.4 [func.bind.place] [func.bind.place] Number of placeholders Yes
920 New 20.7.15 [func.memfn] Ref-qualification support in the library No
644 Open 20.7.16.2 [func.wrap.func] Possible typos in 'function' description Yes
815 Open 20.7.16.2.4 [func.wrap.func.inv] std::function and reference_closure do not use perfect forwarding No
978 New 20.7.17 [unord.hash] Hashing smart pointers No
927 New 20.8.2.2 [allocator.concepts] Dereferenceable should be HasDereference Yes
970 New 20.8.11.1 [object.addressof] addressof overload unneeded Yes
582 Open 20.8.11.2 [uninitialized.copy] specialized algorithms and volatile storage Yes
854 Review 20.8.12.1.1 [unique.ptr.dltr.dflt] default_delete converting constructor underspecified Yes
938 New 20.8.12.1.2 [unique.ptr.dltr.dflt1] default_delete<T[]>::operator() should only accept T* Yes
834 Open 20.8.12.2 [unique.ptr.single] Unique_ptr::pointer requirements underspecified Yes
932 New 20.8.12.2.1 [unique.ptr.single.ctor] unique_ptr(pointer p) for pointer deleter types Yes
950 New 20.8.12.2.1 [unique.ptr.single.ctor] unique_ptr converting ctor shouldn't accept array form Yes
933 New 20.8.12.2.5 [unique.ptr.single.modifiers] Unique_ptr defect No
896 Open 20.8.13.2 [util.smartptr.shared] Library thread safety issue Yes
925 New 20.8.13.2.1 [util.smartptr.shared.const] shared_ptr's explicit conversion from unique_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
899 New 20.8.13.2.2 [util.smartptr.shared.dest] Adjusting shared_ptr for nullptr_t 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
949 New 20.8.13.4 [util.smartptr.ownerless] owner_less Yes
953 New 20.9.1 [time.clock.req] Various threading bugs #3 No
954 New 20.9.1 [time.clock.req] Various threading bugs #4 No
955 New 20.9.1 [time.clock.req] Various threading bugs #5 No
956 New 20.9.1 [time.clock.req] Various threading bugs #6 No
951 New 20.9.2.1 [time.traits.is_fp] Various threading bugs #1 No
934 New 20.9.3 [time.duration] duration is missing operator% Yes
974 New 20.9.3.1 [time.duration.cons] duration<double> should not implicitly convert to duration<int> Yes
947 New 20.9.3.5 [time.duration.nonmember] duration arithmetic: contradictory requirements No
946 New 20.9.3.7 [time.duration.cast] duration_cast improperly specified No
952 New 20.9.3.7 [time.duration.cast] Various threading bugs #2 No
935 New 20.9.5 [time.clock] clock error handling needs to be specified Yes
945 New 20.9.5.1 [time.clock.system] system_clock::rep not specified No
957 New 20.9.5.1 [time.clock.system] Various threading bugs #7 No

Section 21 (7 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
343 Open 21 [strings] Unspecified library header dependencies Yes
830 Open 21.1 [char.traits] Incomplete list of char_traits specializations 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
847 Open 21.3.1 [string.require] string exception safety guarantees Yes
895 Open 21.3.5 [string.access] "Requires:" on std::string::at et al No

Section 22 (15 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
708 Open 22 [localization] Locales need to be per thread and updated for POSIX changes No
502 Open 22.1.1.1.1 [locale.category] Proposition: Clarification of the interaction between a facet and an iterator 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
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
382 Open 22.2.1.4 [locale.codecvt] codecvt do_in/out result No
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
671 Open 22.2.2.2.2 [facet.num.put.virtuals] precision of hexfloat No
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

Section 23 (23 issues)

(view all 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
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
982 New 23.1.4 [associative.reqmts] Wrong complexity for initializer_list assignment in Table 85 Yes
981 New 23.1.5 [unord.req] Unordered container requirements should add initializer_list support Yes
869 Review 23.1.5 [unord.req] Bucket (local) iterators and iterating past end Yes
930 New 23.2.1 [array] Access to std::array data as built-in array type Yes
588 Open 23.2.1 [array] requirements on zero sized tr1::arrays and other details No
617 Open 23.2.1 [array] std::array is a sequence that doesn't satisfy the sequence requirements? No
851 Open 23.2.1 [array] simplified array construction Yes
878 Review 23.2.3 [forwardlist] forward_list preconditions Yes
897 New 23.2.3.4 [forwardlist.modifiers] Forward_list issues... Part 2 Yes
898 New 23.2.3.5 [forwardlist.ops] Small contradiction in n2723 to forward to committee No
919 New 23.2.3.5 [forwardlist.ops] (forward_)list specialized remove algorithms are over constrained Yes
976 New 23.2.5.3.1 [stack.defn] Class template std::stack should be movable Yes
96 Open 23.2.6 [vector] Vector<bool> is not a container Yes
751 Open 23.2.7 [vector.bool] change pass-by-reference members of vector<bool> to pass-by-value? No
814 Open 23.2.7 [vector.bool] vector<bool>::swap(reference, reference) not defined No
839 Open 23.3 [associative] Maps and sets missing splice operation No

Section 24 (12 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
408 Open 24.1 [iterator.concepts] Is vector<reverse_iterator<char*> > forbidden? No
446 Open 24.1 [iterator.concepts] Iterator equality between different containers No
765 Review 24.1 [iterator.concepts] more on iterator validity Yes
485 Open 24.1.3 [output.iterators] output iterator insufficently constrained No
458 Open 24.1.6 [random.access.iterators] 24.1.5 contains unintented limitation for operator- Yes
940 New 24.3 [iterator.operations] std::distance No
977 New 24.4.2 [insert.iterators] insert iterators inefficient for expensive to move types Yes
903 New 24.4.2.1 [back.insert.iterator] back_insert_iterator issue No
901 New 24.4.2.5 [insert.iterator] insert iterators can move from lvalues No
979 New 24.4.3 [move.iterators] Bad example Yes
838 Open 24.5.1 [istream.iterator] can an end-of-stream iterator become a non-end-of-stream one? Yes
659 Open 24.5.3 [istreambuf.iterator] istreambuf_iterator should have an operator->() Yes

Section 25 (11 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
969 New 25.1.4 [alg.foreach] What happened to Library Issue 475? Yes
290 Open 25.1.4 [alg.foreach] Requirements to for_each and its function object No
912 New 25.2.3 [alg.swap] Array swap needs to be conceptualized Yes
913 New 25.2.5 [alg.replace] Superfluous requirements for replace algorithms Yes
865 New 25.2.6 [alg.fill] More algorithms that throw away information Yes
914 New 25.2.9 [alg.unique] Superfluous requirement for unique Yes
498 Open 25.2.13 [alg.partitions] Requirements for partition() and stable_partition() too strong Yes
780 New 25.3.4 [alg.merge] std::merge() specification incorrect/insufficient Yes
862 New 25.3.5.1 [includes] Impossible complexity for 'includes' No
915 New 25.3.7 [alg.min.max] minmax with initializer_list should return pair of T, not pair of const T& Yes
190 Open 25.3.7 [alg.min.max] min() and max() functions should be std::binary_functions No

Section 26 (11 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
860 Open 26 [numerics] Floating-Point State No
800 Open 26.4.7.1 [rand.util.seedseq] Issues in 26.4.7.1 [rand.util.seedseq](6) Yes
874 New 26.4.8.5.1 [rand.dist.samp.discrete] Missing initializer_list constructor for discrete_distribution Yes
793 Open 26.4.8.5.1 [rand.dist.samp.discrete] discrete_distribution missing constructor Yes
875 New 26.4.8.5.2 [rand.dist.samp.pconst] Missing initializer_list constructor for piecewise_constant_distribution Yes
794 Open 26.4.8.5.2 [rand.dist.samp.pconst] piecewise_constant_distribution missing constructor Yes
732 Open 26.4.8.5.3 [rand.dist.samp.genpdf] Defect in [rand.dist.samp.genpdf] Yes 795
867 New 26.5.2.1 [valarray.cons] Valarray and value-initialization Yes
630 Open 26.5.2.1 [valarray.cons] arrays of valarray Yes
430 Open 26.5.2.4 [valarray.sub] valarray subset operations Yes
539 Open 26.6.3 [partial.sum] partial_sum and adjacent_difference should mention requirements Yes

Section 27 (21 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
423 Open 27 [input.output] effects of negative streamsize in iostreams Yes
418 Open 27.4.2.1.6 [ios::Init] exceptions thrown during iostream cleanup No
573 Open 27.4.3 [fpos] C++0x file positioning should handle modern file sizes No
835 New 27.4.4.2 [basic.ios.members] tying two streams together (correction to DR 581) Yes
837 New 27.4.4.2 [basic.ios.members] basic_ios::copyfmt() overly loosely specified Yes
255 Open 27.5.2 [streambuf] Why do basic_streambuf<>::pbump() and gbump() take an int? Yes
421 Open 27.5.2.1 [streambuf.cons] is basic_streambuf copy-constructible? Yes
565 Open 27.5.2.4.5 [streambuf.virt.put] xsputn inefficient Yes
309 Open 27.6 [iostream.format] Does sentry catch exceptions? No
911 New 27.6.1 [input.streams] I/O streams and move/swap semantic Yes
419 Open 27.6.1.1.3 [istream::sentry] istream extractors not setting failbit if eofbit is already set Yes
696 New 27.6.1.2.2 [istream.formatted.arithmetic] istream::operator>>(int&) broken No
342 Open 27.6.1.3 [istream.unformatted] seek and eofbit Yes
397 Open 27.6.2.4 [ostream::sentry] ostream::sentry dtor throws exceptions No
398 Open 27.6.2.4 [ostream::sentry] effects of end-of-file on unformatted input functions No
394 Open 27.6.2.6.1 [ostream.formatted.reqmts] behavior of formatted output on failure No
810 New 27.6.4 [ext.manip] Missing traits dependencies in operational semantics of extended manipulators Yes
128 Open 27.7 [string.streams] Need open_mode() function for file stream, string streams, file buffers, and string  buffers Yes
564 Open 27.7.1.4 [stringbuf.virtuals] stringbuf seekpos underspecified Yes
863 New 27.8.1 [fstreams] What is the state of a stream after close() succeeds No
900 New 27.8.1.8 [ifstream.assign] stream move-assignment No

Section 28 (6 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
523 Open 28 [re] regex case-insensitive character ranges are unimplementable as specified No
723 Open 28.8 [re.regex] basic_regex should be moveable Yes
727 New 28.11.4 [re.alg.replace] regex_replace() doesn't accept basic_strings with custom traits and allocators Yes
726 Open 28.11.4 [re.alg.replace] Missing regex_replace() overloads Yes
909 New 28.12.2 [re.tokiter] regex_token_iterator should use initializer_list Yes
716 New 28.13 [re.grammar] Production in [re.grammar] not actually modified Yes

Section 29 (10 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
879 New 29 [atomics] Atomic load const qualification Yes
880 New 29 [atomics] Missing atomic exchange parameter Yes
923 New 29 [atomics] atomics with floating-point No
924 New 29 [atomics] structs with internal padding No
937 New 29 [atomics] Atomics for standard typedef types No
942 New 29 [atomics] Atomics synopsis typo Yes
926 New 29.1 [atomics.order] Sequentially consistent fences, relaxed operations and modification order Yes
908 New 29.3 [atomics.types] Deleted assignment operators for atomic types must be volatile Yes
943 New 29.3.1 [atomics.types.integral] ssize_t undefined No
944 New 29.3.3 [atomics.types.generic] atomic_bool derive from atomic_bool? No

Section 30 (23 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
889 Open 30.2.1.1 [thread.thread.id] thread::id comparisons No
891 New 30.2.1.2 [thread.thread.constr] std::thread, std::call_once issue No
929 New 30.2.1.2 [thread.thread.constr] Thread constructor Yes
967 New 30.2.1.2 [thread.thread.constr] Various threading bugs #17 No
963 New 30.2.1.5 [thread.thread.member] Various threading bugs #13 No
888 Review 30.2.2 [thread.thread.this] this_thread::yield too strong Yes
936 New 30.3.1 [thread.mutex.requirements] Mutex type overspecified No
960 New 30.3.1 [thread.mutex.requirements] Various threading bugs #10 No
961 New 30.3.1 [thread.mutex.requirements] Various threading bugs #11 No
968 New 30.3.1 [thread.mutex.requirements] Various threading bugs #18 No
980 New 30.3.1 [thread.mutex.requirements] mutex lock() missing error conditions Yes
893 New 30.3.1.1 [thread.mutex.class] std::mutex issue No
905 New 30.3.1.1 [thread.mutex.class] Mutex specification questions No
828 Review 30.3.1.1 [thread.mutex.class] Static initialization for std::mutex? Yes
962 New 30.3.3.2.2 [thread.lock.unique.locking] Various threading bugs #12 No
859 Open 30.4 [thread.condition] Monotonic Clock is Conditionally Supported? Yes
958 New 30.4.1 [thread.condition.condvar] Various threading bugs #8 No
959 New 30.4.1 [thread.condition.condvar] Various threading bugs #9 No
965 New 30.4.1 [thread.condition.condvar] Various threading bugs #15 No
966 New 30.4.1 [thread.condition.condvar] Various threading bugs #16 No
857 Open 30.4.1 [thread.condition.condvar] condition_variable::time_wait return bool error prone No
887 Open 30.4.1 [thread.condition.condvar] issue with condition::wait_... No
964 New 30.4.2 [thread.condition.condvarany] Various threading bugs #14 No

Section D (2 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
973 New D.9.1 [auto.ptr] auto_ptr characteristics Yes
463 Open D.9.1 [auto.ptr] auto_ptr usability issues Yes

Section TR1 5 (4 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
546 Open TR1 5.1.1 [tr.rand.req] _Longlong and _ULonglong are integer types No
785 New TR1 5.1.4.5 [tr.rand.eng.disc] Random Number Requirements in TR1 No
701 New TR1 5.2.1.1 [tr.num.sf.Lnm] assoc laguerre poly's No
702 New TR1 5.2.1.2 [tr.num.sf.Plm] Restriction in associated Legendre functions No

Section TR1 8 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
568 New TR1 8.16.4 [tr.c99.cmath.over] log2 overloads missing Yes

Section TRDecimal 3 (2 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Duplicates
597 Open TRDecimal 3.2 [trdec.types.types] Decimal: The notion of 'promotion' cannot be emulated by user-defined types. No
606 Open TRDecimal 3.2 [trdec.types.types] Decimal: allow narrowing conversions Yes