C++ Standard Library Issues List (Revision D122)

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 2020-11-22 at 13:25:59 UTC

Section 3 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2392(i) New 3.36 [defns.ntcts] "character type" is used but not defined No 3

Section 6 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2506(i) SG1 6.9.2 [intro.multithread] Underspecification of atomics No 3

Section 16 (23 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3105(i) New 16 [library] T1 is convertible to T2 No 3
2949(i) New 16 [library] Unclear complexity requirements: space vs. time No 4
2136(i) Open 16.3.2 [structure] Postconditions vs. exceptions No 3
3193(i) New 16.3.2.4 [structure.specifications] Mandates: and Expects: elements are not defined for types Yes 3
3401(i) New 16.3.2.4 [structure.specifications] Is "as if by" equivalent to "equivalent to"? No 3
3092(i) Open 16.3.3.3.4 [bitmask.types] Unclear semantics of enum class bitmask types Yes 3
2818(i) Open 16.4.2.2 [contents] "::std::" everywhere rule needs tweaking Yes 2
3240(i) New 16.4.3.2 [using.headers] Headers declare more than entities No 3
2146(i) Open 16.4.4.2 [utility.arg.requirements] Are reference types Copy/Move-Constructible/Assignable or Destructible? No 3
2152(i) LEWG 16.4.4.3 [swappable.requirements] Instances of standard container types are not swappable Yes 3
2114(i) Open 16.4.4.4 [nullablepointer.requirements] Incorrect "contextually convertible to bool" requirements Yes 3
3267(i) New 16.4.4.6 [allocator.requirements] Rebound allocators and is_always_equal Yes 4
3157(i) New 16.4.4.6 [allocator.requirements] Allocator destroy and fancy pointer operations must be non-throwing Yes 3
3044(i) New 16.4.4.6 [allocator.requirements] Strange specification of max_size() for an allocator Yes 3
2461(i) New 16.4.4.6 [allocator.requirements] Interaction between allocators and container exception safety guarantees No 3
3177(i) New 16.4.5.2.1 [namespace.std] Limit permission to specialize variable templates to program-defined types Yes 3
3441(i) Open 16.4.5.2.1 [namespace.std] Misleading note about calls to customization points Yes 1
3442(i) Open 16.4.5.2.1 [namespace.std] Unsatisfiable suggested implementation of customization points Yes 1
3142(i) New 16.4.5.8 [res.on.functions] std::foo<incomplete> should be ill-formed NDR Yes 3
3429(i) New 16.4.5.11 [res.on.requirements] "models" should subsume like "satisfies" Yes 3
2695(i) New 16.4.6.5 [member.functions] "As if" unclear in [member.functions] No 3
2414(i) Open 16.4.6.9 [reentrancy] Member function reentrancy should be implementation-defined Yes 3
3229(i) New 16.4.6.13 [res.on.exception.handling] §[res.on.exception.handling]#3 cannot apply to types with implicitly declared destructors Yes 3

Section 17 (17 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3217(i) New 17.3.1 [support.limits.general] <memory> and <execution> should define __cpp_lib_parallel_algorithm Yes 3
2248(i) New 17.3.5 [numeric.limits] numeric_limits::is_iec559 misnamed No 4
2730(i) Open 17.3.5 [numeric.limits] numeric_limits primary template definition No 3
3370(i) New 17.4.2 [cstdint.syn] §[cstdint.syn]p2 and §[headers]p5 are not sufficiently clear No 3
2815(i) New 17.5 [support.start.term] quick_exit can deadlock Yes 3
3084(i) New 17.5 [support.start.term] Termination in C++ is unclear No 3
3086(i) New 17.6.3.2 [new.delete.single] Possible problem in §[new.delete.single] Yes 3
2737(i) New 17.6.3.2 [new.delete.single] Consider relaxing object size restrictions for single-object allocation functions No 3
2303(i) New 17.6.3.4 [new.delete.placement] Explicit instantiation of std::vector<UserType> broken? No 3
2508(i) New 17.6.3.5 [new.delete.dataraces] §[new.delete.dataraces] wording needs to be updated No 3
3495(i) New 17.6.5 [ptr.launder] constexpr launder makes pointers to inactive members of unions usable Yes 3
2398(i) Open 17.7.3 [type.info] type_info's destructor shouldn't be required to be virtual Yes 3
2088(i) Open 17.9.5 [exception.terminate] std::terminate problem No 3
2453(i) New 17.10 [support.initlist] §[iterator.range] and now [iterator.container] aren't available via <initializer_list> No 3
2493(i) New 17.10 [support.initlist] initializer_list supports incomplete classes No 4
2432(i) EWG 17.10 [support.initlist] initializer_list assignability Yes 2
3491(i) New 17.11.6 [cmp.alg] What is a "decayed type"? No

Section 18 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3459(i) New 18.4.4 [concept.convertible] Why doesn't std::convertible_to have semantic requirement when To is reference-to-function type? No 3

Section 19 (5 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2413(i) New 19.3 [assertions] assert macro is overconstrained No 4
3011(i) Open 19.3 [assertions] Requirements for assert(E) inconsistent with C No 2
3019(i) New 19.5.3.4 [syserr.errcat.derived] Presentation of "program defined classes derived from error_category" [syserr.errcat.derived] unclear and contains mistakes No 3
3053(i) New 19.5.4.1 [syserr.errcode.overview] Prohibit error_code construction from rvalues of error_category Yes 3
3162(i) New 19.5.8.2 [syserr.syserr.members] system_error::system_error(error_code ec) not explicit Yes 3

Section 20 (70 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2153(i) LEWG 20.2.2 [utility.swap] Narrowing of the non-member swap contract No 2
2599(i) New 20.2.6 [declval] Library incomplete type permission phrase is unclear No 3
3342(i) New 20.4.2 [pairs.pair] Library wording uses "initializes x with y", which is underspecified No 3
2289(i) Open 20.4.2 [pairs.pair] constexpr guarantees of defaulted functions still insufficient No 3
2766(i) New 20.4.3 [pairs.spec] Swapping non-swappable types Yes 3
3166(i) New 20.4.4 [pair.astuple] No such descriptive element as Value: No 3
3378(i) New 20.5.2 [tuple.syn] tuple_size_v/tuple_element_t should be available when tuple_size/tuple_element are Yes 3
2528(i) New 20.5.3.1 [tuple.cnstr] Order of std::tuple construction unspecified No 3
3155(i) Open 20.5.3.1 [tuple.cnstr] tuple<any, any>{allocator_arg_t, an_allocator} Yes 3
3121(i) Open 20.5.3.1 [tuple.cnstr] tuple constructor constraints for UTypes&&... overloads Yes 2
2933(i) New 20.5.4 [tuple.creation] PR for LWG 2773 could be clearer Yes 3
2472(i) New 20.5.8 [tuple.rel] Heterogeneous comparisons in the standard library can result in ambiguities No 3
532(i) LEWG 20.5.8 [tuple.rel] Tuple comparison Yes 348
2990(i) Open 20.6.3 [optional.optional] optional::value_type is not always a value type Yes 3
2811(i) New 20.6.3.2 [optional.ctor] "Selected constructor" wording is incorrect for optional/variant/any Yes 3
2746(i) New 20.6.3.4 [optional.assign] Inconsistency between requirements for emplace between optional and variant Yes 3
3424(i) New 20.6.3.6 [optional.observe] optional::value_or should never return a cv-qualified type Yes 3
2829(i) Open 20.6.3.6 [optional.observe] LWG 2740 leaves behind vacuous words No 2
2881(i) New 20.7.3 [variant.variant] Adopt section III of P0308R0 No 3
3215(i) New 20.7.3.2 [variant.ctor] variant default constructor has vague constexpr requirements No 2
2833(i) Open 20.7.3.2 [variant.ctor] Library needs to specify what it means when it declares a function constexpr Yes 2
2991(i) LEWG 20.7.3.2 [variant.ctor] variant copy constructor missing noexcept(see below) Yes
3069(i) New 20.7.3.4 [variant.assign] Move assigning variant's subobject corrupts data Yes 3
3052(i) Tentatively Resolved 20.7.7 [variant.visit] visit is underconstrained Yes 2
3416(i) New 20.8.4 [any.class] The Throws: specification of std::any does not mention allocation No 3
3423(i) New 20.8.5 [any.nonmembers] std::any_cast should never return a cv-qualified type Yes 3
3305(i) Open 20.8.5 [any.nonmembers] any_cast<void> Yes 2
2348(i) Open 20.9.2 [template.bitset] charT('1') is not the wide equivalent of '1' Yes 3
3454(i) LEWG 20.10.3 [pointer.traits] pointer_traits::pointer_to should be constexpr Yes
2421(i) New 20.10.6 [ptr.align] Non-specification of handling zero size in std::align [ptr.align] No 3
3192(i) New 20.10.8.2 [allocator.uses.construction] §[allocator.uses.construction] functions misbehave for const types Yes 3
3159(i) New 20.11.1.3 [unique.ptr.single] §[unique.ptr.single] requirements on deleter may be too strict No 3
2262(i) Open 20.11.1.3 [unique.ptr.single] Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr Yes 3
2762(i) Open 20.11.1.3.5 [unique.ptr.single.observers] unique_ptr operator*() should be noexcept Yes 3
2594(i) New 20.11.3 [util.smartptr.shared] Contradicting definition of empty shared_ptr on shared_ptr(nullptr, d) Yes 3
2906(i) New 20.11.3.2 [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
2751(i) New 20.11.3.3 [util.smartptr.shared.dest] shared_ptr deleter not specified to observe expired weak_ptr instances No 4
3210(i) New 20.11.3.7 [util.smartptr.shared.create] allocate_shared is inconsistent about removing const from the pointer passed to allocator construct and destroy Yes 3
3216(i) New 20.11.3.7 [util.smartptr.shared.create] Rebinding the allocator before calling construct/destroy in allocate_shared Yes 3
3471(i) New 20.12 [mem.res] polymorphic_allocator::allocate does not satisfy Cpp17Allocator requirements Yes 3
2848(i) New 20.12.5.2 [mem.res.pool.options] Pass-through threshold for pool allocator No 3
2690(i) LEWG 20.14.5 [func.invoke] invoke<R> Yes
3046(i) New 20.14.6 [refwrap] Do not require reference_wrapper to support non-referenceable function types Yes 3
3146(i) New 20.14.6.6 [refwrap.helpers] Excessive unwrapping in std::ref/cref Yes 3
2491(i) New 20.14.8 [comparisons] std::less<T*> in constant expression Yes 3
2547(i) New 20.14.8 [comparisons] Container requirements (and other library text) should say "strict total order", not just "total order" No 3
2774(i) New 20.14.17.3.2 [func.wrap.func.con] std::function construction vs assignment Yes 3
3493(i) New 20.14.17.3.2 [func.wrap.func.con] The constructor of std::function taking an F is missing a constraint Yes
2813(i) EWG 20.14.17.3.2 [func.wrap.func.con] std::function should not return dangling references Yes 2
2290(i) Open 20.15 [meta] Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 Yes 3
2452(i) Core 20.15 [meta] is_constructible, etc. and default arguments No 3
2845(i) New 20.15.2 [meta.rqmts] enable_if, result_of, common_type and aligned_storage do not meet the definition of TransformationTrait No 3
3099(i) New 20.15.3 [meta.type.synop] is_assignable<Incomplete&, Incomplete&> Yes 2
2939(i) New 20.15.3 [meta.type.synop] Some type-completeness constraints of traits are overspecified No 2
2922(i) LEWG 20.15.3 [meta.type.synop] The *_constant<> templates do not make use of template<auto> No
2827(i) New 20.15.5.4 [meta.unary.prop] is_trivially_constructible and non-trivial destructors No 3
2496(i) New 20.15.5.4 [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
2116(i) Open 20.15.5.4 [meta.unary.prop] is_nothrow_constructible and destructors No 3
2358(i) Open 20.15.5.4 [meta.unary.prop] Apparently-bogus definition of is_empty type trait Yes 3
2077(i) Open 20.15.5.4 [meta.unary.prop] Further incomplete constraints for type traits No 3
3486(i) LEWG 20.15.5.4 [meta.unary.prop] is_constructible<T[], T...> may be misleading in C++20 No
3400(i) New 20.15.7 [meta.rel] Does is_nothrow_convertible consider destruction of the destination type? No 3
3174(i) New 20.15.7 [meta.rel] Precondition on is_convertible is too strong Yes 3
3205(i) New 20.15.8.7 [meta.trans.other] decay_t in the new common_type fallback should be remove_cvref_t Yes 3
3152(i) New 20.15.8.7 [meta.trans.other] common_type and common_reference have flaws in common Yes 3
3456(i) New 20.19.3 [charconv.from.chars] Pattern used by std::from_chars is underspecified Yes 3
3081(i) Open 20.19.3 [charconv.from.chars] Floating point from_chars API does not distinguish between overflow and underflow Yes 2
3082(i) Open 20.19.3 [charconv.from.chars] from_chars specification regarding floating point rounding is inconsistent Yes 2
3412(i) New 20.20.2.2 [format.string.std] §[format.string.std] references to "Unicode encoding" unclear No 3
3462(i) New 20.20.5.1 [formatter.requirements] §[formatter.requirements]: Formatter requirements forbid use of fc.arg() Yes 3

Section 21 (11 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2513(i) New 21.1 [strings.general] Missing requirements for basic_string::value_type No 4
2994(i) Open 21.2 [char.traits] Needless UB for basic_string and basic_string_view Yes 3
3085(i) Open 21.2.2 [char.traits.require] char_traits::copy precondition too weak Yes 2
2959(i) New 21.2.4.4 [char.traits.specializations.char16.t] char_traits<char16_t>::eof is a valid UTF-16 code unit No 3
3339(i) New 21.3.3 [basic.string] Move-constructed empty-container capacity No 3
3451(i) New 21.3.3 [basic.string] Inconsistently explicit deduction guides Yes 3
2883(i) 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
3457(i) New 21.4.3 [string.view.template] *this is not invalidated Yes 3
3068(i) Open 21.4.3 [string.view.template] Forbid assigning an rvalue basic_string to basic_string_view Yes 2
2237(i) New 21.5 [c.strings] <cuchar> macros No 4
2238(i) Open 21.5 [c.strings] Problematic iterator-pair constructor of containers No 3

Section 22 (36 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2307(i) LEWG 22 [containers] Should the Standard Library use explicit only when necessary? No 2
2885(i) 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
2884(i) LEWG 22 [containers] Relational operators for containers should sfinae; if the underlying type is not comparable, neither should the container be No
3059(i) New 22.2 [container.requirements] Wrong requirements for map-like associative container assignment? No 3
3028(i) New 22.2.1 [container.requirements.general] Container requirements tables should distinguish const and non-const variables Yes 3
3431(i) New 22.2.1 [container.requirements.general] <=> for containers should require three_way_comparable<T> instead of <=> Yes 2
2269(i) New 22.2.1 [container.requirements.general] Container iterators and argument-dependent lookup No 4
1521(i) Open 22.2.1 [container.requirements.general] Requirements on internal pointer representations in containers Yes 3
2321(i) Open 22.2.1 [container.requirements.general] Moving containers should (usually) be required to preserve iterators Yes 3
2705(i) New 22.2.3 [sequence.reqmts] Questionable precondition on Sequence containers a.assign(n, t) Yes 3
3297(i) New 22.2.3 [sequence.reqmts] Useless sequence container requirement Yes 3
2206(i) Open 22.2.3 [sequence.reqmts] Inaccuracy in initializer_list constructor requirements Yes 3
3438(i) New 22.2.4.1 [container.node.overview] §[container.node.overview] missing multiset/map cases No 3
3227(i) New 22.2.6 [associative.reqmts] Ambiguity issue for extract in ordered and unordered associative containers Yes 3
2362(i) New 22.2.6 [associative.reqmts] unique, associative emplace() should not move/copy the mapped_type constructor arguments when no insertion happens No 3
2227(i) Open 22.2.6 [associative.reqmts] Stateful comparison objects in associative containers No 3
2844(i) Open 22.2.6 [associative.reqmts] Stability of a_uniq.insert(i, j) No 3
2215(i) Open 22.2.6 [associative.reqmts] (unordered) associative container functors should be CopyConstructible Yes 3
1175(i) Open 22.2.7 [unord.req] unordered complexity Yes 3
2198(i) Open 22.2.7 [unord.req] max_load_factor(z) makes no strong guarantees, but bans useful behavior Yes 3
2189(i) Open 22.2.7.2 [unord.req.except] Throwing swap breaks unordered containers' state No 3
3219(i) New 22.3.7.1 [array.overview] std::array overview container requirements are incorrect Yes 3
2823(i) Open 22.3.7.1 [array.overview] std::array initialization is still not permissive enough Yes 3
3488(i) Open 22.3.7.4 [array.special] Is array<const int, 0> swappable or not? Yes 3
2157(i) Open 22.3.7.5 [array.zero] How does std::array<T,0> initialization work when T is not default-constructible? Yes 3
3308(i) New 22.3.8.4 [deque.modifiers] vector and deque iterator erase invalidates elements even when no change occurs Yes 3
3088(i) New 22.3.9.6 [forwardlist.ops] forward_list::merge behavior unclear when passed *this Yes 3
2997(i) New 22.3.10.5 [list.ops] LWG 491 and the specification of {forward_,}list::unique Yes 3
2158(i) Open 22.3.11.3 [vector.capacity] Conditional copy/move in std::vector Yes 3
1102(i) Open 22.3.11.3 [vector.capacity] std::vector's reallocation policy still unclear Yes 3
1422(i) Open 22.3.12 [vector.bool] vector<bool> iterators are not random access No 3
2713(i) New 22.5 [unord] More missing allocator-extended constructors for unordered containers Yes 3
3506(i) New 22.6.5 [priority.queue] Missing allocator-extended constructors for priority_queue No
3189(i) New 22.6.5 [priority.queue] Missing requirement for std::priority_queue No 3
3161(i) Open 22.6.6 [stack] Container adapters mandate use of emplace_back but don't require it Yes 3
3203(i) New 22.7.3.1 [span.overview] span element access invalidation Yes 2

Section 23 (26 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
1213(i) Open 23.3 [iterator.requirements] Meaning of valid and singular iterator underspecified No 4
2375(i) New 23.3.1 [iterator.requirements.general] Is [iterator.requirements.general]/9 too broadly applied? No 3
3283(i) New 23.3.2.3 [iterator.traits] Types satisfying input_iterator but not equality_comparable look like C++17 output iterators Yes 2
3287(i) New 23.3.2.3 [iterator.traits] Exposition-only cpp17-input-iterator concept is needlessly complex Yes 3
3289(i) New 23.3.2.3 [iterator.traits] Cannot opt out of C++17 iterator-ness without also opting out of C++20 iterator-ness Yes 2
3376(i) New 23.3.4.4 [iterator.concept.winc] "integer-like class type" is too restrictive No 3
3366(i) New 23.3.4.4 [iterator.concept.winc] Narrowing conversions between integer and integer-class types No 3
2962(i) Open 23.3.5.3 [input.iterators] Iterators of Containers of move-only types do not model InputIterator Yes 2
484(i) Open 23.3.5.3 [input.iterators] Convertible to T No 2
2035(i) Open 23.3.5.4 [output.iterators] Output iterator requirements are broken Yes 3
2038(i) Open 23.3.5.4 [output.iterators] Missing definition for incrementable iterator No 3
3197(i) New 23.4.3 [iterator.operations] std::prev should not require BidirectionalIterator Yes 3
3439(i) New 23.4.3 [iterator.operations] "Distance" template parameter is underspecified No 3
3344(i) New 23.4.3 [iterator.operations] advance(i, most-negative) and prev(i, most-negative) Yes 3
2931(i) Open 23.4.3 [iterator.operations] Missed optimization opportunity with single-argument std::next No 3
3392(i) Open 23.4.4.3 [range.iter.op.distance] ranges::distance() cannot be used on a move-only iterator with a sized sentinel Yes 3
2858(i) New 23.5.1 [reverse.iterators] LWG 2472: actually an incompatibility with C++03 Yes 4
2595(i) New 23.5.1.2 [reverse.iterator] reverse_iterator::operator[]'s return type revisited Yes 3
3391(i) New 23.5.3 [move.iterators] Problems with counted_iterator/move_iterator::base() const & Yes 2
3293(i) New 23.5.3.9 [move.iter.nonmember] move_iterator operator+() has incorrect constraints Yes 3
3408(i) New 23.5.6.1 [counted.iterator] LWG 3291 reveals deficiencies in counted_iterator No 2
3107(i) New 23.6.4 [istreambuf.iterator] istreambuf_iterator has public exposition-only member Yes 4
3188(i) New 23.6.4 [istreambuf.iterator] istreambuf_iterator::pointer should not be unspecified Yes 3
2366(i) New 23.6.4 [istreambuf.iterator] istreambuf_iterator end-of-stream equality No 3
3108(i) New 23.6.4.2 [istreambuf.iterator.proxy] istreambuf_iterator::proxy::operator* should be const Yes 3
2457(i) New 23.7 [iterator.range] std::begin() and std::end() do not support multi-dimensional arrays correctly No 3

Section 24 (16 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3258(i) New 24.3.2 [range.access.begin] Range access and initializer_list Yes 3
3361(i) New 24.4.2 [range.range] safe_range<SomeRange&> case Yes 3
3452(i) New 24.4.4 [range.view] Are views really supposed to have strict 𝒪(1) destruction? No 2
3481(i) New 24.4.5 [range.refinements] viewable_range mishandles lvalue move-only views Yes 2
3470(i) New 24.5.4 [range.subrange] convertible-to-non-slicing seems to reject valid case No 3
3433(i) New 24.5.4.3 [range.subrange.access] subrange::advance(n) has UB when n < 0 Yes 2
3489(i) New 24.6.5.3 [range.istream.iterator] Improve istream_view wording Yes 3
3479(i) New 24.7.3 [range.semi.wrap] semiregular-box mishandles self-assignment Yes 3
3407(i) New 24.7.7.1 [range.take.overview] Some problems with the wording changes of P1739R4 No 2
3490(i) Tentatively Ready 24.7.10.2 [range.drop.while.view] ranges::drop_while_view::begin() is missing a precondition Yes 0
3500(i) Tentatively Ready 24.7.11.3 [range.join.iterator] join_view::iterator::operator->() is bogus Yes 0
3478(i) New 24.7.12 [range.split] views::split drops trailing empty range No 2
3505(i) New 24.7.12.3 [range.split.outer] split_view::outer-iterator::operator++ misspecified Yes
3494(i) New 24.7.15 [range.reverse] Allow ranges to be conditionally borrowed No
3492(i) Tentatively Ready 24.7.16.3 [range.elements.iterator] Minimal improvements to elements_view::iterator Yes 0
3502(i) New 24.7.16.3 [range.elements.iterator] elements_view should not be allowed to return dangling references No

Section 25 (18 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2963(i) New 25 [algorithms] Algorithms with underspecified iterator requirements No 3
1238(i) Open 25 [algorithms] Defining algorithms taking iterator for range No 3
2173(i) Open 25 [algorithms] The meaning of operator + in the description of the algorithms Yes 4
3049(i) Open 25.2 [algorithms.requirements] Missing wording allowing algorithms to use copies of function objects as substitutes for their parameters Yes 3
3089(i) New 25.7.1 [alg.copy] copy_n should require non-overlapping ranges Yes 3
2471(i) Open 25.7.1 [alg.copy] copy_n's number of InputIterator increments unspecified No 3
2985(i) LEWG 25.7.10 [alg.reverse] std::reverse should be permitted to be vectorized Yes
2267(i) New 25.8.2.4 [partial.sort.copy] partial_sort_copy underspecified for ranges of two different types No 3
2973(i) LEWG 25.8.6 [alg.merge] inplace_merge exact comparison count complexity prohibits useful real-world optimizations Yes
3032(i) New 25.8.8 [alg.heap.operations] ValueSwappable requirement missing for push_heap and make_heap Yes 3
3029(i) Open 25.8.8.3 [pop.heap] pop_heap over-constrains input Yes 3
3410(i) New 25.8.12 [alg.three.way] lexicographical_compare_three_way is overspecified No 3
3487(i) New 25.10 [numeric.ops] Missing precondition on input and output aliasing of [numeric.ops] No 3
3060(i) New 25.10.8 [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
3463(i) New 25.10.11 [transform.inclusive.scan] Incorrect requirements for transform_inclusive_scan without initial value Yes 3
3063(i) New 25.11 [specialized.algorithms] Parallel algorithms in <memory> are underspecified No 3
3064(i) New 25.11 [specialized.algorithms] How do uninitialized memory algorithms obtain pointer without undefined behavior? No 3
3436(i) New 25.11.8 [specialized.construct] std::construct_at should support arrays No 2

Section 26 (15 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2714(i) New 26.4.7 [complex.ops] complex stream extraction underspecified Yes 3
2846(i) New 26.4.10 [cmplx.over] Undefined phrase "effectively cast" Yes 3
3422(i) New 26.6.8.1 [rand.util.seedseq] Issues of seed_seq's constructors Yes 3
2352(i) New 26.6.8.1 [rand.util.seedseq] Is a default-constructed std::seed_seq intended to produce a predictable .generate()? No 2
3402(i) New 26.6.9.3.4 [rand.dist.bern.negbin] Wording for negative_binomial_distribution is unclear as a consequence of LWG 2406 resolution No 3
2524(i) Open 26.6.9.4.2 [rand.dist.pois.exp] generate_canonical can occasionally return 1.0 No 2
2423(i) New 26.7.5 [template.slice.array] Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor Yes 4
2115(i) Open 26.7.8 [template.mask.array] Undefined behaviour for valarray assignments with mask_array index? No 4
2847(i) New 26.8.1 [cmath.syn] sin(float) should call sinf(float) No 3
3234(i) New 26.8.1 [cmath.syn] Sufficient Additional Special Math Overloads No 3
3223(i) New 26.8.1 [cmath.syn] lerp should not add the "sufficient additional overloads" No 2
2923(i) New 26.8.1 [cmath.syn] noexcept is inconsistently applied across headers which import components of the C standard library No 4
3093(i) New 26.8.2 [c.math.abs] LWG 2294/2192 missed a std::abs overload No 3
3172(i) New 26.8.3 [c.math.hypot3] 3-arg std::hypot is underspecified compared to the 2-arg overload Yes 3
3066(i) New 26.8.6 [sf.cmath] "report a domain error" in [sf.cmath]/1 is underspecified No 3

Section 27 (5 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2592(i) New 27.2 [time.syn] Require that chrono::duration_casts from smaller durations to larger durations do not overflow Yes 4
3123(i) New 27.5 [time.duration] duration constructor from representation shouldn't be effectively non-throwing Yes 3
3090(i) New 27.5.2 [time.duration.cons] What is §[time.duration.cons]p4's "no overflow is induced in the conversion" intended to mean? Yes 3
3503(i) New 27.5.8 [time.duration.cast] chrono::ceil has surprising requirement No
2383(i) Open 27.5.9 [time.duration.literals] Overflow cannot be ill-formed for chrono::duration integer literals No 3

Section 28 (12 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3353(i) New 28.3.1 [locale] locale's copy assignment operator should return locale& Yes 3
2295(i) New 28.3.1.3 [locale.cons] Locale name when the provided Facet is a nullptr No 3
3337(i) New 28.4.2.5.3 [locale.codecvt.virtuals] What is "is initialized" supposed to mean? No 3
3214(i) New 28.4.3.2.3 [facet.num.get.virtuals] §[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent No 4
2381(i) Open 28.4.3.2.3 [facet.num.get.virtuals] Inconsistency in parsing floating point numbers Yes 2
2703(i) New 28.4.3.3.3 [facet.num.put.virtuals] No provision for fill-padding when boolalpha is set No 3
2702(i) New 28.4.3.3.3 [facet.num.put.virtuals] num_put::do_put(..., bool) performs ill-formed do_put call No 3
2117(i) Open 28.4.3.3.3 [facet.num.put.virtuals] ios_base manipulators should have showgrouping/noshowgrouping No 3
3275(i) New 28.4.6.2.3 [locale.time.get.virtuals] Why does time_get::do_get require a valid pointer when none of the others do? Yes 3
2512(i) Open 28.4.6.2.3 [locale.time.get.virtuals] Y2K bites; what is an "unambiguous year identifier"? No 4
2983(i) New 28.4.7.3.2 [locale.money.put.virtuals] money_put::do_put underspecified Yes 3
2691(i) New 28.4.7.4 [locale.moneypunct] money_base::space and do_put: U+0020 versus fill Yes 3

Section 29 (24 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
423(i) Open 29 [input.output] Effects of negative streamsize in iostreams Yes 3
2675(i) New 29.5.3.7 [ios.base.callback] register_callback can fail No 3
3118(i) New 29.5.4.2 [fpos.operations] fpos equality comparison unspecified No 4
2214(i) Open 29.5.5.2 [basic.ios.cons] Clarify basic_ios::init call restrictions Yes 4
2504(i) New 29.6.3 [streambuf] basic_streambuf is not an abstract class No 3
2349(i) Open 29.7.4.3.1 [istream.formatted.reqmts] Clarify input/output function rethrow behavior Yes 3
2342(i) New 29.7.5.2 [ostream] User conversion to wchar_t const* or to wchar_t not invoked for operator<< Yes 4
2497(i) New 29.7.5.2.4 [ostream.sentry] Use of uncaught_exception() Yes 3
3501(i) New 29.7.5.5 [ostream.manip] basic_syncbuf-related manipulators refer to some Allocator without defining it Yes 3
2984(i) New 29.7.7 [ext.manip] put_money(99) is unnecessarily undefined Yes 3
3309(i) New 29.8 [string.streams] Is <ios> implicitly #included by <sstream>, <fstream> etc.? No 3
3097(i) New 29.8.2.5 [stringbuf.virtuals] basic_stringbuf seekoff effects trigger undefined behavior and have contradictory returns No 3
2286(i) Open 29.8.2.5 [stringbuf.virtuals] stringbuf::underflow() underspecified Yes 4
3430(i) Open 29.9.1 [fstream.syn] std::fstream & co. should be constructible from string_view Yes 3
3498(i) New 29.10.2.1 [syncstream.syncbuf.overview] Inconsistent noexcept-specifiers for basic_syncbuf No 3
3496(i) New 29.10.2.4 [syncstream.syncbuf.members] What does "uniquely associated" mean for basic_syncbuf::emit()? No 3
3497(i) New 29.10.2.4 [syncstream.syncbuf.members] Postconditions for basic_syncbuf::emit() No 3
3098(i) New 29.11.6.5.9 [fs.path.decompose] Misleading example for filesystem::path::filename() Yes 3
2947(i) New 29.11.8.1 [fs.enum.path.format] Clarify several filesystem terms No 3
3078(i) New 29.11.10 [fs.class.directory.entry] directory_entry, directory_iterator and recursive_directory_iterator perform needless path copies No 3
3480(i) New 29.11.11 [fs.class.directory.iterator] directory_iterator and recursive_directory_iterator are not C++20 ranges No 3
2708(i) Open 29.11.12.2 [fs.rec.dir.itr.members] recursive_directory_iterator::recursion_pending() is incorrectly specified Yes 2
3057(i) Open 29.11.13.4 [fs.op.copy] Correct copy_options handling Yes 2
3056(i) New 29.11.13.5 [fs.op.copy.file] copy_file() copies which attributes? Yes 3

Section 30 (17 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2490(i) New 30 [re] <regex> needs lots of noexcept No 3
523(i) Open 30 [re] regex case-insensitive character ranges are unimplementable as specified No 4
2431(i) New 30.2 [re.req] Missing regular expression traits requirements No 3
2331(i) Open 30.4.2 [re.synopt] regex_constants::collate's effects are inaccurately summarized Yes 3
2338(i) Open 30.6 [re.traits] §[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 Yes 3
3261(i) New 30.7 [re.regex] regex components' noexcept annotations appear broken for POCMA or throwing BidirectionalIterator No 3
3341(i) New 30.7.2 [re.regex.construct] basic_regex range constructor: Missing requirements for iterator types No 3
2137(i) Open 30.7.3 [re.regex.assign] Misleadingly constrained post-condition in the presence of exceptions Yes 3
3126(i) New 30.8 [re.submatch] There's no std::sub_match::compare(string_view) overload Yes 3
3204(i) New 30.8 [re.submatch] sub_match::swap only swaps the base class Yes 3
2195(i) Open 30.9 [re.results] Missing constructors for match_results Yes 3
2191(i) New 30.9.2 [re.results.const] Incorrect specification of match_results(match_results&&) Yes 4
2216(i) New 30.10.4 [re.alg.replace] regex_replace(basic_string) allocator handling No 3
2220(i) Open 30.11.2.3 [re.tokiter.comp] Under-specification of operator== for regex_token_iterator Yes 3
2986(i) New 30.12 [re.grammar] Handling of multi-character collating elements by the regex FSM is underspecified No 4
2987(i) New 30.12 [re.grammar] Relationship between traits_inst.lookup_collatename and the regex FSM is underspecified with regards to ClassAtomCollatingElement No 3
2546(i) New 30.12 [re.grammar] Implementability of locale-sensitive UnicodeEscapeSequence matching No 4

Section 31 (12 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3220(i) New 31.2 [atomics.syn] P0558 broke conforming C++14 uses of atomic shared_ptr Yes 3
2236(i) SG1 31.2 [atomics.syn] kill_dependency unconditionally noexcept No
3268(i) New 31.4 [atomics.order] memory_order::memory_order_foo broken in C++20 Yes 4
2265(i) Open 31.4 [atomics.order] 29.3p9 appears to rule out some acceptable executions No 4
1459(i) LEWG 31.4 [atomics.order] Overlapping evaluations are allowed No 1458
3263(i) New 31.6 [atomics.wait] Atomic waiting function calls should only be unblocked once Yes 3
3288(i) New 31.6 [atomics.wait] atomic<T>::notify_one is unimplementable Yes 2
3485(i) SG1 31.7 [atomics.ref.generic] atomic_ref safety should be based on operations that "potentially conflict" rather than lifetime No 3
3409(i) New 31.7.2 [atomics.ref.ops] Too lax description of atomic_ref<T>::required_alignment Yes 3
3417(i) SG1 31.8.2 [atomics.types.operations] Missing volatile atomic deprecations Yes 3
3047(i) New 31.8.3 [atomics.types.int] atomic compound assignment operators can cause undefined behavior when corresponding fetch_meow members don't Yes 3
3418(i) New 31.9 [atomics.nonmembers] Deprecated free functions in <atomic> Yes 3

Section 32 (16 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2819(i) New 32.2.5 [thread.req.lockable] Unspecified Return type: elements Yes 3
3499(i) New 32.2.5.4 [thread.req.lockable.timed] Timed lockable and mutex requirements are imprecise about duration and time_point No 3
1484(i) LEWG 32.4.3 [thread.thread.class] Need a way to join a thread with a timeout No
3475(i) New 32.4.3.3 [thread.thread.constr] std::thread's constructor needs to be able to report general memory allocation failures Yes 3
1488(i) LEWG 32.5 [thread.mutex] Improve interoperability between the C++0x and C1x threads APIs No
936(i) LEWG 32.5.4 [thread.mutex.requirements] Mutex type overspecified No 961
961(i) LEWG 32.5.4 [thread.mutex.requirements] Various threading bugs #11 No 936
1493(i) LEWG 32.5.4 [thread.mutex.requirements] Add mutex, recursive_mutex, is_locked function No
2363(i) Open 32.5.4.5.2 [thread.sharedtimedmutex.class] Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] Yes 2
3343(i) New 32.6.3 [thread.condition.nonmember] Ordering of calls to unlock() and notify_all() in Effects element of notify_all_at_thread_exit() should be reversed Yes 3
3504(i) New 32.6.4 [thread.condition.condvar] condition_variable::wait_for is overspecified No
2530(i) Open 32.9.5 [futures.state] Clarify observable side effects of releasing a shared state No 3
3003(i) Open 32.9.6 [futures.promise] <future> still has type-erased allocators in promise Yes 2
2532(i) Open 32.9.6 [futures.promise] Satisfying a promise at thread exit Yes 3
2095(i) LEWG 32.9.6 [futures.promise] promise and packaged_task missing constructors needed for uses-allocator construction Yes 4
2202(i) Deferred 32.9.9 [futures.async] Missing allocator support by async No 4

Section D (8 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3484(i) New D.10.7 [depr.c.headers.other] Should <stddef.h> declare ::nullptr_t? Yes 3
3109(i) New D.13.2 [depr.strstreambuf] strstreambuf is copyable No 4
3095(i) New D.13.2.4 [depr.strstreambuf.virtuals] strstreambuf refers to nonexistent member of fpos, fpos::offset Yes 4
2507(i) New D.21 [depr.locale.stdcvt] codecvt_mode should be a bitmask type No 3
2478(i) New D.22.2 [depr.conversions.string] Unclear how wstring_convert uses cvtstate No 4
2481(i) New D.22.2 [depr.conversions.string] wstring_convert should be more precise regarding "byte-error string" etc. No 4
2479(i) New D.22.3 [depr.conversions.buffer] Unclear how wbuffer_convert uses cvtstate No 4
2480(i) New D.22.3 [depr.conversions.buffer] Error handling of wbuffer_convert unclear No 4

Section concurr.ts 99 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2533(i) SG1 99 [concurr.ts::futures.unique_future] [concurr.ts] Constrain threads where future::then can run a continuation No

Section fund.ts.v2 4 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2564(i) New 4.2 [fund.ts.v2::func.wrap.func] [fund.ts.v2] std::experimental::function constructors taking allocator arguments may throw exceptions Yes 3

Section fund.ts.v2 5 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
2561(i) 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

Section fund.ts.v3 3 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3136(i) New 3.2.2.2.1 [fund.ts.v3::propagate_const.class_type_requirements] [fund.ts.v3] LFTSv3 awkward wording in propagate_const requirements Yes 3

Section fund.ts.v3 5 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3167(i) New 5.2 [fund.ts.v3::memory.observer.ptr] [fund.ts.v3] Does observer_ptr support function types? No 3

Section fund.ts.v3 10 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3357(i) Open 10.1.2.1 [fund.ts.v3::rand.util.randint] [fund.ts.v3] default_random_engine is overspecified for per-thread engine Yes 3

Section fund.ts.v3 99 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3411(i) New 99 [fund.ts.v3::memory.resource.syn] [fund.ts.v3] Contradictory namespace rules in the Library Fundamentals TS No 3

Section networking.ts 13 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3124(i) New 13.7.5 [networking.ts::async.exec.ctx.globals] [networking.ts] Unclear how execution_context is intended to store services Yes 3

Section networking.ts 16 (4 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3114(i) LEWG 16 [networking.ts::buffer] [networking.ts] Permit efficient composition when using DynamicBuffer Yes
3021(i) New 16.2.2 [networking.ts::buffer.reqmts.constbuffersequence] [networking.ts] Relax pointer equivalence requirement for ConstBufferSequence Yes 3
3027(i) New 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] [networking.ts] DynamicBuffer prepare exception specification Yes 3
3072(i) New 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] [networking.ts] DynamicBuffer object lifetimes underspecified Yes 3

Section networking.ts 17 (1 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3073(i) New 17 [networking.ts::buffer.stream] [networking.ts] (async_)read and (async_)write don't support DynamicBuffer lvalues Yes 3

Section networking.ts 19 (2 issues)

(view all issues)

Issue Status Section Title Proposed Resolution Priority Duplicates
3444(i) New 19.1.2 [networking.ts::socket.streambuf.members] [networking.ts] net::basic_socket_streambuf::connect(Args&&...) effects are wrong No 2
3445(i) New 19.2.1 [networking.ts::socket.iostream.cons] [networking.ts] net::basic_socket_istream::connect should be constrained Yes 3