C++ Standard Library Issues List (Revision R93)

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 2015-05-23 at 15:05:40 UTC

Section 17 (15 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
1173 Open 17 [library] "Equivalence" wishy-washiness No 3
877 LEWG 17 [library] to throw() or to Throw: Nothing. Yes
2392 New 17.3 [defns.ntcts] "character type" is used but not defined No 3
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
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
2461 New 17.6.3.5 [allocator.requirements] Interaction between allocators and container exception safety guarantees No 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
2139 Open 17.6.4.2.1 [namespace.std] What is a user-defined type? Yes 4
2468 New 17.6.4.9 [res.on.arguments] Self-move-assignment of library types No 2
2224 Tentatively Ready 17.6.4.10 [res.on.objects] Ambiguous status of access to non-live objects Yes 2
2414 Open 17.6.5.8 [reentrancy] Member function reentrancy should be implementation-defined Yes 3

Section 18 (11 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2248 New 18.3.2 [limits] numeric_limits::is_iec559 misnamed No 4
2422 Open 18.3.2.4 [numeric.limits.members] std::numeric_limits<T>::is_modulo description: "most machines" errata Yes 2
2368 New 18.6.1 [new.delete] Replacing global operator new No 2
2303 New 18.6.1.3 [new.delete.placement] Explicit instantiation of std::vector<UserType> broken? No 3
2398 Open 18.7.1 [type.info] type_info's destructor shouldn't be required to be virtual Yes 2
2088 Open 18.8.3 [exception.terminate] std::terminate problem No 3
2493 New 18.9 [support.initlist] initializer_list supports incomplete classes No 4
2453 New 18.9 [support.initlist] [iterator.range] and now [iterator.container] aren't available via <initializer_list> No 3
2432 EWG 18.9 [support.initlist] initializer_list assignability Yes 2
2155 Open 18.10 [support.runtime] Macro __bool_true_false_are_defined should be removed Yes 4
2241 Open 18.10 [support.runtime] <cstdalign> and #define of alignof No 2

Section 19 (2 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2413 New 19.3 [assertions] assert macro is overconstrained No 4
2234 Open 19.3 [assertions] assert() should allow usage in constant expressions Yes 2

Section 20 (47 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2456 Open 20.2 [utility] Incorrect exception specifications for 'swap' throughout library No 1
1289 LEWG 20.2 [utility] Generic casting requirements for smart pointers Yes
2153 Open 20.2.2 [utility.swap] Narrowing of the non-member swap contract No 2
2289 Open 20.3.2 [pairs.pair] constexpr guarantees of defaulted functions still insufficient Yes 3
2446 LEWG 20.4.1 [tuple.general] Unspecialized std::tuple_size should be defined Yes
2051 Open 20.4.2 [tuple.tuple] Explicit tuple constructors for more than one parameter No 2
2312 Open 20.4.2.1 [tuple.cnstr] tuple's constructor constraints need to be phrased more precisely Yes 2
2419 LEWG 20.4.2.1 [tuple.cnstr] Clang's libc++ extension to std::tuple No
1201 LEWG 20.4.2.4 [tuple.creation] Do we always want to unwrap ref-wrappers in make_tuple Yes
2472 New 20.4.2.7 [tuple.rel] Heterogeneous comparisons in the standard library can result in ambiguities No 3
532 LEWG 20.4.2.7 [tuple.rel] Tuple comparison Yes 348
2348 Open 20.6 [template.bitset] charT('1') is not the wide equivalent of '1' Yes 3
1112 LEWG 20.6 [template.bitset] bitsets and new style for loop Yes
2421 New 20.7.5 [ptr.align] Non-specification of handling zero size in std::align [ptr.align] No 3
2089 EWG 20.7.9.1 [allocator.members] std::allocator::construct should use uniform initialization Yes 2
2296 Review 20.7.12.1 [specialized.addressof] std::addressof should be constexpr Yes 3
2262 Open 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
933 LEWG 20.8.1.2.5 [unique.ptr.single.modifiers] Unique_ptr defect No
1031 LEWG 20.8.2.2 [util.smartptr.shared] Need shared_ptr conversion to a unique_ptr No
1406 LEWG 20.8.2.2 [util.smartptr.shared] Support hashing smart-pointers based on owner Yes
2495 New 20.8.2.2.1 [util.smartptr.shared.const] There is no such thing as an Exception Safety element Yes
2337 Tentatively NAD 20.8.2.2.5 [util.smartptr.shared.obs] shared_ptr operator*() should not be noexcept No 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
2445 SG1 20.8.2.6 [util.smartptr.shared.atomic] "Stronger" memory ordering No
2491 New 20.9.6 [comparisons] std::less<T*> in constant expression No 3
2450 Open 20.9.6 [comparisons] (greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers Yes 2
2501 New 20.9.12.2 [func.wrap.func] std::function requires POCMA/POCCA No
2502 New 20.9.12.2 [func.wrap.func] std::function does not use allocator::construct No
2370 Open 20.9.12.2 [func.wrap.func] Operations involving type-erased allocators should not be noexcept in std::function Yes 3
2062 Open 20.9.12.2 [func.wrap.func] Effect contradictions w/o no-throw guarantee of std::function swaps No 2
2393 Open 20.9.12.2 [func.wrap.func] std::function's Callable definition is broken Yes 2
1025 LEWG 20.9.13 [unord.hash] The library should provide more specializations for std::hash No
1317 LEWG 20.9.13 [unord.hash] make_hash Yes
2290 New 20.10 [meta] Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 Yes 3
1120 LEWG 20.10 [meta] New type trait - remove_all No
2040 LEWG 20.10 [meta] Missing type traits related to is_convertible Yes
2452 Core 20.10 [meta] is_constructible, etc. and default arguments No
2496 New 20.10.4.3 [meta.unary.prop] Certain hard-to-avoid errors not in the immediate context are not allowed to be triggered by the evaluation of type traits No
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
2460 New 20.10.7.6 [meta.trans.other] LWG issue 2408 and value categories No 2
2465 New 20.10.7.6 [meta.trans.other] SFINAE-friendly common_type is nearly impossible to specialize correctly and regresses key functionality No 2
1121 LEWG 20.11.4 [ratio.arithmetic] Support for multiple arguments Yes
2383 Open 20.12.5.8 [time.duration.literals] Overflow cannot be ill-formed for chrono::duration integer literals No 3
935 LEWG 20.12.7 [time.clock] clock error handling needs to be specified Yes

Section 21 (9 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2232 LEWG 21.2.3 [char.traits.specializations] [CD] The char_traits specializations should declare their length(), compare(), and find() members constexpr Yes
2318 New 21.4 [basic.string] basic_string's wording has confusing relics from the copy-on-write era No 4
2372 LEWG 21.4 [basic.string] Assignment from int to std::string Yes 4
2391 LEWG 21.4 [basic.string] basic_string is missing non-const data() Yes 3
2151 Open 21.4.1 [string.require] basic_string<>::swap semantics ignore allocators No 3
2402 Open 21.4.2 [string.cons] basic_string(const basic_string& str, size_type pos, size_type n = npos) shouldn't use Allocator() Yes 3
2475 New 21.4.5 [string.access] Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs Yes 3
2237 New 21.8 [c.strings] <cuchar> macros No 4
2238 Open 21.8 [c.strings] Problematic iterator-pair constructor of containers No 3

Section 22 (10 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
708 LEWG 22 [localization] Locales need to be per thread and updated for POSIX changes No
2295 New 22.3.1.2 [locale.cons] Locale name when the provided Facet is a nullptr No 3
2394 New 22.3.1.3 [locale.members] locale::name specification unclear — what is implementation-defined? No 3
2478 New 22.3.3.2.2 [conversions.string] Unclear how wstring_convert uses cvtstate No 4
2481 New 22.3.3.2.2 [conversions.string] wstring_convert should be more precise regarding "byte-error string" etc. No 4
2226 LEWG 22.3.3.2.2 [conversions.string] wstring_convert methods do not take allocator instance Yes
2479 New 22.3.3.2.3 [conversions.buffer] Unclear how wbuffer_convert uses cvtstate No 4
2480 New 22.3.3.2.3 [conversions.buffer] Error handling of wbuffer_convert unclear No 4
2381 New 22.4.2.1.2 [facet.num.get.virtuals] Inconsistency in parsing floating point numbers No 3
2117 New 22.4.2.2.2 [facet.num.put.virtuals] ios_base manipulators should have showgrouping/noshowgrouping No 5

Section 23 (34 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2307 Open 23 [containers] Should the Standard Library use explicit only when necessary? No 2
1242 LEWG 23 [containers] Enable SCARY iterators Yes
760 Tentatively NAD 23.2 [container.requirements] The emplace issue Yes 2
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
2254 Open 23.2.1 [container.requirements.general] [arrays.ts] Is dynarray an allocator-aware container? Yes 3
2321 Open 23.2.1 [container.requirements.general] Moving containers should (usually) be required to preserve iterators Yes 2
1521 LEWG 23.2.1 [container.requirements.general] Requirements on internal pointer representations in containers Yes
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 3
2227 Open 23.2.4 [associative.reqmts] Stateful comparison objects in associative containers Yes 3
2215 Open 23.2.4 [associative.reqmts] (unordered) associative container functors should be CopyConstructible No 3
1041 LEWG 23.2.4 [associative.reqmts] Add associative/unordered container functions that allow to extract elements Yes
2430 LEWG 23.2.4 [associative.reqmts] Heterogeneous container lookup should be enabled using meta-function instead of nested type No
2436 LEWG 23.2.4 [associative.reqmts] Comparators for associative containers should always be CopyConstructible Yes 2
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
1188 LEWG 23.2.5 [unord.req] Unordered containers should have a minimum load factor as well as a maximum Yes
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
851 LEWG 23.3.2 [array] simplified array construction Yes
2443 LEWG 23.3.2 [array] std::array member functions should be constexpr No
2310 Open 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
1184 LEWG 23.3.6 [vector] Feature request: dynamic bitset No
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
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
2449 New 23.3.6.5 [vector.modifiers] vector::insert invalidates end()? No 3
1422 LEWG 23.3.7 [vector.bool] vector<bool> iterators are not random access No
2161 New 23.4 [associative] const equivalence of std::map No 2
839 LEWG 23.4 [associative] Maps and sets missing splice operation No

Section 24 (11 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 No 4
2375 New 24.2.1 [iterator.requirements.general] Is [iterator.requirements.general]/9 too broadly applied? No 3
484 LEWG 24.2.3 [input.iterators] Convertible to T 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
1320 LEWG 24.3 [iterator.synopsis] Header for iter_swap Yes
2208 New 24.5.1 [reverse.iterators] std::reverse_iterator should be a literal type No 3
1052 LEWG 24.5.1.3.5 [reverse.iter.opref] reverse_iterator::operator-> should also support smart pointers Yes
2366 New 24.6.3 [istreambuf.iterator] istreambuf_iterator end-of-stream equality No 3
2457 New 24.7 [iterator.range] std::begin() and std::end() do not support multi-dimensional arrays correctly No 3
2277 Open 24.7 [iterator.range] [arrays.ts] <dynarray> is missing in 24.7/1 Yes 3

Section 25 (9 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 Yes 4
1053 LEWG 25 [algorithms] Unify algorithms with operator and function object variants No
1238 LEWG 25 [algorithms] defining algorithms taking iterator for range No
1282 LEWG 25 [algorithms] A proposal to add std::split algorithm Yes
2471 New 25.3.1 [alg.copy] copy_n's number of InputIterator increments unspecified No 3
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
2444 Open 25.4.6.4 [sort.heap] Inconsistent complexity for std::sort_heap Yes 3

Section 26 (11 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
1154 LEWG 26.4 [complex.numbers] complex should accept integral types Yes
1217 LEWG 26.4 [complex.numbers] Quaternion support No
2326 New 26.5.1.1 [rand.req.genl] uniform_int_distribution<unsigned char> should be permitted Yes 2
2154 New 26.5.1.3 [rand.req.urng] What exactly does compile-time complexity imply? No 4
2352 New 26.5.7.1 [rand.util.seedseq] Is a default-constructed std::seed_seq intended to produce a predictable .generate()? No 2
2423 New 26.6.5 [template.slice.array] Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor Yes 4
2115 Open 26.6.8 [template.mask.array] Undefined behaviour for valarray assignments with mask_array index? No 4
2055 LEWG 26.7 [numeric.ops] std::move in std::accumulate and other algorithms No
2474 New 26.8 [c.math] <cmath> functions unfriendly to integral_constant arguments Yes 4
2192 Open 26.8 [c.math] Validity and return type of std::abs(0u) is unclear Yes 2
2294 Open 26.8 [c.math] <cstdlib> should declare abs(double) Yes 2

Section 27 (15 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
423 LEWG 27 [input.output] effects of negative streamsize in iostreams Yes
2214 Open 27.5.5.2 [basic.ios.cons] Clarify basic_ios::init call restrictions Yes 4
255 LEWG 27.6.3 [streambuf] Why do basic_streambuf<>::pbump() and gbump() take an int? Yes
2349 Open 27.7.2.2.1 [istream.formatted.reqmts] Clarify input/output function rethrow behavior Yes 3
2499 New 27.7.2.2.3 [istream::extractors] operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows No
2243 New 27.7.2.3 [istream.unformatted] istream::putback problem No 3
2328 Review 27.7.2.6 [istream.rvalue] Rvalue stream extraction should use perfect forwarding Yes 3
2498 New 27.7.2.6 [istream.rvalue] operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return basic_istream&& No
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
2497 New 27.7.3.4 [ostream::sentry] Use of uncaught_exception() No
1203 LEWG 27.7.3.9 [ostream.rvalue] More useful rvalue stream insertion Yes
2286 New 27.8.2.4 [stringbuf.virtuals] stringbuf::underflow() underspecified Yes 4
2121 New 27.8.5.1 [stringstream.cons] app for string streams No 3
1150 LEWG 27.9.1.14 [fstream] wchar_t, char16_t and char32_t filenames No

Section 28 (16 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2490 New 28 [re] <regex> needs lots of noexcept No 3
523 LEWG 28 [re] regex case-insensitive character ranges are unimplementable as specified No
2431 New 28.3 [re.req] Missing regular expression traits requirements No 3
2503 New 28.5.1 [re.synopt] multiline option should be added to syntax_option_type Yes
2331 Open 28.5.1 [re.synopt] regex_constants::collate's effects are inaccurately summarized Yes 3
2338 Open 28.7 [re.traits] [re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 Yes 3
1396 LEWG 28.8 [re.regex] regex should support allocators No 1451
2137 Open 28.8.3 [re.regex.assign] Misleadingly constrained post-condition in the presence of exceptions Yes 3
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 Open 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 (8 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2236 SG1 29.2 [atomics.syn] kill_dependency unconditionally noexcept No
2265 Open 29.3 [atomics.order] 29.3p9 appears to rule out some acceptable executions No
1459 LEWG 29.3 [atomics.order] Overlapping evaluations are allowed No 1458
2424 Review 29.5 [atomics.types.generic] 29.5 should state that atomic types are not trivially copyable Yes 2
2441 Open 29.5 [atomics.types.generic] Exact-width atomic typedefs should be provided Yes
2165 Core 29.5 [atomics.types.generic] std::atomic<X> requires X to be nothrow default constructible No
2426 Open 29.6.5 [atomics.types.operations.req] Issue about compare_exchange Yes
2334 SG1 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 (14 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2379 Open 30.2.3 [thread.req.native] Obtaining native handle of the current thread Yes
1484 LEWG 30.3.1 [thread.thread.class] Need a way to join a thread with a timeout No
1488 LEWG 30.4 [thread.mutex] Improve interoperability between the C++0x and C1x threads APIs No
936 LEWG 30.4.1 [thread.mutex.requirements] Mutex type overspecified No 961
961 LEWG 30.4.1 [thread.mutex.requirements] Various threading bugs #11 No 936
1493 LEWG 30.4.1 [thread.mutex.requirements] Add mutex, recursive_mutex, is_locked function No
2309 Open 30.4.1.2 [thread.mutex.requirements.mutex] mutex::lock() should not throw device_or_resource_busy Yes
2363 Open 30.4.1.5.1 [thread.sharedtimedmutex.class] Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] Yes
1499 LEWG 30.5 [thread.condition] Condition variables preclude wakeup optimization No
2276 Open 30.6 [futures] Missing requirement on std::promise::set_exception Yes
2095 Open 30.6.5 [futures.promise] promise and packaged_task missing constructors needed for uses-allocator construction Yes 4
2412 SG1 30.6.5 [futures.promise] promise::set_value() and promise::get_future() should not race Yes
2202 Deferred 30.6.8 [futures.async] Missing allocator support by async No 4
2245 Open 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.5 [diff.library] Missing macro entries from C standard library No 2

Section X (5 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2500 New X [memory.smartptr.shared.obs] [fund.ts.v2] fundts.memory.smartptr.shared.obs/6 should apply to cv-unqualified void Yes
2264 Open X [dynarray] [arrays.ts] std::dynarray defines its initializer-list constructor in terms of a non-existent constructor Yes 1
1235 LEWG X [rand.concept.dist] Issue with C++0x random number proposal No
2417 LEWG X [optional.relops] [fund.ts] std::experimental::optional::operator< and LessThanComparable requirement No
2451 LEWG X [optional.object] [fund.ts] optional<T> should 'forward' T's implicit conversions No