C++ Standard Library Issues List (Revision R118)

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 and Accepted Issues, and Library Closed Issues List.

Revised 2019-10-07 at 02:37:36 UTC

Priority 1 (6 issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3194 New 18.4.4 [concept.convertible] ConvertibleTo prose does not match code Yes 1
3279 New [iterator.concept.readable] shared_ptr<int>& does not not satisfy readable Yes 1
3264 New 24.4.3 [range.sized] sized_range and ranges::size redundantly use disable_sized_range Yes 1
3282 LEWG 24.5.3 [range.subrange] subrange converting constructor should disallow derived to base conversions Yes 1
3281 LEWG 24.5.3 [range.subrange] Conversion from pair-like types to subrange is a silent semantic promotion Yes 1
3280 New [range.filter.view] View converting constructors can cause constraint recursion and are unneeded Yes 1

Priority 2 (58 issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3168 Open [structure.specifications] Expects: element should be specified in one place Yes 2
2818 Open [contents] "::std::" everywhere rule needs tweaking No 2
2146 Open [utility.arg.requirements] Are reference types Copy/Move-Constructible/Assignable or Destructible? No 2
2839 Open [lib.types.movedfrom] Self-move-assignment of library types, again Yes 2
2859 Open 17.6.4 [ptr.launder] Definition of reachable in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object Yes 2
2860 Open 17.6.4 [ptr.launder] launder and base class subobjects Yes 2
2432 EWG 17.10 [support.initlist] initializer_list assignability Yes 2
3141 New 18.6 [concepts.object] CopyConstructible doesn't preserve source values Yes 2
3011 Open 19.3 [assertions] Requirements for assert(E) inconsistent with C No 2
2153 LEWG 20.2.2 [utility.swap] Narrowing of the non-member swap contract Yes 2
3121 Open [tuple.cnstr] tuple constructor constraints for UTypes&&... overloads Yes 2
2825 LEWG 20.6.3 [optional.optional] LWG 2756 breaks class template argument deduction for optional No 2
2829 Open [optional.observe] LWG 2740 leaves behind vacuous words No 2
2833 Open [variant.ctor] Library needs to specify what it means when it declares a function constexpr Yes 2
3228 New [variant.ctor] Surprising variant construction No 2
3215 New [variant.ctor] variant default constructor has vague constexpr requirements Yes 2
3052 LEWG 20.7.7 [variant.visit] visit is underconstrained Yes 2
3170 Open 20.10.10 [default.allocator] is_always_equal added to std::allocator makes the standard library treat derived types as always equal Yes 2
2089 EWG [allocator.members] std::allocator::construct should use uniform initialization Yes 2
3195 New [util.smartptr.weak.const] What is the stored pointer value of an empty weak_ptr? Yes 2
3143 New 20.12.6 [mem.res.monotonic.buffer] monotonic_buffer_resource growth policy is unclear No 2
3120 Open [mem.res.monotonic.buffer.mem] Unclear behavior of monotonic_buffer_resource::release() Yes 2
2813 EWG [func.wrap.func.con] std::function should not return dangling references Yes 2
2939 New 20.15.2 [meta.type.synop] Some type-completeness constraints of traits are overspecified No 2
3082 Open 20.19.3 [charconv.from.chars] from_chars specification regarding floating point rounding is inconsistent Yes 2
3081 Open 20.19.3 [charconv.from.chars] Floating point from_chars API does not distinguish between overflow and underflow Yes 2
3251 New 20.20.2 [format.string] Are std::format alignment specifiers applied to string arguments? Yes 2
3243 New 20.20.2 [format.string] std::format and negative zeroes Yes 2
3248 New [format.string.std] std::format #b, #B, #o, #x, and #X presentation types misformat negative numbers Yes 2
3085 Open 21.2.1 [char.traits.require] char_traits::copy precondition too weak Yes 2
3165 LEWG 21.3.2 [basic.string] All starts_with() overloads should be called "begins_with" Yes 2
3068 LEWG 21.4.2 [string.view.template] Forbid assigning an rvalue basic_string to basic_string_view Yes 2
2307 LEWG 22 [containers] Should the Standard Library use explicit only when necessary? No 2
3176 New 22.2.7 [unord.req] Underspecified behavior of unordered containers when Container::key_equal differs from Pred No 2
3203 New [span.overview] span element access invalidation Yes 2
3255 New [span.cons] span's array constructor is too strict Yes 2
484 Open [input.iterators] Convertible to T No 2
2962 Open [input.iterators] Iterators of Containers of move-only types do not model InputIterator Yes 2
3265 New [move.iter.cons] move_iterator's conversions are more broken after P1207 Yes 2
3278 New [range.join.view] join_view<V>::iterator<true> tries to write through const join_view ptr Yes 2
3061 Open 25.7.11 [alg.three.way] What is the return type of compare_3way? Yes 2
3060 New 25.9.7 [exclusive.scan] XXX_scan algorithms are specified to work with move-only T, but are specified to make N copies of T into the destination range No 2
3200 New 25.9.15 [numeric.ops.midpoint] midpoint should not constrain T is complete Yes 2
2352 New [rand.util.seedseq] Is a default-constructed std::seed_seq intended to produce a predictable .generate()? No 2
2524 Open [rand.dist.pois.exp] generate_canonical can occasionally return 1.0 No 2
3223 New 26.8.1 [cmath.syn] lerp should not add the "sufficient additional overloads" No 2
3125 Open 27.5.10 [time.duration.io] duration streaming precondition should be a SFINAE condition Yes 2
3260 New 27.8 [time.cal] year_month* arithmetic rejects durations convertible to years Yes 2
3262 New 27.12 [time.format] Formatting of negative durations is not specified Yes 2
3270 New 27.12 [time.format] Parsing and formatting %j with durations Yes 2
3269 New 27.13 [time.parse] Parse manipulators do not specify the result of the extraction from stream Yes 2
2381 Open [facet.num.get.virtuals] Inconsistency in parsing floating point numbers Yes 2
1203 Open [ostream.rvalue] More useful rvalue stream insertion Yes 2
3171 Open 29.11.11 [fs.class.directory.entry] LWG 2989 breaks directory_entry stream insertion Yes 2
2708 Open [fs.rec.dir.itr.members] recursive_directory_iterator::recursion_pending() is incorrectly specified Yes 2
3057 Open [fs.op.copy] Correct copy_options handling Yes 2
2363 Open [thread.sharedtimedmutex.class] Defect in [thread.sharedtimedmutex.class] Yes 2
3003 Open 32.9.6 [futures.promise] <future> still has type-erased allocators in promise Yes 2

Priority 3 (193 issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2506 SG1 6.9.2 [intro.multithread] Underspecification of atomics No 3
3105 New 16 [library] T1 is convertible to T2 No 3
2392 New 16.3.17 [defns.ntcts] "character type" is used but not defined No 3
2136 Open 16.4.1 [structure] Postconditions vs. exceptions No 3
3193 New [structure.specifications] Mandates: and Expects: elements are not defined for types Yes 3
3092 Open [bitmask.types] Unclear semantics of enum class bitmask types Yes 3
2152 LEWG [swappable.requirements] Instances of standard container types are not swappable Yes 3
2114 Open [nullablepointer.requirements] Incorrect "contextually convertible to bool" requirements Yes 3
2461 New [allocator.requirements] Interaction between allocators and container exception safety guarantees No 3
3044 New [allocator.requirements] Strange specification of max_size() for an allocator Yes 3
3157 New [allocator.requirements] Allocator destroy and fancy pointer operations must be non-throwing Yes 3
3177 New [namespace.std] Limit permission to specialize variable templates to program-defined types Yes 3
3142 New [res.on.functions] std::foo<incomplete> should be ill-formed NDR Yes 3
2695 New [member.functions] "As if" unclear in [member.functions] No 3
2414 Open [reentrancy] Member function reentrancy should be implementation-defined Yes 3
3229 New [res.on.exception.handling] §[res.on.exception.handling]#3 cannot apply to types with implicitly declared destructors Yes 3
3217 New 17.3.1 [support.limits.general] <memory> and <execution> should define __cpp_lib_parallel_algorithm Yes 3
2730 Open 17.3.4 [numeric.limits] numeric_limits primary template definition No 3
2820 Open 17.4 [cstdint] Clarify <cstdint> macros Yes 3
2815 New 17.5 [support.start.term] quick_exit can deadlock Yes 3
3084 New 17.5 [support.start.term] Termination in C++ is unclear No 3
2737 New [new.delete.single] Consider relaxing object size restrictions for single-object allocation functions No 3
3086 New [new.delete.single] Possible problem in §[new.delete.single] Yes 3
2303 New [new.delete.placement] Explicit instantiation of std::vector<UserType> broken? No 3
2508 New [new.delete.dataraces] §[new.delete.dataraces] wording needs to be updated No 3
2398 Open 17.7.2 [type.info] type_info's destructor shouldn't be required to be virtual Yes 3
2088 Open 17.9.4 [exception.terminate] std::terminate problem No 3
2453 New 17.10 [support.initlist] §[iterator.range] and now [iterator.container] aren't available via <initializer_list> No 3
3151 New 18.4.11 [concept.constructible] ConvertibleTo rejects conversions from array and function types Yes 3
3019 New [syserr.errcat.derived] Presentation of "program defined classes derived from error_category" [syserr.errcat.derived] unclear and contains mistakes No 3
3053 New [syserr.errcode.overview] Prohibit error_code construction from rvalues of error_category Yes 3
2599 New 20.2.6 [declval] Library incomplete type permission phrase is unclear No 3
2289 Open 20.4.2 [pairs.pair] constexpr guarantees of defaulted functions still insufficient Yes 3
2766 New 20.4.3 [pairs.spec] Swapping non-swappable types Yes 3
3166 New 20.4.4 [pair.astuple] No such descriptive element as Value: No 3
3155 Open [tuple.cnstr] tuple<any, any>{allocator_arg_t, an_allocator} Yes 3
2528 New [tuple.cnstr] Order of std::tuple construction unspecified No 3
2933 New 20.5.4 [tuple.creation] PR for LWG 2773 could be clearer Yes 3
2472 New 20.5.8 [tuple.rel] Heterogeneous comparisons in the standard library can result in ambiguities No 3
2990 Open 20.6.3 [optional.optional] optional::value_type is not always a value type Yes 3
2746 New 20.6.3 [optional.optional] Inconsistency between requirements for emplace between optional and variant No 3
2811 New [optional.ctor] "Selected constructor" wording is incorrect for optional/variant/any No 3
2881 New 20.7.3 [variant.variant] Adopt section III of P0308R0 No 3
3069 New [variant.assign] Move assigning variant's subobject corrupts data Yes 3
2348 Open 20.9.2 [template.bitset] charT('1') is not the wide equivalent of '1' Yes 3
2421 New 20.10.6 [ptr.align] Non-specification of handling zero size in std::align [ptr.align] No 3
3192 New [allocator.uses.construction] §[allocator.uses.construction] functions misbehave for const types Yes 3
3064 New 20.10.11 [specialized.algorithms] How do uninitialized memory algorithms obtain pointer without undefined behavior? No 3
3156 New 20.10.11 [specialized.algorithms] ForwardIterator should only mean forward iterator Yes 3
3063 New 20.10.11 [specialized.algorithms] Parallel algorithms in <memory> are underspecified No 3
3159 New [unique.ptr.single] §[unique.ptr.single] requirements on deleter may be too strict No 3
2262 Open [unique.ptr.single] Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr Yes 3
2762 Open [unique.ptr.single.observers] unique_ptr operator*() should be noexcept Yes 3
3018 New 20.11.3 [util.smartptr.shared] shared_ptr of function type Yes 3
2594 New 20.11.3 [util.smartptr.shared] Contradicting definition of empty shared_ptr on shared_ptr(nullptr, d) Yes 3
2906 New [util.smartptr.shared.const] There is no ability to supply an allocator for the control block when constructing a shared_ptr from a unique_ptr No 3
3216 New [util.smartptr.shared.create] Rebinding the allocator before calling construct/destroy in allocate_shared Yes 3
3210 New [util.smartptr.shared.create] allocate_shared is inconsistent about removing const from the pointer passed to allocator construct and destroy Yes 3
3036 Open 20.12.3 [mem.poly.allocator.class] polymorphic_allocator::destroy is extraneous Yes 3
2848 New [mem.res.pool.options] Pass-through threshold for pool allocator No 3
2894 Open 20.14.4 [func.invoke] The function template std::apply() is required to be constexpr, but std::invoke() isn't Yes 3
3046 New 20.14.5 [refwrap] Do not require reference_wrapper to support non-referenceable function types Yes 3
3146 New [refwrap.helpers] Excessive unwrapping in std::ref/cref Yes 3
2491 New 20.14.7 [comparisons] std::less<T*> in constant expression Yes 3
2547 New 20.14.7 [comparisons] Container requirements (and other library text) should say "strict total order", not just "total order" No 3
2957 New [func.bind.bind] bind's specification doesn't apply the cv-qualification of the call wrapper to the callable object Yes 3
3023 New 20.14.15 [func.memfn] Clarify unspecified call wrappers No 3
2774 New [func.wrap.func.con] std::function construction vs assignment Yes 3
2452 Core 20.15 [meta] is_constructible, etc. and default arguments No 3
2290 Open 20.15 [meta] Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 Yes 3
2845 New 20.15.1 [meta.rqmts] enable_if, result_of, common_type and aligned_storage do not meet the definition of TransformationTrait No 3
2116 Open [meta.unary.prop] is_nothrow_constructible and destructors No 3
2358 Open [meta.unary.prop] Apparently-bogus definition of is_empty type trait Yes 3
2827 New [meta.unary.prop] is_trivially_constructible and non-trivial destructors No 3
2496 New [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
2077 Open [meta.unary.prop] Further incomplete constraints for type traits No 3
3174 New 20.15.6 [meta.rel] Precondition on is_convertible is too strong Yes 3
3152 New [meta.trans.other] common_type and common_reference have flaws in common Yes 3
3205 New [meta.trans.other] decay_t in the new common_type fallback should be remove_cvref_t Yes 3
2994 Open 21.2 [char.traits] Needless UB for basic_string and basic_string_view Yes 3
2959 New [char.traits.specializations.char16.t] char_traits<char16_t>::eof is a valid UTF-16 code unit No 3
2238 Open 21.5 [c.strings] Problematic iterator-pair constructor of containers No 3
3059 New 22.2 [container.requirements] Wrong requirements for map-like associative container assignment? No 3
3028 New 22.2.1 [container.requirements.general] Container requirements tables should distinguish const and non-const variables Yes 3
1521 Open 22.2.1 [container.requirements.general] Requirements on internal pointer representations in containers Yes 3
2321 Open 22.2.1 [container.requirements.general] Moving containers should (usually) be required to preserve iterators Yes 3
2705 New 22.2.3 [sequence.reqmts] Questionable precondition on Sequence containers a.assign(n, t) Yes 3
2206 Open 22.2.3 [sequence.reqmts] Inaccuracy in initializer_list constructor requirements Yes 3
2743 New [container.node.overview] p0083r3 node_handle private members missing "exposition only" comment Yes 3
2215 Open 22.2.6 [associative.reqmts] (unordered) associative container functors should be CopyConstructible Yes 3
2227 Open 22.2.6 [associative.reqmts] Stateful comparison objects in associative containers No 3
3227 New 22.2.6 [associative.reqmts] Ambiguity issue for extract in ordered and unordered associative containers Yes 3
2362 New 22.2.6 [associative.reqmts] unique, associative emplace() should not move/copy the mapped_type constructor arguments when no insertion happens No 3
2844 New 22.2.6 [associative.reqmts] Stability of a_uniq.insert(i, j) No 3
2198 Open 22.2.7 [unord.req] max_load_factor(z) makes no strong guarantees, but bans useful behavior Yes 3
1175 Open 22.2.7 [unord.req] unordered complexity Yes 3
2189 Open [unord.req.except] Throwing swap breaks unordered containers' state No 3
2335 New 22.3.7 [array] array<array<int, 3>, 4> should be layout-compatible with int[4][3] No 3
3219 New [array.overview] std::array overview container requirements are incorrect Yes 3
2823 Open [array.overview] std::array initialization is still not permissive enough Yes 3
2157 Open [array.zero] How does std::array<T,0> initialization work when T is not default-constructible? Yes 3
3088 New [forwardlist.ops] forward_list::merge behavior unclear when passed *this Yes 3
2997 New [list.ops] LWG 491 and the specification of {forward_,}list::unique Yes 3
2158 Open [vector.capacity] Conditional copy/move in std::vector Yes 3
1422 Open 22.3.12 [vector.bool] vector<bool> iterators are not random access No 3
2713 New 22.5 [unord] More missing allocator-extended constructors for unordered containers Yes 3
3189 New 22.6.5 [priority.queue] Missing requirement for std::priority_queue No 3
2375 New 23.3.1 [iterator.requirements.general] Is [iterator.requirements.general]/9 too broadly applied? No 3
3110 New 23.3.1 [iterator.requirements.general] Contiguous Iterators should always be Random-Access Yes 3
2038 Open [output.iterators] Missing definition for incrementable iterator No 3
2035 Open [output.iterators] Output iterator requirements are broken Yes 3
3197 New 23.4.2 [iterator.operations] std::prev should not require BidirectionalIterator Yes 3
2931 Open 23.4.2 [iterator.operations] Missed optimization opportunity with single-argument std::next No 3
2595 New [reverse.iterator] reverse_iterator::operator[]'s return type revisited Yes 3
3188 New 23.6.3 [istreambuf.iterator] istreambuf_iterator::pointer should not be unspecified Yes 3
2366 New 23.6.3 [istreambuf.iterator] istreambuf_iterator end-of-stream equality No 3
3108 New [istreambuf.iterator.proxy] istreambuf_iterator::proxy::operator* should be const Yes 3
2457 New 23.7 [iterator.range] std::begin() and std::end() do not support multi-dimensional arrays correctly No 3
3258 New 24.3.1 [range.access.begin] Range access and initializer_list Yes 3
1238 Open 25 [algorithms] Defining algorithms taking iterator for range No 3
2963 New 25 [algorithms] Algorithms with underspecified iterator requirements No 3
3049 Open 25.2 [algorithms.requirements] Missing wording allowing algorithms to use copies of function objects as substitutes for their parameters Yes 3
3213 New 25.5.4 [alg.foreach] for_each_n and copy_n missing requirements for Size Yes 3
2471 Open 25.6.1 [alg.copy] copy_n's number of InputIterator increments unspecified No 3
3089 New 25.6.1 [alg.copy] copy_n should require non-overlapping ranges Yes 3
2267 New [partial.sort.copy] partial_sort_copy underspecified for ranges of two different types No 3
2741 Open 25.7.4 [alg.partitions] is_partitioned requirements need updating No 3
3032 New 25.7.7 [alg.heap.operations] ValueSwappable requirement missing for push_heap and make_heap Yes 3
3029 Open [pop.heap] pop_heap over-constrains input Yes 3
2714 New 26.4.6 [complex.ops] complex stream extraction underspecified Yes 3
2846 New 26.4.9 [cmplx.over] Undefined phrase "effectively cast" Yes 3
3150 New [rand.req.urng] UniformRandomBitGenerator should validate min and max Yes 3
2847 New 26.8.1 [cmath.syn] sin(float) should call sinf(float) No 3
3093 New 26.8.2 [c.math.abs] LWG 2294/2192 missed a std::abs overload No 3
3172 New 26.8.3 [c.math.hypot3] 3-arg std::hypot is underspecified compared to the 2-arg overload Yes 3
3066 New 26.8.6 [sf.cmath] "report a domain error" in [sf.cmath]/1 is underspecified No 3
3123 New 27.5 [time.duration] duration constructor from representation shouldn't be effectively non-throwing Yes 3
3090 New 27.5.1 [time.duration.cons] What is §[time.duration.cons]p4's "no overflow is induced in the conversion" intended to mean? No 3
3050 Open 27.5.1 [time.duration.cons] Conversion specification problem in chrono::duration constructor Yes 3
2383 Open 27.5.8 [time.duration.literals] Overflow cannot be ill-formed for chrono::duration integer literals No 3
3271 New 27.13 [time.parse] Parsing functions should save and restore stream format state Yes 3
2295 New [locale.cons] Locale name when the provided Facet is a nullptr No 3
2702 New [facet.num.put.virtuals] num_put::do_put(..., bool) performs ill-formed do_put call No 3
2117 Open [facet.num.put.virtuals] ios_base manipulators should have showgrouping/noshowgrouping No 3
2703 New [facet.num.put.virtuals] No provision for fill-padding when boolalpha is set No 3
3275 New [locale.time.get.virtuals] Why does time_get::do_get require a valid pointer when none of the others do? Yes 3
2983 New [locale.money.put.virtuals] money_put::do_put underspecified Yes 3
2691 New [locale.moneypunct] money_base::space and do_put: U+0020 versus fill Yes 3
423 Open 29 [input.output] Effects of negative streamsize in iostreams Yes 3
2675 New [ios.base.callback] register_callback can fail No 3
2504 New 29.6.3 [streambuf] basic_streambuf is not an abstract class No 3
2349 Open [istream.formatted.reqmts] Clarify input/output function rethrow behavior Yes 3
2498 New [istream.rvalue] operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return basic_istream&& No 3
2497 New [ostream.sentry] Use of uncaught_exception() Yes 3
2984 New 29.7.7 [ext.manip] put_money(99) is unnecessarily undefined Yes 3
3006 New [stringbuf.cons] Constructing a basic_stringbuf from a string — where does the allocator come from? No 3
3097 New [stringbuf.virtuals] basic_stringbuf seekoff effects trigger undefined behavior and have contradictory returns No 3
3098 New [fs.path.decompose] Misleading example for filesystem::path::filename() Yes 3
2947 New [fs.enum.path.format] Clarify several filesystem terms No 3
3078 New 29.11.11 [fs.class.directory.entry] directory_entry, directory_iterator and recursive_directory_iterator perform needless path copies No 3
3056 New [fs.op.copy.file] copy_file() copies which attributes? Yes 3
2490 New 30 [re] <regex> needs lots of noexcept No 3
2431 New 30.3 [re.req] Missing regular expression traits requirements No 3
2331 Open 30.5.1 [re.synopt] regex_constants::collate's effects are inaccurately summarized Yes 3
2338 Open 30.7 [re.traits] §[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 Yes 3
3261 New 30.8 [re.regex] regex components' noexcept annotations appear broken for POCMA or throwing BidirectionalIterator No 3
2137 Open 30.8.2 [re.regex.assign] Misleadingly constrained post-condition in the presence of exceptions Yes 3
3126 New 30.9 [re.submatch] There's no std::sub_match::compare(string_view) overload Yes 3
3204 New 30.9 [re.submatch] sub_match::swap only swaps the base class Yes 3
2195 Open 30.10 [re.results] Missing constructors for match_results Yes 3
2216 New 30.11.4 [re.alg.replace] regex_replace(basic_string) allocator handling No 3
2220 Open [re.tokiter.comp] Under-specification of operator== for regex_token_iterator Yes 3
2987 New 30.13 [re.grammar] Relationship between traits_inst.lookup_collatename and the regex FSM is underspecified with regards to ClassAtomCollatingElement No 3
3220 New 31.2 [atomics.syn] P0558 broke conforming C++14 uses of atomic shared_ptr Yes 3
3263 New 31.6 [atomics.wait] Atomic waiting function calls should only be unblocked once Yes 3
3047 New 31.8.2 [atomics.types.int] atomic compound assignment operators can cause undefined behavior when corresponding fetch_meow members don't Yes 3
2819 New 32.2.5 [thread.req.lockable] Unspecified Return type: elements No 3
2731 Open [thread.lock.guard] Existence of lock_guard<MutexTypes...>::mutex_type typedef unclear Yes 3
2530 Open 32.9.5 [futures.state] Clarify observable side effects of releasing a shared state No 3
2532 Open 32.9.6 [futures.promise] Satisfying a promise at thread exit Yes 3
3117 New 32.9.10 [futures.task] Missing packaged_task deduction guides Yes 3
2507 New D.16 [depr.locale.stdcvt] codecvt_mode should be a bitmask type No 3
2564 New 4.2 [fund.ts.v2::func.wrap.func] [fund.ts.v2] std::experimental::function constructors taking allocator arguments may throw exceptions Yes 3
2814 LEWG 4.2.1 [fund.ts.v2::func.wrap.func.con] [fund.ts.v2] to_array should take rvalue reference as well Yes 3
2561 New 5.3.4 [fund.ts.v2::optional.object.swap] [fund.ts.v2] Incorrect exception specifications for 'swap' in C++ Extensions for Library Fundamentals No 3
3136 New [fund.ts.v3::propagate_const.class_type_requirements] [fund.ts.v3] LFTSv3 awkward wording in propagate_const requirements Yes 3
3135 New 3.3.1 [fund.ts.v3::meta.type.synop] [fund.ts.v3] LFTSv3 contains two redundant alias templates No 3
3167 New 5.2 [fund.ts.v3::memory.observer.ptr] [fund.ts.v3] Does observer_ptr support function types? No 3
3124 New 13.7.5 [networking.ts::async.exec.ctx.globals] [networking.ts] Unclear how execution_context is intended to store services Yes 3
3021 New 16.2.2 [networking.ts::buffer.reqmts.constbuffersequence] [networking.ts] Relax pointer equivalence requirement for ConstBufferSequence Yes 3
3072 New 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] [networking.ts] DynamicBuffer object lifetimes underspecified Yes 3
3027 New 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] [networking.ts] DynamicBuffer prepare exception specification Yes 3
3073 New 17 [networking.ts::buffer.stream] [networking.ts] (async_)read and (async_)write don't support DynamicBuffer lvalues Yes 3

Priority 4 (37 issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2949 New 16 [library] Unclear complexity requirements: space vs. time No 4
3267 New [allocator.requirements] Rebound allocators and is_always_equal Yes 4
2248 New 17.3.4 [numeric.limits] numeric_limits::is_iec559 misnamed No 4
2493 New 17.10 [support.initlist] initializer_list supports incomplete classes No 4
2413 New 19.3 [assertions] assert macro is overconstrained No 4
2751 New [util.smartptr.shared.dest] shared_ptr deleter not specified to observe expired weak_ptr instances No 4
2513 New 21.1 [strings.general] Missing requirements for basic_string::value_type No 4
2237 New 21.5 [c.strings] <cuchar> macros No 4
2269 New 22.2.1 [container.requirements.general] Container iterators and argument-dependent lookup No 4
1213 Open 23.3 [iterator.requirements] Meaning of valid and singular iterator underspecified No 4
2858 New 23.5.1 [reverse.iterators] LWG 2472: actually an incompatibility with C++03 Yes 4
3107 New 23.6.3 [istreambuf.iterator] istreambuf_iterator has public exposition-only member Yes 4
2173 Open 25 [algorithms] The meaning of operator + in the description of the algorithms Yes 4
2154 New [rand.req.urng] What exactly does compile-time complexity imply? No 4
2423 New 26.7.5 [template.slice.array] Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor Yes 4
2115 Open 26.7.8 [template.mask.array] Undefined behaviour for valarray assignments with mask_array index? No 4
2923 New 26.8.1 [cmath.syn] noexcept is inconsistently applied across headers which import components of the C standard library No 4
2592 New 27.2 [time.syn] Require that chrono::duration_casts from smaller durations to larger durations do not overflow Yes 4
3214 New [facet.num.get.virtuals] §[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent No 4
2512 Open [locale.time.get.virtuals] Y2K bites; what is an "unambiguous year identifier"? No 4
3118 New [fpos.operations] fpos equality comparison unspecified No 4
2214 Open [basic.ios.cons] Clarify basic_ios::init call restrictions Yes 4
2342 New [ostream] User conversion to wchar_t const* or to wchar_t not invoked for operator<< Yes 4
2286 Open [stringbuf.virtuals] stringbuf::underflow() underspecified Yes 4
2191 New 30.10.1 [re.results.const] Incorrect specification of match_results(match_results&&) Yes 4
2986 New 30.13 [re.grammar] Handling of multi-character collating elements by the regex FSM is underspecified No 4
2546 New 30.13 [re.grammar] Implementability of locale-sensitive UnicodeEscapeSequence matching No 4
2265 Open 31.4 [atomics.order] 29.3p9 appears to rule out some acceptable executions No 4
3268 New 31.4 [atomics.order] memory_order::memory_order_foo broken in C++20 Yes 4
2095 LEWG 32.9.6 [futures.promise] promise and packaged_task missing constructors needed for uses-allocator construction Yes 4
2202 Deferred 32.9.9 [futures.async] Missing allocator support by async No 4
3109 New D.10.2 [depr.strstreambuf] strstreambuf is copyable No 4
3095 New D.10.2.3 [depr.strstreambuf.virtuals] strstreambuf refers to nonexistent member of fpos, fpos::offset Yes 4
2481 New D.17.1 [depr.conversions.string] wstring_convert should be more precise regarding "byte-error string" etc. No 4
2478 New D.17.1 [depr.conversions.string] Unclear how wstring_convert uses cvtstate No 4
2480 New D.17.2 [depr.conversions.buffer] Error handling of wbuffer_convert unclear No 4
2479 New D.17.2 [depr.conversions.buffer] Unclear how wbuffer_convert uses cvtstate No 4

Not Prioritized (59 issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3285 New [customization.point.object] The type of a customization point object shall satisfy semiregular Yes
3240 New [using.headers] Headers declare more than entities No
3295 New 17.11.2 [cmp.categories] Comparison category operator== are mis-specified No
3239 New [cmp.weakeq] Hidden friends should be specified more narrowly No
3175 New 18.4.9 [concept.swappable] The CommonReference requirement of concept SwappableWith is not satisfied in the example Yes
3162 New [syserr.syserr.members] system_error::system_error(error_code ec) not explicit Yes
3211 New [tuple.cnstr] std::tuple<> should be trivially constructible Yes
532 LEWG 20.5.8 [tuple.rel] Tuple comparison Yes 348
2991 LEWG [variant.ctor] variant copy constructor missing noexcept(see below) Yes
3233 New [util.smartptr.shared.const] Broken requirements for shared_ptr converting constructors Yes
3237 New [mem.poly.allocator.mem] LWG 3038 and 3190 have inconsistent PRs Yes
2690 LEWG 20.14.4 [func.invoke] invoke<R> Yes
3238 New [func.wrap.func.con] Insufficiently-defined behavior of std::function deduction guides Yes
1025 LEWG 20.14.18 [unord.hash] The library should provide more specializations for std::hash No
2922 LEWG 20.15.2 [meta.type.synop] The *_constant<> templates do not make use of template<auto> No
3099 New 20.15.2 [meta.type.synop] is_assignable<Incomplete&, Incomplete&> Yes
3290 New [format.string.std] Are std::format field widths code units, code points, or something else? Yes
3250 New [format.string.std] std::format: # (alternate form) for NaN and inf Yes
3242 New [format.string.std] std::format: missing rules for arg-id in width and precision Yes
2883 LEWG 21.4 [string.view] The standard library should provide string_view parameters instead or in addition for functions defined with char const * or string const & as parameter types. No
2884 LEWG 22 [containers] Relational operators for containers should sfinae; if the underlying type is not comparable, neither should the container be No
2885 LEWG 22 [containers] The relational operators of optional and variant completely reflect the semantics of the element types — this is inconsistent with other types in the library No
3297 New 22.2.3 [sequence.reqmts] Useless sequence container requirement Yes
3161 Open 22.6.6 [stack] Container adapters mandate use of emplace_back but don't require it Yes
3212 New [span.tuple] tuple_element_t<1, const span<int, 42>> is const int Yes
3283 New [iterator.traits] Types satisfying input_iterator but not equality_comparable look like C++17 output iterators Yes
3289 New [iterator.traits] Cannot opt out of C++17 iterator-ness without also opting out of C++20 iterator-ness Yes
3287 New [iterator.traits] Exposition-only cpp17-input-iterator concept is needlessly complex Yes
3247 New [iterator.cust.move] ranges::iter_move should perform ADL-only lookup of iter_move Yes
3284 New [iterator.concept.random.access] random_access_iterator semantic constraints accidentally promote difference type using unary negate Yes
3236 New [random.access.iterators] Random access iterator requirements lack limiting relational operators domain to comparing those from the same range Yes
3293 New [move.iter.nonmember] move_iterator operator+() has incorrect constraints Yes
3292 New [range.iota.view] iota_view is under-constrained Yes
3291 New [range.iota.iterator] iota_view::iterator has the wrong iterator_category Yes
3286 New [range.take.view] ranges::size is not required to be valid after a call to ranges::begin on an input range Yes
3298 New [range.take.while.view] Range adaptors introduced by P1035 do not require viewable_range Yes
2985 LEWG 25.6.10 [alg.reverse] std::reverse should be permitted to be vectorized Yes
2973 LEWG 25.7.5 [alg.merge] inplace_merge exact comparison count complexity prohibits useful real-world optimizations Yes
3234 New 26.8.1 [cmath.syn] Sufficient Additional Special Math Overloads No
3201 New 26.8.4 [c.math.lerp] lerp should be marked as noexcept Yes
3294 New [time.zone.zonedtime.overview] zoned_time deduction guides misinterprets string/char* Yes
3226 New [time.zone.zonedtime.ctor] zoned_time constructor from string_view should accept zoned_time<Duration2, TimeZonePtr2> Yes
3252 New 27.13 [time.parse] Parse locale's aware modifiers for commands are not consistent with POSIX spec Yes
523 Open 30 [re] regex case-insensitive character ranges are unimplementable as specified No
1396 Open 30.8 [re.regex] regex should support allocators No 1451
3296 New 30.8 [re.regex] Inconsistent default argument for basic_regex<>::assign Yes
2236 SG1 31.2 [atomics.syn] kill_dependency unconditionally noexcept No
1459 LEWG 31.4 [atomics.order] Overlapping evaluations are allowed No 1458
3249 New 31.5 [atomics.lockfree] There are no 'pointers' in §[atomics.lockfree] Yes
3288 New 31.6 [atomics.wait] atomic<T>::notify_one is unimplementable Yes
2334 SG1 31.8.1 [atomics.types.operations] atomic's default constructor requires "uninitialized" state even for types with non-trivial default-constructor Yes
3254 New 32.3.3 [stoptoken] Strike stop_token's operator!= Yes
1484 LEWG 32.4.2 [thread.thread.class] Need a way to join a thread with a timeout No
1488 LEWG 32.5 [thread.mutex] Improve interoperability between the C++0x and C1x threads APIs No
1493 LEWG 32.5.3 [thread.mutex.requirements] Add mutex, recursive_mutex, is_locked function No
961 LEWG 32.5.3 [thread.mutex.requirements] Various threading bugs #11 No 936
936 LEWG 32.5.3 [thread.mutex.requirements] Mutex type overspecified No 961
2533 SG1 99 [concurr.ts::futures.unique_future] [concurr.ts] Constrain threads where future::then can run a continuation No
3114 LEWG 16 [networking.ts::buffer] [networking.ts] Permit efficient composition when using DynamicBuffer Yes