C++ Standard Library Issues List (Revision R88)

Index by Section

Reference ISO/IEC IS 14882:2011(E)

This document is the Index by Section for the Library Active Issues List.

Index by Section (non-Ready active issues only)

(view all issues)

Revised 2014-05-24 at 10:05:55 UTC

Section 17 (18 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2136 Open 17.5.1 [structure] Postconditions vs. exceptions No 3
2292 New 17.5.1.4 [structure.specifications] Find a better phrasing for "shall not participate in overload resolution" No 3
2380 New 17.6.1.2 [headers] May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? Yes
2146 Open 17.6.3.1 [utility.arg.requirements] Are reference types Copy/Move-Constructible/Assignable or Destructible? No 2
2152 Open 17.6.3.2 [swappable.requirements] Instances of standard container types are not swappable No 2
2114 Open 17.6.3.3 [nullablepointer.requirements] Incorrect "contextually convertible to bool" requirements Yes 3
2384 New 17.6.3.5 [allocator.requirements] Allocator's deallocate function needs better specification Yes
2108 Open 17.6.3.5 [allocator.requirements] No way to identify allocator types that always compare equal Yes 3
2178 Open 17.6.3.5 [allocator.requirements] Allocator requirement changes not mentioned Annex C No 3
2260 Open 17.6.3.5 [allocator.requirements] Missing requirement for Allocator::pointer Yes 3
2129 Tentatively Ready 17.6.4.2.1 [namespace.std] User specializations of std::initializer_list Yes 3
2139 Open 17.6.4.2.1 [namespace.std] What is a user-defined type? No 4
2224 Open 17.6.4.10 [res.on.objects] Ambiguous status of access to non-live objects Yes 2
2373 New 17.6.5 [conforming] Make new entities and names in namespace std conforming extensions No
2133 Open 17.6.5.4 [global.functions] Attitude to overloaded comma for iterators Yes 3
2259 New 17.6.5.5 [member.functions] Issues in 17.6.5.5 rules for member functions Yes 3
2382 New 17.6.5.8 [reentrancy] Unclear order of container update versus object destruction on removing an object No
1526 Open 17.6.5.9 [res.on.data.races] C++ should not impose thread safety requirements on C99 library implementations Yes 3

Section 18 (10 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2251 New 18.2 [support.types] C++ library should define ssize_t Yes 3
2248 New 18.3.2 [limits] numeric_limits::is_iec559 misnamed No 4
2368 New 18.6.1 [new.delete] Replacing global operator new No
2302 Tentatively NAD 18.6.1.3 [new.delete.placement] Passing null pointer to placement new Yes 2
2303 New 18.6.1.3 [new.delete.placement] Explicit instantiation of std::vector<UserType> broken? No 3
2378 New 18.6.2.1 [bad.alloc] Behaviour of standard exception types Yes
2088 Open 18.8.3 [exception.terminate] std::terminate problem No 3
2111 Review 18.8.3.4 [terminate] Which unexpected/terminate handler is called from the exception handling runtime? Yes 3
2241 Open 18.10 [support.runtime] <cstdalign> and #define of alignof No 2
2155 Open 18.10 [support.runtime] Macro __bool_true_false_are_defined should be removed No 4

Section 19 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2234 Open 19.3 [assertions] assert() should allow usage in constant expressions No 3

Section 20 (39 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2212 Tentatively Ready 20.2 [utility] tuple_size for const pair request <tuple> header Yes 3
2153 Open 20.2.2 [utility.swap] Narrowing of the non-member swap contract No 2
2388 New 20.2.3 [utility.exchange] Handling self-assignment in the proposed library function std::exchange Yes
2289 New 20.3.2 [pairs.pair] constexpr guarantees of defaulted functions still insufficient Yes 3
2051 Open 20.4.2 [tuple.tuple] Explicit tuple constructors for more than one parameter No 2
2312 New 20.4.2.1 [tuple.cnstr] tuple's constructor constraints need to be phrased more precisely Yes 2
2348 New 20.6 [template.bitset] charT('1') is not the wide equivalent of '1' Yes 3
2250 New 20.6.1 [bitset.cons] Follow-up On Library Issue 2207 Yes 3
2377 New 20.7.5 [ptr.align] std::align requirements overly strict Yes
2089 Open 20.7.9.1 [allocator.members] std::allocator::construct should use uniform initialization Yes 2
2127 Open 20.7.10 [storage.iterator] Move-construction with raw_storage_iterator Yes 3
2072 Open 20.7.11 [temporary.buffer] Unclear wording about capacity of temporary buffers Yes 3
2296 New 20.7.12.1 [specialized.addressof] std::addressof should be constexpr Yes 3
2361 Tentatively Ready 20.8.1.2 [unique.ptr.single] Apply 2299 resolution throughout library Yes
2262 New 20.8.1.2 [unique.ptr.single] Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr Yes 3
2228 Review 20.8.1.2.3 [unique.ptr.single.asgn] Missing SFINAE rule in unique_ptr templated assignment Yes 3
2118 Open 20.8.1.3 [unique.ptr.runtime] [CD] unique_ptr for array does not support cv qualification conversion of actual argument Yes 1
2376 Tentatively Ready 20.8.2.1 [util.smartptr.weakptr] bad_weak_ptr::what() overspecified Yes
2365 Tentatively Ready 20.8.2.2 [util.smartptr.shared] Missing noexcept in shared_ptr::shared_ptr(nullptr_t) Yes
2337 New 20.8.2.2.5 [util.smartptr.shared.obs] shared_ptr operator*() should not be noexcept Yes 2
2070 Open 20.8.2.2.6 [util.smartptr.shared.create] allocate_shared should use allocator_traits<A>::construct Yes 2
2179 Open 20.8.2.5 [util.smartptr.enab] enable_shared_from_this and construction from raw pointers No 3
2387 New 20.9.2 [func.require] More nested types that must be accessible and unambiguous No
2219 Open 20.9.2 [func.require] INVOKE-ing a pointer to member with a reference_wrapper as the object expression Yes 2
2233 Tentatively Ready 20.9.11.1 [func.wrap.badcall] bad_function_call::what() unhelpful Yes 3
2385 New 20.9.11.2 [func.wrap.func] function::assign allocator argument doesn't make sense Yes
2370 New 20.9.11.2 [func.wrap.func] Operations involving type-erased allocators should not be noexcept in std::function Yes
2062 Open 20.9.11.2 [func.wrap.func] Effect contradictions w/o no-throw guarantee of std::function swaps No 2
2386 New 20.9.11.2.1 [func.wrap.func.con] function::operator= handles allocators incorrectly Yes
2119 Open 20.9.12 [unord.hash] Missing hash specializations for extended integer types Yes 3
2290 New 20.10 [meta] Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 Yes 3
2371 New 20.10.2 [meta.type.synop] No template aliases defined for new type traits Yes
2367 New 20.10.4.3 [meta.unary.prop] pair and tuple are not correctly implemented for is_constructible with no args Yes
2336 New 20.10.4.3 [meta.unary.prop] is_trivially_constructible/is_trivially_assignable traits are always false Yes 3
2358 New 20.10.4.3 [meta.unary.prop] Apparently-bogus definition of is_empty type trait No 3
2077 Open 20.10.4.3 [meta.unary.prop] Further incomplete constraints for type traits No 3
2116 Open 20.10.4.3 [meta.unary.prop] std::swap noexcept(what?) No 3
2101 Open 20.10.7 [meta.trans] Some transformation types can produce impossible types Yes 3
2383 New 20.12.5.8 [time.duration.literals] Overflow cannot be ill-formed for chrono::duration integer literals No

Section 21 (6 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2372 New 21.4 [basic.string] Assignment from int to std::string Yes
2318 New 21.4 [basic.string] basic_string's wording has confusing relics from the copy-on-write era No 4
2063 Open 21.4 [basic.string] Contradictory requirements for string move assignment No 3
2151 Open 21.4.1 [string.require] basic_string<>::swap semantics ignore allocators No 3
2237 New 21.8 [c.strings] <cuchar> macros No 4
2238 New 21.8 [c.strings] Problematic iterator-pair constructor of containers No 3

Section 22 (4 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2295 New 22.3.1.2 [locale.cons] Locale name when the provided Facet is a nullptr No 3
2381 New 22.4.2.1.2 [facet.num.get.virtuals] Inconsistency in parsing floating point numbers No
1169 Open 22.4.2.1.2 [facet.num.get.virtuals] num_get not fully compatible with strto* Yes 3
2117 New 22.4.2.2.2 [facet.num.put.virtuals] ios_base manipulators should have showgrouping/noshowgrouping No 5

Section 23 (30 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2307 New 23 [containers] Should the Standard Library use explicit only when necessary? No 1
2261 New 23.2 [container.requirements] Are containers required to use their 'pointer' type internally? No 2
2269 New 23.2.1 [container.requirements.general] Container iterators and argument-dependent lookup No 4
2321 Open 23.2.1 [container.requirements.general] Moving containers should (usually) be required to preserve iterators Yes 2
2218 Open 23.2.1 [container.requirements.general] Unclear how containers use allocator_traits::construct() Yes 3
2254 Deferred 23.2.1 [container.requirements.general] Is dynarray an allocator-aware container? Yes
2266 Tentatively Ready 23.2.3 [sequence.reqmts] vector and deque have incorrect insert requirements Yes 2
2206 Open 23.2.3 [sequence.reqmts] Inaccuracy in initializer_list constructor requirements No 3
2362 New 23.2.4 [associative.reqmts] unique, associative emplace() should not move/copy the mapped_type constructor arguments when no insertion happens No
2215 Open 23.2.4 [associative.reqmts] (unordered) associative container functors should be CopyConstructible No 3
2227 Open 23.2.4 [associative.reqmts] Stateful comparison objects in associative containers Yes 3
2156 Open 23.2.5 [unord.req] Unordered containers' reserve(n) reserves for n-1 elements Yes 3
1175 Open 23.2.5 [unord.req] unordered complexity Yes 3
2198 Open 23.2.5 [unord.req] max_load_factor(z) makes no strong guarantees, but bans useful behavior No 3
2199 Open 23.2.5 [unord.req] unordered containers are required to have an initial max load factor of 1.0 No 3
2189 Open 23.2.5.1 [unord.req.except] Throwing swap breaks unordered containers' state No 3
2335 New 23.3.2 [array] array<array<int, 3>, 4> should be layout-compatible with int[4][3] No 3
2310 New 23.3.2.1 [array.overview] Public exposition only member in std::array No 4
2157 Open 23.3.2.8 [array.zero] How does std::array<T,0> initialization work when T is not default-constructible? Yes 3
2364 New 23.3.3.4 [deque.modifiers] deque and vector pop_back don't specify iterator invalidation requirements Yes
2158 New 23.3.6.3 [vector.capacity] Conditional copy/move in std::vector No 2
2223 Open 23.3.6.3 [vector.capacity] shrink_to_fit effect on iterator validity Yes 2
2160 Open 23.3.6.3 [vector.capacity] Unintended destruction ordering-specification of resize No 1
2164 New 23.3.6.5 [vector.modifiers] What are the semantics of vector.emplace(vector.begin(), vector.back())? No 2
2256 New 23.3.6.5 [vector.modifiers] On vector iterator invalidation No 3
2161 New 23.4 [associative] const equivalence of std::map No 2
2059 Open 23.4.4 [map] C++0x ambiguity problem with map::erase Yes 3
2274 Open 23.4.4.3 [map.access] Does map::operator[] value-initialize or default-insert a missing element? Yes 3
2076 New 23.4.6.2 [set.cons] Bad CopyConstructible requirement in set constructors Yes 3
2230 Tentatively Ready 23.5 [unord] "see below" for initializer-list constructors of unordered containers Yes 4

Section 24 (9 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
1213 Open 24.2 [iterator.requirements] Meaning of valid and singular iterator underspecified Yes 4
2375 New 24.2.1 [iterator.requirements.general] Is [iterator.requirements.general]/9 too broadly applied? No
2035 Open 24.2.4 [output.iterators] Output iterator requirements are broken Yes 3
2038 Open 24.2.4 [output.iterators] Missing definition for incrementable iterator No 3
2353 New 24.4.4 [iterator.operations] std::next is over-constrained Yes 4
2208 New 24.5.1 [reverse.iterators] std::reverse_iterator should be a literal type No 3
2106 Tentatively Ready 24.5.3 [move.iterators] move_iterator wrapping iterators returning prvalues Yes 3
2366 New 24.6.3 [istreambuf.iterator] istreambuf_iterator end-of-stream equality No
2277 Deferred 24.7 [iterator.range] <dynarray> is missing in 24.7/1 Yes

Section 25 (7 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2173 New 25 [algorithms] The meaning of operator + in the description of the algorithms No 4
2242 New 25.3.1 [alg.copy] [uninitialized_]copy_n() defect No 2
2267 New 25.4.1.4 [partial.sort.copy] partial_sort_copy underspecified for ranges of two different types No 3
2166 New 25.4.6 [alg.heap.operations] Heap property underspecified? No 3
2369 New 25.4.7 [alg.min.max] constexpr max(initializer_list) vs max_element Yes
2239 New 25.4.7 [alg.min.max] min/max/minmax requirements No 3
2325 New 25.4.7 [alg.min.max] minmax_element()'s behavior differing from max_element()'s should be noted Yes 3

Section 26 (10 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2326 New 26.5.1.1 [rand.req.genl] uniform_int_distribution<unsigned char> should be permitted No 2
2181 Open 26.5.1.2 [rand.req.seedseq] Exceptions from seed sequence operations Yes 3
2154 New 26.5.1.3 [rand.req.urng] What exactly does compile-time complexity imply? No 4
2351 New 26.5.3 [rand.eng] Does .seed() completely reset state of engine? Yes 2
2352 New 26.5.7.1 [rand.util.seedseq] Is a default-constructed std::seed_seq intended to produce a predictable .generate()? No 2
2168 New 26.5.8.2.2 [rand.dist.uni.real] Inconsistent specification of uniform_real_distribution constructor No 3
2115 Open 26.6.8 [template.mask.array] Undefined behaviour for valarray assignments with mask_array index? No 4
2079 New 26.8 [c.math] Required pow() overloads No 3
2294 Open 26.8 [c.math] <cstdlib> should declare abs(double) Yes 2
2192 Open 26.8 [c.math] Validity and return type of std::abs(0u) is unclear Yes 2

Section 27 (9 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2214 Open 27.5.5.2 [basic.ios.cons] Clarify basic_ios::init call restrictions Yes 4
2349 New 27.7.2.2.1 [istream.formatted.reqmts] Clarify input/output function rethrow behavior Yes 3
2243 New 27.7.2.3 [istream.unformatted] istream::putback problem No 3
2244 New 27.7.2.3 [istream.unformatted] Issue on basic_istream::seekg Yes 3
2328 Open 27.7.2.6 [istream.rvalue] Rvalue stream extraction should use perfect forwarding Yes 3
2221 New 27.7.3 [output.streams] No formatted output operator for nullptr No 3
2342 New 27.7.3.1 [ostream] User conversion to wchar_t const* or to wchar_t not invoked for operator<< Yes 4
2286 New 27.8.2.4 [stringbuf.virtuals] stringbuf::underflow() underspecified Yes 4
2121 New 27.8.6 [stringstream.cons] app for string streams No 3

Section 28 (12 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2331 Open 28.5.1 [re.synopt] regex_constants::collate's effects are inaccurately summarized Yes 3
2338 New 28.7 [re.traits] [re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 Yes 3
2137 Open 28.8.3 [re.regex.assign] Misleadingly constrained post-condition in the presence of exceptions Yes 3
2217 Tentatively Ready 28.9.2 [re.submatch.op] operator==(sub_match, string) slices on embedded '\0's Yes 2
2195 Open 28.10 [re.results] Missing constructors for match_results Yes 3
2183 New 28.10.1 [re.results.const] Muddled allocator requirements for match_results constructors No 3
2184 New 28.10.1 [re.results.const] Muddled allocator requirements for match_results assignments No 3
2191 New 28.10.1 [re.results.const] Incorrect specification of match_results(match_results&&) No 4
2273 New 28.11.2 [re.alg.match] regex_match ambiguity No 2
2216 New 28.11.4 [re.alg.replace] regex_replace(basic_string) allocator handling No 3
2220 New 28.12.2.2 [re.tokiter.comp] Under-specification of operator== for regex_token_iterator No 2
2343 New 28.13 [re.grammar] Is the value of the ECMA-262 RegExp object's multiline property really false? No 2

Section 29 (4 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2236 New 29.2 [atomics.syn] kill_dependency unconditionally noexcept No
2265 New 29.3 [atomics.order] 29.3p9 appears to rule out some acceptable executions No
2165 Core 29.5 [atomics.types.generic] std::atomic<X> requires X to be nothrow default constructible No
2334 New 29.6.5 [atomics.types.operations.req] atomic's default constructor requires "uninitialized" state even for types with non-trivial default-constructor Yes

Section 30 (7 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2379 New 30.2.3 [thread.req.native] Obtaining native handle of the current thread Yes
2309 New 30.4.1.2 [thread.mutex.requirements.mutex] mutex::lock() should not throw device_or_resource_busy No
2363 New 30.4.1.4.1 [thread.sharedtimedmutex.class] Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] No
2276 New 30.6 [futures] Missing requirement on std::promise::set_exception No
2095 Open 30.6.5 [futures.promise] promise and packaged_task missing constructors needed for uses-allocator construction Yes 4
2202 Open 30.6.8 [futures.async] Missing allocator support by async No 4
2245 New 30.6.9.1 [futures.task.members] packaged_task::reset() memory allocation No

Section C (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2201 New C.4 [diff.library] Missing macro entries from C standard library No 2

Section X (10 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2389 New X [mods.func.wrap] [fund.ts] function::operator= is over-specified and handles allocators incorrectly Yes
2374 New X [optional.object.observe] Remarks for optional::to_value are too restrictive Yes
2253 Deferred X [dynarray.overview] dynarray should state which container requirements aren't met Yes
2255 Deferred X [dynarray.cons] dynarray constructor ambiguity Yes
2264 Deferred X [dynarray] std::dynarray defines its initializer-list constructor in terms of a non-existent constructor Yes
2282 Deferred X [optional.object.assign] Incorrect is_assignable constraint in optional::op=(U&&) Yes
2283 Deferred X [optional.comp_with_t] optional declares and then does not define an operator<() Yes
2287 Deferred X [optional.object.assign] Incorrect exception safety for optional copy assignment operator Yes
2305 Deferred X [optional.object.ctor] optional forwarding construction/assignment Yes
2333 Deferred X [optional.hash] Hashing disengaged optional<T> objects Yes