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

# Index by Status and Section

Reference ISO/IEC IS 14882:2011(E)

This document is the Index by Status and Section for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.

Revised 2013-01-15 at 16:01:04 UTC

## Review (13 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2162 | Review | 17.6.3.5 [allocator.requirements] | `allocator_traits::max_size` missing `noexcept` | Yes |  | 2012-11-14
2013 | Review | 17.6.5.6 [constexpr.functions] | Do library implementers have the freedom to add `constexpr`? | Yes |  | 2012-11-14
2132 | Review | 20.8.11.2.1 [func.wrap.func.con] | `std::function` ambiguity | Yes |  | 2012-12-25
2196 | Review | 20.9.4.3 [meta.unary.prop] | Specification of `is_*[copy/move]_[constructible/assignable]` unclear for non-referencable types | Yes |  | 2012-11-14
2094 | Review | 20.11.5.1 [time.duration.cons] | `duration` conversion overflow shouldn't participate in overload resolution | Yes |  | 2012-11-14
2130 | Review | 29.3 [atomics.order] | Missing ordering constraints | Yes |  | 2012-11-14
2138 | Review | 29.7 [atomics.flag] | `atomic_flag::clear` should not accept `memory_order_consume` | Yes |  | 2012-11-14
2140 | Review | 30.5 [thread.condition] | Meaning of `notify_all_at_thread_exit` synchronization requirement? | Yes |  | 2012-11-14
2190 | Review | 30.5 [thread.condition] | Condition variable specification | Yes |  | 2012-11-14
2098 | Review | 30.6.5 [futures.promise] | Minor Inconsistency between `promise::set_value` and `promise::set_value_at_thread_exit` | Yes |  | 2012-11-14
2185 | Review | 30.6.6 [futures.unique_future] | Missing throws clause for `future/shared_future::wait_for/wait_until` | Yes |  | 2012-11-14
2100 | Review | 30.6.8 [futures.async] | timed waiting functions cannot timeout if `launch::async` policy used | Yes |  | 2012-11-14
2120 | Review | 30.6.8 [futures.async] | What should `async` do if neither '`async`' nor '`deferred`' is set in policy? | Yes |  | 2012-11-14

## New (80 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2225 | New | 17.6.2.2 [using.headers] | Unrealistic header inclusion checks required | Yes |  | 2012-12-25
2146 | New | 17.6.3.1 [utility.arg.requirements] | Are reference types `Copy`/`Move-Constructible`/`Assignable` or `Destructible`? | No |  | 2012-11-14
2224 | New | 17.6.4.10 [res.on.objects] | Ambiguous status of access to non-live objects | Yes |  | 2012-12-25
2133 | New | 17.6.5.4 [global.functions] | Attitude to overloaded comma for iterators | No |  | 2012-11-14
2155 | New | 18.10 [support.runtime] | Macro `__bool_true_false_are_defined` should be removed | No |  | 2012-11-14
2234 | New | 19.3 [assertions] | `assert()` should allow usage in constant expressions | No |  | 2013-01-15
2212 | New | 20.2 [utility] | `tuple_size` for `const pair` request `<tuple>` header | No |  | 2012-11-14
2153 | New | 20.2.2 [utility.swap] | Narrowing of the non-member `swap` contract | No |  | 2012-11-14
2228 | New | 20.7.1.2.3 [unique.ptr.single.asgn] | Missing SFINAE rule in `unique_ptr` templated assignment | Yes |  | 2012-12-25
2179 | New | 20.7.2.4 [util.smartptr.enab] | `enable_shared_from_this` and construction from raw pointers | No |  | 2012-11-14
2219 | New | 20.8.2 [func.require] | `INVOKE`-ing a pointer to member with a `reference_wrapper` as the object expression | Yes |  | 2012-12-25
2233 | New | 20.8.11.1 [func.wrap.badcall] | `bad_function_call::what()` unhelpful | Yes |  | 2013-01-15
2197 | New | 20.9.4.3 [meta.unary.prop] | Specification of `is_[un]signed` unclear for non-arithmetic types | Yes |  | 2012-11-14
2141 | New | 20.9.7.6 [meta.trans.other] | `common_type` trait produces reference types | Yes |  | 2012-11-14
2203 | New | 20.12.4 [allocator.adaptor.members] | `scoped_allocator_adaptor` uses wrong argument types for piecewise construction | Yes |  | 2012-11-14
2144 | New | 20.13 [type.index] | Missing `noexcept` specification in `type_index` | Yes |  | 2012-11-14
2232 | New | 21.2.3 [char.traits.specializations] | The `char_traits` specializations should declare their `length()`, `compare()`, and `find()` members constexpr | Yes |  | 2013-01-15
2151 | New | 21.4.1 [string.require] | `basic_string<>::swap` semantics ignore allocators | No |  | 2012-11-14
2207 | New | 21.4.5 [string.access] | `basic_string::at` should not have a Requires clause | Yes |  | 2012-11-14
2226 | New | 22.3.3.2.2 [conversions.string] | `wstring_convert` methods do not take allocator instance | No |  | 2012-12-25
2174 | New | 22.3.3.2.2 [conversions.string] | `wstring_convert::converted()` should be `noexcept` | Yes |  | 2012-11-14
2175 | New | 22.3.3.2.2 [conversions.string] | `wstring_convert` and `wbuffer_convert` validity | Yes |  | 2012-11-14
2176 | New | 22.3.3.2.2 [conversions.string] | Special members for `wstring_convert` and `wbuffer_convert` | Yes |  | 2012-11-14
2229 | New | 22.5 [locale.stdcvt] | Standard code conversion facets underspecified | Yes |  | 2013-01-15
2218 | New | 23.2.1 [container.requirements.general] | Unclear how containers use `allocator_traits::construct()` | Yes |  | 2012-11-29
2211 | New | 23.2.1 [container.requirements.general] | Replace ambiguous use of "Allocator" in container requirements | Yes |  | 2012-11-14
2200 | New | 23.2.2 [container.requirements.dataraces] | Data race avoidance for all containers, not only for sequences | Yes |  | 2012-11-14
2231 | New | 23.2.3 [sequence.reqmts] | DR 704 removes complexity guarantee for `clear()` | Yes |  | 2013-01-15
2206 | New | 23.2.3 [sequence.reqmts] | Inaccuracy in `initializer_list` constructor requirements | No |  | 2012-11-14
2227 | New | 23.2.4 [associative.reqmts] | Stateful comparison objects in associative containers | Yes |  | 2012-12-25
2215 | New | 23.2.4 [associative.reqmts] | (unordered) associative container functors should be `CopyConstructible` | No |  | 2012-11-14
2198 | New | 23.2.5 [unord.req] | `max_load_factor(z)` makes no strong guarantees, but bans useful behavior | No |  | 2012-12-25
2156 | New | 23.2.5 [unord.req] | Unordered containers' `reserve(n)` reserves for `n-1` elements | No |  | 2012-11-14
2199 | New | 23.2.5 [unord.req] | unordered containers are required to have an initial max load factor of 1.0 | No |  | 2012-11-14
2189 | New | 23.2.5.1 [unord.req.except] | Throwing `swap` breaks unordered containers' state | No |  | 2012-11-14
2210 | New | 23.3 [sequences] | Missing allocator-extended constructor for allocator-aware containers | Yes |  | 2013-01-15
2209 | New | 23.3 [sequences] | `assign()` overspecified for sequence containers | Yes |  | 2012-11-14
2222 | New | 23.3.4.6 [forwardlist.ops] | Inconsistency in description of `forward_list::splice_after` single-element overload | Yes |  | 2012-12-25
2223 | New | 23.3.6.3 [vector.capacity] | `shrink_to_fit` effect on iterator validity | Yes |  | 2012-12-25
2158 | New | 23.3.6.3 [vector.capacity] | Conditional copy/move in `std::vector` | No |  | 2012-11-14
2160 | New | 23.3.6.3 [vector.capacity] | Unintended destruction ordering-specification of `resize` | No |  | 2012-11-14
2164 | New | 23.3.6.5 [vector.modifiers] | What are the semantics of `vector.emplace(vector.begin(), vector.back())`? | No |  | 2012-11-14
2161 | New | 23.4 [associative] | `const` equivalence of `std::map` | No |  | 2012-11-14
2076 | New | 23.4.6.2 [set.cons] | Bad `CopyConstructible` requirement in set constructors | Yes |  | 2012-11-14
2230 | New | 23.5 [unord] | "see below" for initializer-list constructors of unordered containers | Yes |  | 2013-01-15
2194 | New | 23.6 [container.adaptors] | Impossible container requirements for adaptor types | Yes |  | 2012-11-14
2208 | New | 24.5.1 [reverse.iterators] | `std::reverse_iterator` should be a literal type | No |  | 2012-11-14
2204 | New | 24.5.1.3.4 [reverse.iter.op.star] | `reverse_iterator` should not require a second copy of the base iterator | Yes |  | 2012-11-14
2188 | New | 24.5.1.3.5 [reverse.iter.opref] | Reverse iterator does not fully support targets that overload `operator&` | Yes |  | 2012-11-14
2173 | New | 25 [algorithms] | The meaning of operator + in the description of the algorithms | No |  | 2012-11-14
2150 | New | 25.2.6 [alg.find.end] | Unclear specification of `find_end` | Yes |  | 2012-11-14
2166 | New | 25.4.6 [alg.heap.operations] | Heap property underspecified? | No |  | 2012-11-14
2181 | New | 26.5.1.2 [rand.req.seedseq] | Exceptions from seed sequence operations | Yes |  | 2012-11-14
2182 | New | 26.5.1.2 [rand.req.seedseq] | `Container::[const_]reference` types are misleadingly specified | Yes |  | 2012-11-14
2154 | New | 26.5.1.3 [rand.req.urng] | What exactly does compile-time complexity imply? | No |  | 2012-11-14
2180 | New | 26.5.7.1 [rand.util.seedseq] | Exceptions from `std::seed_seq` operations | Yes |  | 2012-11-14
2168 | New | 26.5.8.2.2 [rand.dist.uni.real] | Inconsistent specification of `uniform_real_distribution` constructor | No |  | 2012-11-14
2079 | New | 26.8 [c.math] | Required `pow()` overloads | No |  | 2012-11-14
2192 | New | 26.8 [c.math] | Validity and return type of `std::abs(0u)` is unclear | Yes |  | 2012-11-14
2087 | New | 27.5 [iostreams.base] | `iostream_category()` and `noexcept` | Yes |  | 2012-11-14
2143 | New | 27.5.3 [ios.base] | `ios_base::xalloc` should be thread-safe | Yes |  | 2012-11-14
2214 | New | 27.5.5.2 [basic.ios.cons] | Clarify `basic_ios::init` call restrictions | Yes |  | 2012-11-14
2085 | New | 27.7.2.3 [istream.unformatted] | Wrong description of effect 1 of `basic_istream::ignore` | Yes |  | 2012-11-14
2131 | New | 27.7.2.3 [istream.unformatted] | Member function getline taking a string as parameter | Yes |  | 2012-11-14
2121 | New | 27.8.6 [stringstream.cons] | `app` for string streams | No |  | 2012-11-14
2217 | New | 28.9.2 [re.submatch.op] | `operator==(sub_match, string)` slices on embedded `'\0'`s | No |  | 2012-11-29
2195 | New | 28.10 [re.results] | Missing constructors for `match_results` | Yes |  | 2012-11-14
2183 | New | 28.10.1 [re.results.const] | Muddled allocator requirements for `match_results` constructors | No |  | 2012-11-14
2184 | New | 28.10.1 [re.results.const] | Muddled allocator requirements for `match_results` assignments | No |  | 2012-11-14
2191 | New | 28.10.1 [re.results.const] | Incorrect specification of `match_results(match_results&&)` | No |  | 2012-11-14
2205 | New | 28.11.2 [re.alg.match] | Problematic postconditions of `regex_match` and `regex_search` | Yes |  | 2012-11-14
2216 | New | 28.11.4 [re.alg.replace] | `regex_replace(basic_string)` allocator handling | No |  | 2012-11-29
2213 | New | 28.11.4 [re.alg.replace] | Return value of `std::regex_replace` | Yes |  | 2012-11-14
2220 | New | 28.12.2.2 [re.tokiter.comp] | Under-specification of `operator==` for `regex_token_iterator` | No |  | 2012-12-25
2221 | New | 28.12.2.2 [re.tokiter.comp] | No formatted output operator for `nullptr` | No |  | 2012-12-25
2104 | New | 30.4.2.2 [thread.lock.unique] | `unique_lock` move-assignment should not be `noexcept` | Yes |  | 2012-11-14
2095 | New | 30.6.5 [futures.promise] | `promise` and `packaged_task` missing constructors needed for uses-allocator construction | Yes |  | 2012-11-14
2202 | New | 30.6.8 [futures.async] | Missing allocator support by `async` | No |  | 2012-11-14
2097 | New | 30.6.9.1 [futures.task.members] | `packaged_task` constructors should be constrained | Yes |  | 2012-11-14
2201 | New | C.2 [diff.library] | Missing macro entries from C standard library | No |  | 2012-11-14

## Open (46 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2075 | Open | 1.10 [intro.multithread] | Progress guarantees, lock-free property, and scheduling assumptions | No |  | 2012-11-14
2136 | Open | 17.5.1 [structure] | Postconditions vs. exceptions | No |  | 2012-11-14
2152 | Open | 17.6.3.2 [swappable.requirements] | Instances of standard container types are not swappable | No |  | 2012-11-14
2114 | Open | 17.6.3.3 [nullablepointer.requirements] | Incorrect "contextually convertible to `bool`" requirements | Yes |  | 2012-11-14
2016 | Open | 17.6.3.5 [allocator.requirements] | `Allocators` must be no-throw swappable | Yes |  | 2012-11-14
2108 | Open | 17.6.3.5 [allocator.requirements] | No way to identify allocator types that always compare equal | Yes |  | 2012-11-14
2178 | Open | 17.6.3.5 [allocator.requirements] | `Allocator` requirement changes not mentioned Annex C | No |  | 2012-11-14
2129 | Open | 17.6.4.2.1 [namespace.std] | User specializations of `std::initializer_list` | No |  | 2012-11-14
2112 | Open | 17.6.5 [conforming] | User-defined classes that cannot be derived from | No |  | 2012-11-14
1526 | Open | 17.6.5.9 [res.on.data.races] | C++ should not impose thread safety requirements on C99 library implementations | Yes |  | 2012-11-14
2088 | Open | 18.8.3 [exception.terminate] | `std::terminate` problem | No |  | 2012-11-14
2111 | Open | 18.8.3.4 [terminate] | Which `unexpected`/`terminate` handler is called from the exception handling runtime? | No |  | 2012-11-14
2051 | Open | 20.4.2 [tuple.tuple] | Explicit `tuple` constructors for more than one parameter | No |  | 2012-11-14
2089 | Open | 20.6.9.1 [allocator.members] | `std::allocator::construct` should use uniform initialization | Yes |  | 2012-11-14
2127 | Open | 20.6.10 [storage.iterator] | Move-construction with `raw_storage_iterator` | Yes |  | 2012-11-14
2072 | Open | 20.6.11 [temporary.buffer] | Unclear wording about capacity of temporary buffers | No |  | 2012-11-14
2118 | Open | 20.7.1.3 [unique.ptr.runtime] | `unique_ptr` for array does not support cv qualification conversion of actual argument | Yes |  | 2012-12-25
2070 | Open | 20.7.2.2.6 [util.smartptr.shared.create] | `allocate_shared` should use `allocator_traits<A>::construct` | Yes |  | 2012-11-14
2149 | Open | 20.8 [function.objects] | Concerns about 20.8/5 | Yes |  | 2012-11-14
2062 | Open | 20.8.11.2 [func.wrap.func] | Effect contradictions w/o no-throw guarantee of `std::function` swaps | No |  | 2012-11-14
2119 | Open | 20.8.12 [unord.hash] | Missing `hash` specializations for extended integer types | Yes |  | 2012-11-14
2148 | Open | 20.8.12 [unord.hash] | Hashing enums should be supported directly by `std::hash` | No |  | 2012-11-14
2077 | Open | 20.9.4.3 [meta.unary.prop] | Further incomplete constraints for type traits | No |  | 2012-11-14
2116 | Open | 20.9.4.3 [meta.unary.prop] | `std::swap noexcept(what?)` | No |  | 2012-11-14
2101 | Open | 20.9.7 [meta.trans] | Some transformation types can produce impossible types | Yes |  | 2012-11-14
2063 | Open | 21.4 [basic.string] | Contradictory requirements for string move assignment | No |  | 2012-11-14
2003 | Open | 21.4.1 [string.require] | String exception inconsistency in erase. | Yes |  | 2012-11-14
1169 | Open | 22.4.2.1.2 [facet.num.get.virtuals] | `num_get` not fully compatible with `strto*` | Yes |  | 2012-11-14
2117 | Open | 22.4.2.2.2 [facet.num.put.virtuals] | `ios_base` manipulators should have `showgrouping/noshowgrouping` | Yes |  | 2012-11-14
2052 | Open | 23.2.4 [associative.reqmts] | Mixup between `mapped_type` and `value_type` for associative containers | Yes |  | 2012-11-14
1175 | Open | 23.2.5 [unord.req] | `unordered` complexity | Yes |  | 2012-11-14
2157 | Open | 23.3.2.8 [array.zero] | How does `std::array<T,0>` initialization work when `T` is not default-constructible? | Yes |  | 2012-11-14
2122 | Open | 23.3.5.5 [list.ops] | `merge()` stability for lists versus forward lists | Yes |  | 2012-11-14
2059 | Open | 23.4.4 [map] | C++0x ambiguity problem with `map::erase` | Yes |  | 2012-11-14
2035 | Open | 24.2.4 [output.iterators] | Output iterator requirements are broken | Yes |  | 2012-11-14
2038 | Open | 24.2.4 [output.iterators] | Missing definition for `incrementable` iterator | No |  | 2012-11-14
2128 | Open | 24.3 [iterator.synopsis] | Absence of global functions `cbegin/cend` | Yes |  | 2012-11-14
2106 | Open | 24.5.3 [move.iterators] | `move_iterator` wrapping iterators returning prvalues | Yes |  | 2013-01-15
2115 | Open | 26.6.8 [template.mask.array] | Undefined behaviour for `valarray` assignments with `mask_array` index? | No |  | 2012-11-14
1450 | Open | 28.5.2 [re.matchflag] | Contradiction in `regex_constants` | Yes |  | 2012-11-14
2018 | Open | 28.7 [re.traits] | `regex_traits::isctype` Returns clause is wrong | Yes |  | 2012-11-14
2137 | Open | 28.8.3 [re.regex.assign] | Misleadingly constrained post-condition in the presence of exceptions | Yes |  | 2012-11-14
2159 | Open | 29.7 [atomics.flag] | `atomic_flag` initialization | Yes |  | 2012-11-14
2135 | Open | 30.5.1 [thread.condition.condvar] | Unclear requirement for exceptions thrown in `condition_variable::wait()` | No |  | 2012-11-14
2186 | Open | 30.6.8 [futures.async] | Incomplete action on `async/launch::deferred` | Yes |  | 2012-11-14
2142 | Open | 30.6.9.1 [futures.task.members] | `packaged_task::operator()` synchronization too broad? | No |  | 2012-11-14

## EWG (1 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2193 | EWG | 23 [containers] | Default constructors for standard library containers are explicit | Yes |  | 2012-11-14

## Core (2 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2170 | Core | 17.6.3.1 [utility.arg.requirements] | Aggregates cannot be `DefaultConstructible` | Yes |  | 2012-11-14
2165 | Core | 29.5 [atomics.types.generic] | `std::atomic<X>` requires `X` to be nothrow default constructible | No |  | 2012-11-14

## Deferred (2 issues)

Issue | Status | Section | Title | Proposed Resolution | Duplicates | Last modified
2139 | Deferred | 17.6.4.2.1 [namespace.std] | What is a user-defined type? | No |  | 2012-11-14
1213 | Deferred | 24.2 [iterator.requirements] | Meaning of valid and singular iterator underspecified | Yes |  | 2012-11-14