Library Issues List Table of Contents

# C++ Standard Library Issues List (Revision R59)

# Table of Contents

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.

## 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 | New | 3.9.1 [basic.fundamental] | signed integral type and unsigned integral type are not clearly defined | Yes |

## Section 17 (2 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
877 | New | 17 [library] | to `throw()` or to Throw: Nothing. | Yes |
833 | Open | 17.4.1.3 [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
841 | New | 18.3.1 [cstdint.syn] | cstdint.syn inconsistent with C99 | Yes |
471 | Open | 18.6.1 [type.info] | result of what() implementation-defined | Yes |
820 | New | 18.7.5 [propagation] | `current_exception()`'s interaction with throwing copy ctors | Yes |
819 | New | 18.7.6 [except.nested] | rethrow_if_nested | No |

## Section 19 (4 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
832 | Open | 19.4 [syserr] | Applying constexpr to System error support | Yes |
804 | Review | 19.4 [syserr] | Some problems with classes `error_code`/`error_condition` | 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 |

## Section 20 (29 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
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 |
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 |
823 | Review | 20.2.2 [forward] | `identity<void>` seems broken | Yes |
811 | New | 20.2.3 [pairs] | `pair` of pointers no longer works with literal 0 | No |
801 | Open | 20.4 [tuple] | `tuple` and `pair` trivial members | No |
719 | Open | 20.5 [meta] | `std::is_literal` type traits should be provided | Yes |
747 | Open | 20.5.4.3 [meta.unary.prop] | We have 3 separate type traits to identify classes supporting no-throw operations | No |
750 | Open | 20.5.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.5.7 [meta.trans.other] | missing type traits to compute root class and derived class of types in a class hierachy | Yes |
856 | New | 20.5.7 [meta.trans.other] | Removal of `aligned_union` | Yes |
688 | Open | 20.6.5.1 [refwrap.const] | reference_wrapper, cref unsafe, allow binding to rvalues | Yes |
816 | New | 20.6.11.1.3 [func.bind.bind] | Should `bind()`'s returned functor have a nofail copy ctor when `bind()` is nofail? | No |
817 | New | 20.6.11.1.3 [func.bind.bind] | `bind` needs to be moved | No |
815 | Open | 20.6.15.2.4 [func.wrap.func.inv] | `std::function` and `reference_closure` do not use perfect forwarding | No |
843 | New | 20.6.17.1 [func.referenceclosure.cons] | Reference Closure | Yes |
866 | New | 20.7.10 [specialized.algorithms] | Qualification of placement new-expressions | Yes |
582 | Open | 20.7.10.1 [uninitialized.copy] | specialized algorithms and volatile storage | Yes |
854 | New | 20.7.11.1.1 [unique.ptr.dltr.dflt] | `default_delete` converting constructor underspecified | Yes |
834 | Open | 20.7.11.2 [unique.ptr.single] | Unique_ptr::pointer requirements underspecified | Yes |
821 | New | 20.7.11.3.3 [unique.ptr.runtime.modifiers] | Minor cleanup : `unique_ptr` | Yes |
758 | Review | 20.7.12.2 [util.smartptr.shared] | `shared_ptr` and `nullptr` | Yes |
827 | New | 20.7.12.2.1 [util.smartptr.shared.const] | `constexpr shared_ptr::shared_ptr()?` | No |
711 | Open | 20.7.12.2.5 [util.smartptr.shared.obs] | Contradiction in empty `shared_ptr` | Yes |

## 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 |
709 | Review | 21.1.3 [char.traits.specializations] | `char_traits::not_eof` has wrong signature | Yes |
876 | New | 21.3 [basic.string] | `basic_string` access operations should give stronger guarantees | 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 |
847 | New | 21.3.1 [string.require] | string exception safety guarantees | Yes |

## Section 22 (17 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 | 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 |
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 |
23 | Review | 22.2.2.1.2 [facet.num.get.virtuals] | Num_get overflow result | Yes |
671 | Open | 22.2.2.2.2 [facet.num.put.virtuals] | precision of hexfloat | No |
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 |
670 | Open | 22.2.6.3 [locale.moneypunct] | `money_base::pattern` and `space` | No | 836

## Section 23 (21 issues)

(view all 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 |
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 |
869 | New | 23.1.5 [unord.req] | Bucket (local) iterators and iterating past end | Yes |
870 | New | 23.1.5 [unord.req] | Do unordered containers not support function pointers for predicate/hasher? | 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 | Review | 23.2.1 [array] | simplified array construction | Yes |
855 | New | 23.2.2.2 [deque.capacity] | capacity() and reserve() for deque? | Yes |
878 | New | 23.2.3 [forwardlist] | `forward_list` preconditions | Yes |
96 | Open | 23.2.6 [vector] | Vector<bool> is not a container | Yes |
751 | New | 23.2.7 [vector.bool] | change pass-by-reference members of `vector<bool>` to pass-by-value? | No |
814 | New | 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 |
853 | New | 23.3.5 [template.bitset] | `to_string` needs updating with `zero` and `one` | Yes |
676 | Open | 23.4 [unord] | Moving the unordered containers | Yes |

## Section 24 (11 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
765 | New | 24.1 [iterator.requirements] | more on iterator validity | No |
408 | Open | 24.1 [iterator.requirements] | Is vector<reverse_iterator<char*> > forbidden? | No |
446 | Open | 24.1 [iterator.requirements] | Iterator equality between different containers | No |
484 | Open | 24.1.1 [input.iterators] | Convertible to T | No |
485 | Open | 24.1.2 [output.iterators] | output iterator insufficently constrained | No |
299 | Open | 24.1.4 [bidirectional.iterators] | Incorrect return types for iterator dereference | Yes |
458 | Open | 24.1.5 [random.access.iterators] | 24.1.5 contains unintented limitation for operator- | Yes |
872 | New | 24.4.3.3.12 [move.iter.op.index] | `move_iterator::operator[]` has wrong return type | Yes |
788 | New | 24.5.1 [istream.iterator] | ambiguity in [istream.iterator] | Yes |
838 | New | 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 (9 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
631 | Open | 25 [algorithms] | conflicting requirements for `BinaryPredicate` | Yes |
290 | Open | 25.1.4 [alg.foreach] | Requirements to for_each and its function object | No |
865 | New | 25.2.6 [alg.fill] | More algorithms that throw away information | Yes |
498 | Open | 25.2.13 [alg.partitions] | Requirements for partition() and stable_partition() too strong | Yes |
556 | Open | 25.3 [alg.sorting] | is Compare a BinaryPredicate? | Yes |
812 | New | 25.3.1 [alg.sort] | unsolicited multithreading considered harmful? | No |
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 |
190 | Open | 25.3.7 [alg.min.max] | min() and max() functions should be std::binary_functions | No |

## Section 26 (14 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
860 | New | 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 |
803 | Review | 26.4.7.1 [rand.util.seedseq] | Simplification of `seed_seq::seq_seq` | Yes |
734 | Review | 26.4.8.4.3 [rand.dist.norm.chisq] | Unnecessary restriction in [rand.dist.norm.chisq] | 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 |
871 | New | 26.6.5 [numeric.iota] | Iota's requirements on T are too strong | 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 |
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 |
692 | Review | 27.6.4 [ext.manip] | `get_money` and `put_money` should be formatted I/O functions | 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 |
454 | Open | 27.8.1.4 [filebuf.members] | basic_filebuf::open should accept wchar_t names | Yes | 105

## Section 28 (5 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_string`s with custom traits and allocators | Yes |
726 | Open | 28.11.4 [re.alg.replace] | Missing `regex_replace()` overloads | Yes |
716 | New | 28.13 [re.grammar] | Production in [re.grammar] not actually modified | Yes |

## Section 29 (4 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
818 | New | 29.1 [atomics.order] | wording for memory ordering | Yes |
845 | New | 29.3 [atomics.types] | atomics cannot support aggregate initialization | Yes |
846 | New | 29.3 [atomics.types] | No definition for constructor | No |
864 | New | 29.4 [atomics.types.operations] | Defect in atomic wording | Yes |

## Section 30 (2 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
828 | Review | 30.3.1.1 [thread.mutex.class] | Static initialization for `std::mutex`? | Yes |
857 | New | 30.4.1 [thread.condition.condvar] | `condition_variable::time_wait` return `bool` error prone | No |

## Section D (1 issues)

(view all issues)

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

## Section X (3 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates
858 | New | X [garbage.collection] | Wording for Minimal Support for Garbage Collection | No |
859 | New | X [datetime] | Monotonic Clock is Conditionally Supported? | No |
644 | Open | X [func.wrap.func.undef] | Possible typos in 'function' description | 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 |