C++ Standard Library Issues List (Revision D127)
Index by Section
Reference ISO/IEC IS 14882:2024(E)
This document is the Index by Section for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.
Index by Section
(view only non-Ready open issues)
Revised 2026-09-14 at 09:14:27 UTC
Section 16 (3 issues)
(view only non-Ready open issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 2136(i) |
Ready |
16.3.2 [structure] |
Postconditions vs. exceptions |
Yes |
3 |
|
| 4586(i) |
Ready |
16.3.3.7 [freestanding.item] |
Partial specialization of std::format_kind for std::optional is not marked hosted |
Yes |
|
|
| 4598(i) |
Tentatively Ready |
16.4.6.14 [res.on.exception.handling] |
§[res.on.exception.handling] should cover exceptions specified outside a Throws: paragraph |
Yes |
|
|
Section 17 (2 issues)
(view only non-Ready open issues)
Section 19 (1 issues)
Section 20 (1 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4110(i) |
Ready |
20.4.2.2.2 [util.smartptr.shared.const] |
shared_ptr(nullptr_t, Deleter) is overconstrained, breaking some sensible deleters |
Yes |
3 |
|
Section 21 (3 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4138(i) |
Ready |
21.3.11 [meta.const.eval] |
is_within_lifetime should mandate is_object |
Yes |
3 |
|
| 4591(i) |
Ready |
21.4.8 [meta.reflection.scope] |
std::meta::current_function should probably work in a local class |
Yes |
2 |
|
| 4576(i) |
Ready |
21.4.15 [meta.reflection.substitute] |
{can_}substitute specification is (still) ill-formed |
Yes |
2 |
|
Section 22 (4 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 2811(i) |
Ready |
22.5.3.2 [optional.ctor] |
"Selected constructor" wording is incorrect for optional/variant/any |
Yes |
3 |
|
| 4406(i) |
Ready |
22.5.3.7 [optional.observe] |
optional::value_or return statement is inconsistent with Mandates |
Yes |
3 |
|
| 4367(i) |
Ready |
22.5.4.7 [optional.ref.monadic] |
Improve optional<T&>::or_else |
Yes |
4 |
|
| 3991(i) |
Ready |
22.6.3.4 [variant.assign] |
variant's move assignment should not be guaranteed to produce a valueless by exception state |
Yes |
3 |
|
Section 23 (8 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4159(i) |
Ready |
23.2.5 [container.node] |
Uses-allocator construction mechanisms should be opted out for node handles |
Yes |
3 |
|
| 2713(i) |
Ready |
23.5 [unord] |
More missing allocator-extended constructors for unordered containers |
Yes |
3 |
|
| 4587(i) |
Ready |
23.5.3.3 [unord.map.elem] |
Missing complexity for unordered_map::at |
Yes |
|
|
| 4397(i) |
Ready |
23.7.2.2.2 [span.cons] |
Improve span(R&& r) |
Yes |
3 |
|
| 4606(i) |
Ready |
23.7.3.4.7.3 [mdspan.layout.stride.cons] |
Bullet (4.3) preconditions are too strict to implement submdspan |
Yes |
|
|
| 4603(i) |
Ready |
23.7.3.4.7.3 [mdspan.layout.stride.cons] |
layout_stride should accept zero strides for empty extents |
Yes |
3 |
|
| 4562(i) |
Ready |
23.7.3.4.7.4 [mdspan.layout.stride.obs] |
layout_stride::is_exhaustive specification is problematic when there's an extent equal to 1 |
Yes |
3 |
|
| 4588(i) |
Ready |
23.7.3.7.1 [mdspan.sub.overview] |
mdspan issue due to rewording for canonicalize slice |
Yes |
|
|
Section 24 (3 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4546(i) |
Ready |
24.3.4.4 [iterator.concept.winc] |
Integer-class type should be structural type |
Yes |
3 |
|
| 4055(i) |
Ready |
24.4.3 [iterator.operations] |
§[iterator.operations] std::distance is missing a precondition |
Yes |
4 |
|
| 2595(i) |
Ready |
24.5.1.2 [reverse.iterator] |
reverse_iterator::operator[]'s return type revisited |
Yes |
3 |
|
Section 25 (4 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 3985(i) |
Ready |
25.5.7.2 [range.utility.conv.to] |
ranges::to should Mandates C not to be view |
Yes |
3 |
|
| 3832(i) |
Ready |
25.7.23.3 [range.elements.iterator] |
Missing change for element_view::iterator in LWG 3798 |
Yes |
3 |
|
| 4116(i) |
Ready |
25.7.24.3 [range.enumerate.iterator] |
enumerate_view::iterator and cartesian_product_view::iterator should not
always provide iterator_category |
Yes |
3 |
|
| 4117(i) |
Ready |
25.8.6 [coro.generator.iterator] |
generator::iterator should provide iterator_concept |
Yes |
4 |
|
Section 26 (5 issues)
(view only non-Ready open issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4614(i) |
Ready |
26.10.16 [numeric.ops.midpoint] |
§[numeric.ops.midpoint] No handling of non-finite floats |
Yes |
3 |
|
| 4593(i) |
Tentatively Ready |
26.10.17.2 [numeric.sat.cast] |
The first template argument of std::saturating_cast must be specifiable |
Yes |
|
|
| 3628(i) |
Ready |
26.11 [specialized.algorithms] |
"Effects: Equivalent to:" and uninitialized memory algorithms |
Yes |
3 |
|
| 3647(i) |
Ready |
26.11.2 [special.mem.concepts] |
nothrow-input-iterator constraints should not mention copying |
Yes |
3 |
|
| 3889(i) |
Ready |
26.11.9 [specialized.destroy] |
std::(ranges::)destroy_at should destroy array elements in the decreasing index order |
Yes |
3 |
|
Section 28 (8 issues)
(view only non-Ready open issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4602(i) |
Ready |
28.2.2 [charconv.to.chars] |
Incorrect lower bound for the default floating-point representation |
Yes |
1 |
|
| 4421(i) |
Ready |
28.2.2 [charconv.to.chars] |
Clarify the output encoding of to_chars for integers |
Yes |
3 |
|
| 3353(i) |
Ready |
28.3.3.1 [locale] |
locale's copy assignment operator should return locale& |
Yes |
3 |
|
| 4592(i) |
Tentatively Ready |
28.3.4.2.5.3 [locale.codecvt.virtuals] |
Preconditions of some virtual functions std::codecvt on character ranges are in a possibly unintended form |
Yes |
|
|
| 2983(i) |
Ready |
28.3.4.7.3.3 [locale.money.put.virtuals] |
money_put::do_put underspecified |
Yes |
3 |
|
| 2137(i) |
Ready |
28.6.7.3 [re.regex.assign] |
Misleadingly constrained post-condition in the presence of exceptions |
Yes |
3 |
|
| 3126(i) |
Ready |
28.6.8 [re.submatch] |
There's no std::sub_match::compare(string_view) overload |
Yes |
3 |
|
| 2220(i) |
Ready |
28.6.11.2.3 [re.tokiter.comp] |
Under-specification of operator== for regex_token_iterator |
Yes |
3 |
|
Section 29 (3 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 2714(i) |
Ready |
29.4.6 [complex.ops] |
complex stream extraction underspecified |
Yes |
3 |
|
| 3172(i) |
Ready |
29.7.3 [c.math.hypot3] |
3-arg std::hypot is underspecified compared to the 2-arg overload |
Yes |
3 |
|
| 4601(i) |
Ready |
29.7.4 [c.math.lerp] |
Unclear error handling for C++ math functions |
Yes |
3 |
|
Section 30 (2 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 2592(i) |
Ready |
30.2 [time.syn] |
Require that chrono::duration_casts from smaller durations to larger durations do not overflow |
Yes |
4 |
|
| 4022(i) |
Ready |
30.12 [time.format] |
Ambiguity in the formatting of negative years with format specifier %C |
Yes |
3 |
|
Section 31 (2 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 3696(i) |
Ready |
31.2.2 [stream.types] |
"Basic integral types" should not be used |
Yes |
3 |
|
| 4039(i) |
Ready |
31.7.6.3.5 [ostream.formatted.print] |
§[ostream.formatted.print]: Inappropriate usage of badbit in definition of
vprint_unicode/vprint_nonunicode |
Yes |
4 |
|
Section 32 (3 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 2819(i) |
Ready |
32.2.5 [thread.req.lockable] |
Unspecified Return type: elements |
Yes |
3 |
|
| 3047(i) |
Ready |
32.5.8.3 [atomics.types.int] |
atomic compound assignment operators can cause undefined behavior when corresponding
fetch_meow members don't |
Yes |
3 |
|
| 3898(i) |
Ready |
32.9.3.3 [thread.barrier.class] |
Possibly unintended preconditions for completion functions of std::barrier |
Yes |
3 |
|
Section 33 (2 issues)
| Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
| 4357(i) |
Ready |
33.9.10 [exec.connect] |
connect-awaitable should use is_void_v to check for result-type of
co_await expression instead of same_as<void> |
Yes |
4 |
|
| 4547(i) |
Ready |
33.13.1 [exec.as.awaitable] |
sender-awaitable needs a deduction guide |
Yes |
2 |
|