C++ Standard Library Issues List (Revision R94)

Table of Contents

Reference ISO/IEC IS 14882:2011(E)

This document is the Table of Contents for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.

Revised 2015-09-28 at 05:09:24 UTC

Issue Status Section Title Proposed Resolution Priority Duplicates
1173 Open 17 [library] "Equivalence" wishy-washiness No 3
1175 Open 23.2.5 [unord.req] unordered complexity Yes 3
1213 Open 24.2 [iterator.requirements] Meaning of valid and singular iterator underspecified No 4
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
2062 Open 20.9.12.2 [func.wrap.func] Effect contradictions w/o no-throw guarantee of std::function swaps No 2
2070 Open 20.8.2.2.6 [util.smartptr.shared.create] allocate_shared should use allocator_traits<A>::construct Yes 2
2077 Open 20.10.4.3 [meta.unary.prop] Further incomplete constraints for type traits No 3
2088 Open 18.8.3 [exception.terminate] std::terminate problem No 3
2089 EWG 20.7.9.1 [allocator.members] std::allocator::construct should use uniform initialization Yes 2
2095 Open 30.6.5 [futures.promise] promise and packaged_task missing constructors needed for uses-allocator construction Yes 4
2114 Open 17.6.3.3 [nullablepointer.requirements] Incorrect "contextually convertible to bool" requirements Yes 3
2115 Open 26.6.8 [template.mask.array] Undefined behaviour for valarray assignments with mask_array index? No 4
2116 Open 20.10.4.3 [meta.unary.prop] std::swap noexcept(what?) No 3
2117 New 22.4.2.2.2 [facet.num.put.virtuals] ios_base manipulators should have showgrouping/noshowgrouping No 5
2121 New 27.8.5.1 [stringstream.cons] app for string streams No 3
2136 Open 17.5.1 [structure] Postconditions vs. exceptions No 3
2137 Open 28.8.3 [re.regex.assign] Misleadingly constrained post-condition in the presence of exceptions Yes 3
2139 Open 17.6.4.2.1 [namespace.std] What is a user-defined type? Yes 4
2146 Open 17.6.3.1 [utility.arg.requirements] Are reference types Copy/Move-Constructible/Assignable or Destructible? No 2
2151 Open 21.4.1 [string.require] basic_string<>::swap semantics ignore allocators No 3
2152 Open 17.6.3.2 [swappable.requirements] Instances of standard container types are not swappable No 2
2153 Open 20.2.2 [utility.swap] Narrowing of the non-member swap contract No 2
2154 New 26.5.1.3 [rand.req.urng] What exactly does compile-time complexity imply? No 4
2155 Open 18.10 [support.runtime] Macro __bool_true_false_are_defined should be removed Yes 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
2158 New 23.3.6.3 [vector.capacity] Conditional copy/move in std::vector No 2
2161 New 23.4 [associative] const equivalence of std::map No 2
2164 New 23.3.6.5 [vector.modifiers] What are the semantics of vector.emplace(vector.begin(), vector.back())? No 2
2165 Core 29.5 [atomics.types.generic] std::atomic<X> requires X to be nothrow default constructible No
2166 New 25.4.6 [alg.heap.operations] Heap property underspecified? No 3
2173 New 25 [algorithms] The meaning of operator + in the description of the algorithms Yes 4
2178 Open 17.6.3.5 [allocator.requirements] Allocator requirement changes not mentioned Annex C No 3
2179 Open 20.8.2.5 [util.smartptr.enab] enable_shared_from_this and construction from raw pointers No 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
2189 Open 23.2.5.1 [unord.req.except] Throwing swap breaks unordered containers' state No 3
2191 New 28.10.1 [re.results.const] Incorrect specification of match_results(match_results&&) No 4
2192 Open 26.8 [c.math] Validity and return type of std::abs(0u) is unclear Yes 2
2195 Open 28.10 [re.results] Missing constructors for match_results 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
2201 New C.5 [diff.library] Missing macro entries from C standard library No 2
2202 Deferred 30.6.8 [futures.async] Missing allocator support by async No 4
2206 Open 23.2.3 [sequence.reqmts] Inaccuracy in initializer_list constructor requirements No 3
2208 New 24.5.1 [reverse.iterators] std::reverse_iterator should be a literal type No 3
2214 Open 27.5.5.2 [basic.ios.cons] Clarify basic_ios::init call restrictions Yes 4
2215 Open 23.2.4 [associative.reqmts] (unordered) associative container functors should be CopyConstructible No 3
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
2221 New 27.7.3 [output.streams] No formatted output operator for nullptr No 3
2223 Open 23.3.6.3 [vector.capacity] shrink_to_fit effect on iterator validity Yes 2
2227 Open 23.2.4 [associative.reqmts] Stateful comparison objects in associative containers 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
2241 Open 18.10 [support.runtime] <cstdalign> and #define of alignof No 2
2242 New 25.3.1 [alg.copy] [uninitialized_]copy_n() defect No 2
2243 New 27.7.2.3 [istream.unformatted] istream::putback problem No 3
2245 Open 30.6.9.1 [futures.task.members] packaged_task::reset() memory allocation No
2248 New 18.3.2 [limits] numeric_limits::is_iec559 misnamed No 4
2254 Open 23.2.1 [container.requirements.general] [arrays.ts] Is dynarray an allocator-aware container? Yes 3
2256 New 23.3.6.5 [vector.modifiers] On vector iterator invalidation No 3
2260 Open 17.6.3.5 [allocator.requirements] Missing requirement for Allocator::pointer No 3
2261 New 23.2 [container.requirements] Are containers required to use their 'pointer' type internally? No 2
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
2264 Open X [dynarray] [arrays.ts] std::dynarray defines its initializer-list constructor in terms of a non-existent constructor Yes 1
2265 Open 29.3 [atomics.order] 29.3p9 appears to rule out some acceptable executions No
2267 New 25.4.1.4 [partial.sort.copy] partial_sort_copy underspecified for ranges of two different types No 3
2269 New 23.2.1 [container.requirements.general] Container iterators and argument-dependent lookup No 4
2276 Open 30.6 [futures] Missing requirement on std::promise::set_exception Yes
2277 Open 24.7 [iterator.range] [arrays.ts] <dynarray> is missing in 24.7/1 Yes 3
2286 New 27.8.2.4 [stringbuf.virtuals] stringbuf::underflow() underspecified Yes 4
2289 Open 20.3.2 [pairs.pair] constexpr guarantees of defaulted functions still insufficient Yes 3
2290 New 20.10 [meta] Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 Yes 3
2292 New 17.5.1.4 [structure.specifications] Find a better phrasing for "shall not participate in overload resolution" No 3
2294 Open 26.8 [c.math] <cstdlib> should declare abs(double) Yes 2
2295 New 22.3.1.2 [locale.cons] Locale name when the provided Facet is a nullptr No 3
2296 Review 20.7.12.1 [specialized.addressof] std::addressof should be constexpr Yes 3
2303 New 18.6.1.3 [new.delete.placement] Explicit instantiation of std::vector<UserType> broken? No 3
2307 Open 23 [containers] Should the Standard Library use explicit only when necessary? No 2
2309 Open 30.4.1.2 [thread.mutex.requirements.mutex] mutex::lock() should not throw device_or_resource_busy Yes
2310 Open 23.3.2.1 [array.overview] Public exposition only member in std::array No 4
2312 Open 20.4.2.1 [tuple.cnstr] tuple's constructor constraints need to be phrased more precisely No 2
2318 New 21.4 [basic.string] basic_string's wording has confusing relics from the copy-on-write era No 4
2321 Open 23.2.1 [container.requirements.general] Moving containers should (usually) be required to preserve iterators Yes 2
2328 Review 27.7.2.6 [istream.rvalue] Rvalue stream extraction should use perfect forwarding Yes 3
2331 Open 28.5.1 [re.synopt] regex_constants::collate's effects are inaccurately summarized Yes 3
2335 New 23.3.2 [array] array<array<int, 3>, 4> should be layout-compatible with int[4][3] No 3
2338 Open 28.7 [re.traits] [re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 Yes 3
2342 New 27.7.3.1 [ostream] User conversion to wchar_t const* or to wchar_t not invoked for operator<< Yes 4
2343 New 28.13 [re.grammar] Is the value of the ECMA-262 RegExp object's multiline property really false? No 2
2348 Open 20.6 [template.bitset] charT('1') is not the wide equivalent of '1' Yes 3
2349 Open 27.7.2.2.1 [istream.formatted.reqmts] Clarify input/output function rethrow behavior Yes 3
2352 New 26.5.7.1 [rand.util.seedseq] Is a default-constructed std::seed_seq intended to produce a predictable .generate()? No 2
2358 New 20.10.4.3 [meta.unary.prop] Apparently-bogus definition of is_empty type trait 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
2363 Open 30.4.1.5.1 [thread.sharedtimedmutex.class] Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] Yes
2366 New 24.6.3 [istreambuf.iterator] istreambuf_iterator end-of-stream equality No 3
2368 New 18.6.1 [new.delete] Replacing global operator new No 2
2370 Open 20.9.12.2 [func.wrap.func] Operations involving type-erased allocators should not be noexcept in std::function Yes 3
2375 New 24.2.1 [iterator.requirements.general] Is [iterator.requirements.general]/9 too broadly applied? No 3
2379 Open 30.2.3 [thread.req.native] Obtaining native handle of the current thread Yes
2381 New 22.4.2.1.2 [facet.num.get.virtuals] Inconsistency in parsing floating point numbers No 3
2383 Open 20.12.5.8 [time.duration.literals] Overflow cannot be ill-formed for chrono::duration integer literals No 3
2392 New 17.3.17 [defns.ntcts] "character type" is used but not defined No 3
2393 Open 20.9.12.2 [func.wrap.func] std::function's Callable definition is broken Yes 2
2394 New 22.3.1.3 [locale.members] locale::name specification unclear — what is implementation-defined? No 3
2398 Open 18.7.1 [type.info] type_info's destructor shouldn't be required to be virtual Yes 2
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
2413 New 19.3 [assertions] assert macro is overconstrained No 4
2414 Open 17.6.5.8 [reentrancy] Member function reentrancy should be implementation-defined Yes 3
2421 New 20.7.5 [ptr.align] Non-specification of handling zero size in std::align [ptr.align] No 3
2422 Open 18.3.2.4 [numeric.limits.members] std::numeric_limits<T>::is_modulo description: "most machines" errata Yes 2
2423 New 26.6.5 [template.slice.array] Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor Yes 4
2424 Review 29.5 [atomics.types.generic] 29.5 should state that atomic types are not trivially copyable Yes 2
2426 Open 29.6.5 [atomics.types.operations.req] Issue about compare_exchange Yes
2431 New 28.3 [re.req] Missing regular expression traits requirements No 3
2432 EWG 18.9 [support.initlist] initializer_list assignability Yes 2
2441 Open 29.5 [atomics.types.generic] Exact-width atomic typedefs should be provided Yes
2444 Open 25.4.6.4 [sort.heap] Inconsistent complexity for std::sort_heap Yes 3
2449 New 23.3.6.5 [vector.modifiers] vector::insert invalidates end()? 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
2452 Core 20.10 [meta] is_constructible, etc. and default arguments No
2453 New 18.9 [support.initlist] [iterator.range] and now [iterator.container] aren't available via <initializer_list> No 3
2456 Open 20.2 [utility] Incorrect exception specifications for 'swap' throughout library No 1
2457 New 24.7 [iterator.range] std::begin() and std::end() do not support multi-dimensional arrays correctly No 3
2460 New 20.10.7.6 [meta.trans.other] LWG issue 2408 and value categories No 2
2461 New 17.6.3.5 [allocator.requirements] Interaction between allocators and container exception safety guarantees No 3
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
2468 New 17.6.4.9 [res.on.arguments] Self-move-assignment of library types No 2
2471 New 25.3.1 [alg.copy] copy_n's number of InputIterator increments unspecified No 3
2472 New 20.4.2.7 [tuple.rel] Heterogeneous comparisons in the standard library can result in ambiguities No 3
2474 New 26.8 [c.math] <cmath> functions unfriendly to integral_constant arguments Yes 4
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
2478 New 22.3.3.2.2 [conversions.string] Unclear how wstring_convert uses cvtstate No 4
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
2481 New 22.3.3.2.2 [conversions.string] wstring_convert should be more precise regarding "byte-error string" etc. No 4
2490 New 28 [re] <regex> needs lots of noexcept No 3
2491 New 20.9.6 [comparisons] std::less<T*> in constant expression No 3
2493 New 18.9 [support.initlist] initializer_list supports incomplete classes No 4
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 3
2497 New 27.7.3.4 [ostream::sentry] Use of uncaught_exception() No 3
2498 New 27.7.2.6 [istream.rvalue] operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return basic_istream&& No 3
2499 New 27.7.2.2.3 [istream::extractors] operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows No 2
2501 New 20.9.12.2 [func.wrap.func] std::function requires POCMA/POCCA No 3
2502 New 20.9.12.2 [func.wrap.func] std::function does not use allocator::construct No 3
2503 New 28.5.1 [re.synopt] multiline option should be added to syntax_option_type Yes 2
2504 New 27.6.3 [streambuf] basic_streambuf is not an abstract class No 3
2505 New X [auto.ptr.conv] auto_ptr_ref creation requirements underspecified Yes 4
2506 New 1.10 [intro.multithread] Underspecification of atomics No 3
2507 New 22.5 [locale.stdcvt] codecvt_mode should be a bitmask type No 3
2508 New 18.6.1.4 [new.delete.dataraces] [new.delete.dataraces] wording needs to be updated No 3
2509 New X [any.nonmembers] [fund.ts] any_cast doesn't work with rvalue reference targets and cannot move with a value target No 2
2511 New 20.13.4 [allocator.adaptor.members] scoped_allocator_adaptor piecewise construction does not require CopyConstructible No 3
2512 New 22.4.5.1.2 [locale.time.get.virtuals] Y2K bites; what is an "unambiguous year identifier"? No 2
2513 New 21.1 [strings.general] Missing requirements for basic_string::value_type No 4
2514 New 20.10.1 [meta.rqmts] Type traits must not be final No 3
2516 New X [memory.observer.ptr.overview] [fund.ts.v2] Public "exposition only" members in observer_ptr No 2
2518 New X [propagate_const.algorithms] [fund.ts.v2] Non-member swap for propagate_const should call member swap Yes 3
2519 New 24.2.7 [random.access.iterators] Iterator operator-= has gratuitous undefined behaviour Yes 2
2520 New 20.8.1.3.1 [unique.ptr.runtime.ctor] N4089 broke initializing unique_ptr<T[]> from a nullptr Yes 2
2521 New X [memory.smartptr.weak.const] [fund.ts] weak_ptr's converting move constructor should be modified as well for array support Yes 2
2522 New X [memory.resource.global] [fund.ts] Contradiction in set_default_resource specification Yes 2
2523 New 30.6.5 [futures.promise] std::promise synopsis shows two set_value_at_thread_exit()'s for no apparent reason Yes
2524 New 26.5.8.4.2 [rand.dist.pois.exp] exponential_distribution<float> sometimes returns inf No 2
2525 New 20.9.12.2 [func.wrap.func] [fund.ts] get_memory_resource should be const and noexcept Yes 3
2527 New 20.9.12.2.1 [func.wrap.func.con] [fund.ts] ALLOCATOR_OF for function::operator= has incorrect default Yes 3
2528 New 20.4.2.1 [tuple.cnstr] Order of std::tuple construction unspecified No 3
2529 New 20.8.2.5 [util.smartptr.enab] Assigning to enable_shared_from_this::__weak_this twice No 3
2530 New 30.6.4 [futures.state] Clarify observable side effects of releasing a shared state No
2531 New 30.6.6 [futures.unique_future] future::get should explicitly state that the shared state is released Yes
2532 New 30.6.5 [futures.promise] Satisfying a promise at thread exit No
2533 New 30.6.6 [futures.unique_future] [concurr.ts] Constrain threads were future::then can run a continuation No
2534 New 27.7.3.9 [ostream.rvalue] Constrain rvalue stream operators Yes 3
2535 New 21.4.8.9 [string.io] Inconsistency between ostream::write and ostream::operator<< No 2
2536 New D.5 [depr.c.headers] What should <complex.h> do? Yes 2
2537 New 23.6.4.2 [priqueue.cons.alloc] Constructors for priority_queue taking allocators should call make_heap Yes
2538 New X [parallel.alg.general.exec] [parallel.ts] Requirements on data race behavior of iterators and swap should be clarified No
2539 New 20.10.7.6 [meta.trans.other] [fund.ts.v2] invocation_trait definition definition doesn't work for surrogate call functions Yes
2540 New 23.2.5 [unord.req] unordered_multimap::insert hint iterator No
2541 New X [parallel.alg.overloads] [parallel.ts] Headers for ExecutionPolicy algorithm overloads No
2542 New 23.2.4 [associative.reqmts] Missing const requirements for associative containers Yes
2543 New 20.9.13 [unord.hash] LWG 2148 (hash support for enum types) seems under-specified No