Reference ISO/IEC IS 14882:2011(E)
This document is the Index by Section for the Library Active Issues List, Library Defect Reports List, and Library Closed Issues List.
(view only non-Ready open issues)
Revised 2015-04-10 at 03:04:29 UTC
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
1173 | Open | 17 [library] | "Equivalence" wishy-washiness | No | 3 | |
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 | |
2380 | Review | 17.6.1.2 [headers] | May <cstdlib> provide long ::abs(long) and long long ::abs(long long)? | Yes | 2 | |
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 | 3 | |
2461 | New | 17.6.3.5 [allocator.requirements] | Interaction between allocators and container exception safety guarantees | No | 3 | |
2466 | New | 17.6.3.5 [allocator.requirements] | allocator_traits::max_size() default behavior is incorrect | 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 | |
2447 | Open | 17.6.3.5 [allocator.requirements] | Allocators and volatile-qualified value types | Yes | 4 | |
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 | 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 | 3 | |
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 | |
2414 | Open | 17.6.5.8 [reentrancy] | Member function reentrancy should be implementation-defined | Yes | 3 | |
1526 | Open | 17.6.5.9 [res.on.data.races] | C++ should not impose thread safety requirements on C99 library implementations | Yes | 3 |
(view only non-Ready open 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 | |
2422 | New | 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 | New | 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 | |
2111 | Review | 18.8.3.4 [terminate] | Which unexpected/terminate handler is called from the exception handling runtime? | Yes | 3 | |
2483 | New | 18.8.6 [except.nested] | throw_with_nested() should use is_final | Yes | ||
2484 | New | 18.8.6 [except.nested] | rethrow_if_nested() is doubly unimplementable | Yes | ||
2432 | New | 18.9 [support.initlist] | initializer_list assignability | Yes | 2 | |
2453 | New | 18.9 [support.initlist] | [iterator.range] and now [iterator.container] aren't available via <initializer_list> | No | 3 | |
2155 | Open | 18.10 [support.runtime] | Macro __bool_true_false_are_defined should be removed | No | 4 | |
2241 | Open | 18.10 [support.runtime] | <cstdalign> and #define of alignof | No | 2 |
(view only non-Ready open 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 | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2456 | New | 20.2 [utility] | Incorrect exception specifications for 'swap' throughout library | No | 1 | |
2153 | Open | 20.2.2 [utility.swap] | Narrowing of the non-member swap contract | No | 2 | |
2388 | Open | 20.2.3 [utility.exchange] | Handling self-assignment in the proposed library function std::exchange | Yes | 2 | |
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 | Open | 20.4.2.1 [tuple.cnstr] | tuple's constructor constraints need to be phrased more precisely | Yes | 2 | |
2485 | New | 20.4.2.6 [tuple.elem] | get() should be overloaded for const tuple&& | Yes | ||
2472 | New | 20.4.2.7 [tuple.rel] | Heterogeneous comparisons in the standard library can result in ambiguities | No | ||
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 | |
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 | |
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 | |
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 | |
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 | |
2486 | New | 20.9.2 [func.require] | mem_fn() should be required to use perfect forwarding | Yes | ||
2219 | Open | 20.9.2 [func.require] | INVOKE-ing a pointer to member with a reference_wrapper as the object expression | Yes | 2 | |
2435 | New | 20.9.4.4 [refwrap.invoke] | reference_wrapper::operator()'s Remark should be deleted | Yes | 4 | |
2450 | New | 20.9.6 [comparisons] | (greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers | Yes | 2 | |
2491 | New | 20.9.6 [comparisons] | std::less<T*> in constant expression | No | ||
2487 | New | 20.9.10.3 [func.bind.bind] | bind() should be const-overloaded, not cv-overloaded | Yes | ||
2488 | New | 20.9.10.4 [func.bind.place] | Placeholders should be allowed and encouraged to be constexpr | Yes | ||
2489 | New | 20.9.11 [func.memfn] | mem_fn() should be noexcept | Yes | ||
2370 | New | 20.9.12.2 [func.wrap.func] | Operations involving type-erased allocators should not be noexcept in std::function | Yes | 1 | |
2385 | New | 20.9.12.2 [func.wrap.func] | function::assign allocator argument doesn't make sense | Yes | 2 | |
2420 | New | 20.9.12.2 [func.wrap.func] | function<void(ArgTypes...)> does not discard the return value of the target object | Yes | 1 | |
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 | |
2386 | New | 20.9.12.2.1 [func.wrap.func.con] | function::operator= handles allocators incorrectly | Yes | 1 | |
2119 | Open | 20.9.13 [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 | |
2452 | Core | 20.10 [meta] | is_constructible, etc. and default arguments | No | ||
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 | |
2367 | New | 20.10.4.3 [meta.unary.prop] | pair and tuple are not correctly implemented for is_constructible with no args | Yes | 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 | |
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 | |
2397 | Open | 20.10.7.6 [meta.trans.other] | map<K, V>::emplace and explicit V constructors | No | 1 | |
2383 | Open | 20.12.5.8 [time.duration.literals] | Overflow cannot be ill-formed for chrono::duration integer literals | No | 3 | |
2476 | New | 20.13.1 [allocator.adaptor.syn] | scoped_allocator_adaptor is not assignable | Yes |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2318 | New | 21.4 [basic.string] | basic_string's wording has confusing relics from the copy-on-write era | No | 4 | |
2372 | New | 21.4 [basic.string] | Assignment from int to std::string | Yes | 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 | |
2402 | New | 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 | ||
2237 | New | 21.8 [c.strings] | <cuchar> macros | No | 4 | |
2238 | Open | 21.8 [c.strings] | Problematic iterator-pair constructor of containers | No | 3 |
(view only non-Ready open 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 | |
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 | ||
2481 | New | 22.3.3.2.2 [conversions.string] | wstring_convert should be more precise regarding "byte-error string" etc. | No | ||
2479 | New | 22.3.3.2.3 [conversions.buffer] | Unclear how wbuffer_convert uses cvtstate | No | ||
2480 | New | 22.3.3.2.3 [conversions.buffer] | Error handling of wbuffer_convert unclear | No | ||
2381 | New | 22.4.2.1.2 [facet.num.get.virtuals] | Inconsistency in parsing floating point numbers | No | 3 | |
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 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2307 | Open | 23 [containers] | Should the Standard Library use explicit only when necessary? | No | 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 | |
2218 | Open | 23.2.1 [container.requirements.general] | Unclear how containers use allocator_traits::construct() | Yes | 3 | |
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 | |
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 | |
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 | |
1175 | Open | 23.2.5 [unord.req] | unordered complexity | Yes | 3 | |
2156 | Open | 23.2.5 [unord.req] | Unordered containers' reserve(n) reserves for n-1 elements | 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 | 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 | |
2477 | New | 23.3.3.4 [deque.modifiers] | Inconsistency of wordings in std::vector::erase() and std::deque::erase() | 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 | |
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 | |
2161 | New | 23.4 [associative] | const equivalence of std::map | No | 2 | |
2274 | Open | 23.4.4.3 [map.access] | Does map::operator[] value-initialize or default-insert a missing element? | Yes | 3 | |
2469 | Open | 23.4.4.3 [map.access] | Wrong specification of Requires clause of operator[] for map and unordered_map | Yes | 3 | |
2464 | New | 23.4.4.4 [map.modifiers] | try_emplace and insert_or_assign misspecified | Yes | 2 |
(view only non-Ready open 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 | 3 | |
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 | |
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 |
(view only non-Ready open 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 | |
2242 | New | 25.3.1 [alg.copy] | [uninitialized_]copy_n() defect | No | 2 | |
2471 | New | 25.3.1 [alg.copy] | copy_n's number of InputIterator increments unspecified | No | ||
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 |
(view only non-Ready open 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 | Yes | 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 | |
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 | |
2079 | New | 26.8 [c.math] | Required pow() overloads | No | 3 | |
2474 | New | 26.8 [c.math] | <cmath> functions unfriendly to integral_constant arguments | Yes | ||
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 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2462 | New | 27.5.3 [ios.base] | std::ios_base::failure is overspecified | Yes | 3 | |
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.5.1 [stringstream.cons] | app for string streams | No | 3 | |
2473 | New | 27.9.1.5 [filebuf.virtuals] | basic_filebuf's relation to C FILE semantics | Yes |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2490 | New | 28 [re] | <regex> needs lots of noexcept | No | ||
2431 | New | 28.3 [re.req] | Missing regular expression traits requirements | No | 3 | |
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 | |
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 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2424 | Review | 29.5 [atomics.types.generic] | 29.5 should state that atomic types are not trivially copyable | Yes | 2 | |
2165 | Core | 29.5 [atomics.types.generic] | std::atomic<X> requires X to be nothrow default constructible | No |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
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 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2201 | New | C.5 [diff.library] | Missing macro entries from C standard library | No | 2 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2264 | Open | X [dynarray] | [arrays.ts] std::dynarray defines its initializer-list constructor in terms of a non-existent constructor | Yes | 1 |