# C++ Standard Library Issues List (Revision R126)

# Index by Section

Reference ISO/IEC IS 14882:2024(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 2026-06-15 at 14:46:45 UTC

## Section 3 (2 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3513(i) | New | 3.43 [defns.prog.def.type] | Fix definition of program-defined based on its uses | Yes | 3 |
4005(i) | New | 3.49 [defns.required.behavior] | "Required behavior" too narrowly defined | No | 2 |

## Section 4 (1 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3669(i) | New | 4.1.2 [intro.abstract] | `std::filesystem` operations should be observable behaviour | No | 3 |

## Section 6 (1 issues)

(view all issues)

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

## Section 16 (46 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 |
3538(i) | New | 16.2 [library.c] | §[library.c] C library functions are not addressable | No | 2 |
3556(i) | New | 16.3.2.3 [structure.requirements] | Specification of when semantic constraints are imposed by use of concepts is unclear | 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 |
3977(i) | New | 16.3.3.3.3 [bitmask.types] | `constexpr` and `noexcept` for operators for bitmask types | Yes | 3 |
3092(i) | Open | 16.3.3.3.3 [bitmask.types] | Unclear semantics of `enum class` bitmask types | Yes | 3 |
3620(i) | New | 16.3.3.3.4.1 [character.seq.general] | What are execution character sets and execution wide-character sets (after P2314R4)? | No | 3 |
4586(i) | New | 16.3.3.7 [freestanding.item] | Partial specialization of `std::format_kind` for `std::optional` is not marked hosted | Yes |  |
4049(i) | New | 16.4.2 [organization] | C `<foo.h>` headers not in freestanding | Yes | 3 |
3690(i) | New | 16.4.2.2 [contents] | `std::make_from_tuple` etc. should find all tuple-like `std::get` overloads | Yes | 3 |
4488(i) | New | 16.4.2.3 [headers] | Undesired status for some functions in `<cmath>` | Yes | 3 |
3240(i) | New | 16.4.3.2 [using.headers] | Headers declare more than entities | No | 3 |
3640(i) | New | 16.4.4 [utility.requirements] | Clarify which exceptions are propagated | Yes | 3 |
2146(i) | Open | 16.4.4.2 [utility.arg.requirements] | Are reference types `CopyConstructible`/`MoveConstructible`/`CopyAssignable`/`MoveAssignable`/`Destructible`? | No | 3 |
2152(i) | LEWG | 16.4.4.3 [swappable.requirements] | Instances of standard container types are not swappable | Yes | 3 |
4155(i) | New | 16.4.4.4 [nullablepointer.requirements] | Cpp17NullablePointer should require that some expression can be contextually converted to bool | Yes | 3 |
4296(i) | New | 16.4.4.5 [hash.requirements] | Clarify that Cpp17Hash does not imply stateless | No | 3 |
3044(i) | New | 16.4.4.6 [allocator.requirements] | Strange specification of `max_size()` for an allocator | 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 |
2461(i) | New | 16.4.4.6 [allocator.requirements] | Interaction between allocators and container exception safety guarantees | No | 3 |
4258(i) | New | 16.4.4.6.1 [allocator.requirements.general] | Size type mismatch in constraints involving Cpp17Allocator | No | 4 |
4128(i) | New | 16.4.4.6.1 [allocator.requirements.general] | Allocator requirements should not allow rebinding conversions to be explicit | Yes | 3 |
4065(i) | New | 16.4.4.6.1 [allocator.requirements.general] | Requirements for fancy pointers might be insufficient for self-referential implementation of containers | Yes | 3 |
3682(i) | New | 16.4.4.6.1 [allocator.requirements.general] | A Cpp17Allocator type can't silently ignore an unsupported alignment | No | 3 |
4047(i) | New | 16.4.5.2.1 [namespace.std] | Explicitly specifying template arguments for `std::swap` should not be supported | No | 4 |
3926(i) | New | 16.4.5.2.1 [namespace.std] | Which namespace `std` is the mentioned one? | Yes | 4 |
3928(i) | New | 16.4.5.2.2 [namespace.posix] | Non-top-level namespace `posix` shouldn't be reserved | Yes | 3 |
3550(i) | New | 16.4.5.3 [reserved.names] | Names reserved by C for standard library not reserved by C++ | No | 3 |
4595(i) | New | 16.4.5.3.2 [zombie.names] | `byte_string` and `wide_string` are not yet zombie names | Yes |  |
4033(i) | New | 16.4.5.3.3 [macro.names] | §[macro.names] defining macros after importing the standard library | Yes | 3 |
3920(i) | New | 16.4.5.3.4 [extern.names] | Bad footnotes claiming external linkage for entities defined as macros | No | 3 |
3142(i) | New | 16.4.5.8 [res.on.functions] | `std::foo<incomplete>` should be ill-formed NDR | Yes | 3 |
3511(i) | New | 16.4.5.9 [res.on.arguments] | Clarify global permission to move | Yes | 3 |
4068(i) | New | 16.4.5.11 [res.on.requirements] | Terminology for objects whose types model a concept | No | 3 |
3429(i) | New | 16.4.5.11 [res.on.requirements] | "models" should subsume like "satisfies" | Yes | 3 |
4100(i) | New | 16.4.6.4 [global.functions] | Default arguments and signatures of standard library non-member functions | Yes | 3 |
4306(i) | New | 16.4.6.5 [member.functions] | Interaction between LWG 2259 and Constraints of member functions | No | 3 |
2695(i) | New | 16.4.6.5 [member.functions] | "As if" unclear in [member.functions] | No | 3 |
4129(i) | New | 16.4.6.10 [res.on.data.races] | Possibly incorrect wording for data race avoidance | Yes | 3 |
4145(i) | New | 16.4.6.10 [res.on.data.races] | Unclear how [res.on.data.races] apply to templated functions | No | 3 |
4252(i) | New | 16.4.6.13 [derivation] | Are exposition-only classes considered specified for the purpose of `final`? | Yes | 3 |
3854(i) | New | 16.4.6.14 [res.on.exception.handling] | §[res.on.exception.handling]/3 should not be applied to all standard library types | No | 3 |
3229(i) | New | 16.4.6.14 [res.on.exception.handling] | §[res.on.exception.handling]#3 cannot apply to types with implicitly declared destructors | Yes | 3 |

## Section 17 (30 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4411(i) | New | 17.3.2 [version.syn] | Even more feature-test macros for fully freestanding features are not marked freestanding | No | 2 |
3931(i) | New | 17.3.2 [version.syn] | Too many paper bump `__cpp_lib_ranges` | Yes | 3 |
4563(i) | LEWG | 17.3.4 [round.style] | Missing "round to nearest, ties away from zero" mode | Yes |  |
2730(i) | Open | 17.3.5 [numeric.limits] | `numeric_limits` primary template definition | No | 3 |
3922(i) | New | 17.3.5.1 [numeric.limits.general] | It's unclear whether `numeric_limits` can be specialized by users | Yes | 3 |
3923(i) | New | 17.3.5.1 [numeric.limits.general] | The specification of `numeric_limits` doesn't clearly distinguish between implementation requirements and user requirements | Yes | 3 |
4473(i) | New | 17.3.7 [cfloat.syn] | `<cfloat>` should be specified not to contain all macros in `<float.h>` | Yes | 3 |
3370(i) | New | 17.4.1 [cstdint.syn] | §[cstdint.syn]p2 and §[headers]p5 are not sufficiently clear | No | 3 |
3084(i) | New | 17.5 [support.start.term] | Termination in C++ is unclear | No | 3 |
2815(i) | New | 17.5 [support.start.term] | `quick_exit` can deadlock | Yes | 3 |
3086(i) | New | 17.6.3.2 [new.delete.single] | Possible problem in §[new.delete.single] | Yes | 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 |
4575(i) | SG1 | 17.6.3.5 [new.delete.dataraces] | No formal wording associates single total order of allocation/deallocation operations with the coherence rule | No | 4 |
2398(i) | Open | 17.7.3 [type.info] | `type_info`'s destructor shouldn't be required to be virtual | Yes | 3 |
4207(i) | New | 17.8.2.2 [support.srcloc.cons] | Point of reference for `source_location` is not specified when used in an default template argument | Yes | 3 |
4087(i) | SG16 | 17.9.3 [exception] | Standard exception messages have unspecified encoding | Yes | 3 |
2453(i) | New | 17.11 [support.initlist] | §[iterator.range] and now [iterator.container] aren't available via `<initializer_list>` | No | 3 |
2493(i) | New | 17.11 [support.initlist] | `initializer_list` supports incomplete classes | No | 4 |
4051(i) | New | 17.12.2 [cmp.categories] | A less hacky and more useful way to compare comparison category types | Yes | 3 |
3587(i) | New | 17.12.4 [cmp.concept] | `std::three_way_comparable_with<T, U, void>` can be satisfied but can't be modeled | No | 3 |
3932(i) | New | 17.12.6 [cmp.alg] | Expression-equivalence is sometimes unimplementable when passing prvalue expressions to comparison CPOs | No | 3 |
3491(i) | New | 17.12.6 [cmp.alg] | What is a "decayed type"? | No | 3 |
4542(i) | Tentatively NAD | 17.13.4.6 [coroutine.handle.resumption] | Resuming a coroutine on a different execution agent that is an instance of a `std::thread` is underspecified | Yes |  |
4508(i) | New | 17.14.2 [cstdarg.syn] | Meaning of "compatible" and C++ desire for C23 changes unclear for `va_arg` | No | 2 |
3945(i) | New | 17.14.2 [cstdarg.syn] | §[cstdarg.syn] 'Compatible types' are undefined | No | 3 |
4596(i) | New | 17.14.5 [support.signal] | Gratuitous UB via manifestly constant-evaluated contexts in signal handlers | No |  |
3954(i) | New | 17.15.1 [support.c.headers.general] | Feature-test macros in C headers (`<stddef.h>` etc.) | No | 3 |
3883(i) | New | 17.15.7 [support.c.headers.other] | §[support.c.headers.other] Ambiguity in the requirements for includes | Yes | 4 |
3799(i) | New | 17.15.7 [support.c.headers.other] | Should `<math.h>` provide 3-argument `::hypot` overloads? | No | 3 |

## Section 18 (6 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3895(i) | New | 18.3 [concepts.syn] | Various relation concepts are missing default values of the second template parameters | Yes | 3 |
3608(i) | New | 18.4.4 [concept.convertible] | `convertible_to` and temporary-bound references | No | 3 |
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 |
4503(i) | LEWG | 18.4.8 [concept.assignable] | Use of `std::common_reference_with` in `std::assignable_from` seems incorrect | Yes | 3 |
4165(i) | New | 18.4.9 [concept.swappable] | Should swapping a built-in array or `std::array` with itself result in UB? | No | 3 |
4041(i) | New | 18.4.9 [concept.swappable] | The requirements on literal type in [concept.swappable] should be removed | Yes | 4 |

## Section 19 (5 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3011(i) | Open | 19.3 [assertions] | Requirements for `assert(E)` inconsistent with C | No | 2 |
4156(i) | SG16 | 19.5.3.2 [syserr.errcat.virtuals] | `error_category` messages have unspecified encoding | Yes | 3 |
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 |
3507(i) | Open | 19.6.3.4 [stacktrace.entry.query] | P0881R7 ("stacktrace") does not define "actual file name", "actual line number" | No | 2 |
3626(i) | New | 19.6.4.1 [stacktrace.basic.overview] | Is `std::basic_stacktrace` required to use contiguous storage? | Yes | 3 |

## Section 20 (24 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4058(i) | LEWG | 20.2.4 [pointer.conversion] | `std::to_address()` should be SFINAE-friendly | Yes | 3 |
2421(i) | New | 20.2.5 [ptr.align] | Non-specification of handling zero size in `std::align` [ptr.align] | No | 3 |
4168(i) | New | 20.2.6 [obj.lifetime] | `std::start_lifetime_as` inadvertently has undefined behavior due to use of `std::bit_cast` | Yes | 3 |
4578(i) | Core | 20.2.6 [obj.lifetime] | `std::start_lifetime(r)` should not be able to poke objects outside the current evaluation | No |  |
3665(i) | New | 20.2.9.2 [allocator.traits.types] | Is `std::allocator_traits<Alloc>::rebind_alloc` SFINAE-friendly? | No | 3 |
3916(i) | New | 20.2.10 [default.allocator] | `allocator`, `polymorphic_allocator`, and containers should forbid cv-qualified types | No | 3 |
3917(i) | New | 20.2.10 [default.allocator] | Validity of `allocator<void>` and possibly `polymorphic_allocator<void>` should be clarified | Yes | 3 |
3684(i) | New | 20.2.10.2 [allocator.members] | `std::allocator<T>::allocate_at_least` in constant evaluation | Yes | 3 |
3159(i) | New | 20.3.1.3 [unique.ptr.single] | §[unique.ptr.single] requirements on deleter may be too strict | No | 3 |
2262(i) | Open | 20.3.1.3 [unique.ptr.single] | Requirement for `unique_ptr<T>::get_deleter()(p)` to be able to destroy the `unique_ptr` | Yes | 3 |
3911(i) | New | 20.3.1.3.5 [unique.ptr.single.observers] | `unique_ptr`'s `operator*` is missing a mandate | Yes | 3 |
2594(i) | New | 20.3.2.2 [util.smartptr.shared] | Contradicting definition of empty `shared_ptr` on `shared_ptr(nullptr, d)` | Yes | 3 |
4110(i) | New | 20.3.2.2.2 [util.smartptr.shared.const] | `shared_ptr(nullptr_t, Deleter)` is overconstrained, breaking some sensible deleters | Yes | 3 |
4032(i) | New | 20.3.2.2.2 [util.smartptr.shared.const] | Possibly invalid types in the constraints of constructors of `std::shared_ptr` | Yes | 4 |
2906(i) | New | 20.3.2.2.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.3.2.2.3 [util.smartptr.shared.dest] | `shared_ptr` deleter not specified to observe expired `weak_ptr` instances | No | 4 |
4322(i) | New | 20.4 [mem.composite.types] | Problematic Constraints on incomplete types in indirect and polymorphic | Yes | 2 |
4458(i) | New | 20.4.1.6 [indirect.obs] | `indirect<T>` should be convertible to `T&` | Yes |  |
4250(i) | LEWG | 20.4.1.7 [indirect.swap] | `swap` overloads for `indirect` and `polymorphic` only found by ADL | Yes | 2 |
3681(i) | New | 20.5.1 [mem.res.syn] | Further considerations on LWG 3679 (using `pmr::vector` without including `<memory_resource>`) | No | 4 |
3637(i) | New | 20.5.2 [mem.res.class] | `pmr::memory_resource::do_allocate` needs clarification | No | 3 |
4311(i) | New | 20.5.3.3 [mem.poly.allocator.mem] | Can `std::pmr::polymorphic_allocator::construct` just call `std::uninitialized_construct_using_allocator`? | Yes | 3 |
3634(i) | New | 20.5.4 [mem.res.global] | When are static-duration `memory_resource` objects destroyed? | No | 3 |
2848(i) | New | 20.5.5.2 [mem.res.pool.options] | Pass-through threshold for pool allocator | No | 3 |

## Section 21 (29 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
2290(i) | Open | 21 [meta] | Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 | Yes | 3 |
2452(i) | Core | 21 [meta] | `is_constructible`, etc. and default arguments | No | 3 |
2845(i) | New | 21.3.2 [meta.rqmts] | `enable_if`, `result_of`, `common_type` and `aligned_storage` do not meet the definition of `TransformationTrait` | No | 3 |
3099(i) | Open | 21.3.3 [meta.type.synop] | `is_assignable<Incomplete&, Incomplete&>` | Yes | 2 |
2939(i) | Open | 21.3.3 [meta.type.synop] | Some type-completeness constraints of traits are overspecified | Yes | 2 |
3967(i) | New | 21.3.5.4 [meta.unary.prop] | The specification for `std::is_nothrow_*` traits may be ambiguous in some cases involving `noexcept(false)` | Yes | 3 |
3929(i) | New | 21.3.5.4 [meta.unary.prop] | Preconditions for type traits should be Mandates | Yes | 3 |
2827(i) | New | 21.3.5.4 [meta.unary.prop] | `is_trivially_constructible` and non-trivial destructors | No | 3 |
3697(i) | New | 21.3.5.4 [meta.unary.prop] | Preconditions of `reference_constructs_from_temporary/reference_converts_from_temporary` seem wrong | Yes | 3 |
2496(i) | New | 21.3.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 | 21.3.5.4 [meta.unary.prop] | `is_nothrow_constructible` and destructors | No | 3 |
2358(i) | Open | 21.3.5.4 [meta.unary.prop] | Apparently-bogus definition of `is_empty` type trait | Yes | 3 |
2077(i) | Open | 21.3.5.4 [meta.unary.prop] | Further incomplete constraints for type traits | No | 3 |
3486(i) | LEWG | 21.3.5.4 [meta.unary.prop] | `is_constructible<T[], T...>` may be misleading in C++20 | No | 4 |
4028(i) | New | 21.3.7 [meta.rel] | `std::is_(nothrow_)convertible` should be reworded to avoid dependence on the `return` statement | Yes | 2 |
3400(i) | New | 21.3.7 [meta.rel] | Does `is_nothrow_convertible` consider destruction of the destination type? | No | 3 |
3174(i) | New | 21.3.7 [meta.rel] | Precondition on `is_convertible` is too strong | Yes | 3 |
3205(i) | New | 21.3.8.7 [meta.trans.other] | `decay_t` in the new `common_type` fallback should be `remove_cvref_t` | Yes | 3 |
4138(i) | New | 21.3.11 [meta.const.eval] | `is_within_lifetime` should mandate `is_object` | Yes | 3 |
4494(i) | Tentatively NAD | 21.4.4 [meta.reflection.exception] | Add `consteval` to `std::meta::exception` defaulted member functions | Yes |  |
4564(i) | New | 21.4.7 [meta.reflection.queries] | Clarify when `constant_of` throws | Yes | 2 |
4580(i) | New | 21.4.7 [meta.reflection.queries] | `is_enumerable_type`: Definition of "enumerable type" looks strange | Yes |  |
4581(i) | New | 21.4.7 [meta.reflection.queries] | `constant_of(^^v)` for variable `v` of reference to array/function type produces reflection of pointer constant | No |  |
4591(i) | New | 21.4.8 [meta.reflection.scope] | `std::meta::current_function` should probably work in a local class | No |  |
4585(i) | New | 21.4.12 [meta.reflection.layout] | Applying `std::meta::alignment_of` to a not-yet-defined variable | No |  |
4538(i) | New | 21.4.12 [meta.reflection.layout] | `member_offset::total_bits` should be `noexcept` | Yes | 3 |
4298(i) | New | 21.4.14 [meta.reflection.extract] | §[meta.reflection.extract] Malformed "`F noexcept`" type | Yes | 3 |
4576(i) | New | 21.4.15 [meta.reflection.substitute] | `{can_}substitute` specification is (still) ill-formed | Yes | 2 |
4594(i) | New | 21.4.17 [meta.reflection.define.aggregate] | `data_member_spec` should throw on anonymous union types | Yes |  |

## Section 22 (48 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
2153(i) | LEWG | 22.2.2 [utility.swap] | Narrowing of the non-member `swap` contract | No | 2 |
3902(i) | New | 22.2.6 [declval] | Return type of `std::declval<cv void>` should be (cv-unqualified) `void` | Yes | 4 |
2599(i) | New | 22.2.6 [declval] | Library incomplete type permission phrase is unclear | No | 3 |
4574(i) | New | 22.2.10 [const.wrap.class] | `constant_wrapper<nullptr, int()>` bypasses `function_ref` class invariant | No | 2 |
3342(i) | New | 22.3.2 [pairs.pair] | Library wording uses "initializes `x` with `y`", which is underspecified | No | 3 |
2289(i) | Open | 22.3.2 [pairs.pair] | `constexpr` guarantees of defaulted functions still insufficient | No | 3 |
2766(i) | New | 22.3.3 [pairs.spec] | Swapping non-swappable types | Yes | 3 |
3166(i) | New | 22.3.4 [pair.astuple] | No such descriptive element as Value: | No | 3 |
3378(i) | New | 22.4.2 [tuple.syn] | `tuple_size_v/tuple_element_t` should be available when `tuple_size/tuple_element` are | Yes | 3 |
4479(i) | New | 22.4.4.1 [tuple.tuple.general] | Missing restrictions on which types can be `tuple` elements | No | 3 |
4313(i) | New | 22.4.4.2 [tuple.cnstr] | Uses-allocator construction of `pair` in `tuple`'s `allocator_arg_t` constructors | Yes | 3 |
3583(i) | New | 22.4.4.2 [tuple.cnstr] | Clarify if/when short circuiting applies to conditions in Constraints: elements | No | 3 |
2528(i) | New | 22.4.4.2 [tuple.cnstr] | Order of `std::tuple` construction unspecified | No | 3 |
4040(i) | New | 22.4.7 [tuple.helper] | Contradictory specification of `std::tuple_size` | No | 3 |
3882(i) | New | 22.4.9 [tuple.rel] | `tuple` relational operators have confused friendships | Yes | 3 |
3728(i) | New | 22.4.9 [tuple.rel] | Can't make neither head nor tail of the description of `operator<=>(tuple, tuple)` | Yes | 4 |
2990(i) | Open | 22.5.3 [optional.optional] | `optional::value_type` is not always a value type | Yes | 3 |
3424(i) | New | 22.5.3.7 [optional.observe] | `optional::value_or` should never return a cv-qualified type | Yes | 3 |
4281(i) | New | 22.5.3.7 [optional.observe] | Inconsistency between `value_or()` and `error_or()` in `std::expected` | No | 3 |
2829(i) | Open | 22.5.3.7 [optional.observe] | LWG 2740 leaves behind vacuous words | No | 2 |
4509(i) | LEWG | 22.5.3.8 [optional.monadic] | `std::optional<T>::transform` cannot be implemented while supporting program-defined specializations | Yes | 3 |
4505(i) | New | 22.5.10 [optional.specalg] | The `std::make_optional` overload taking `std::initializer_list` should not accept a reference type as its template argument | Yes | 4 |
2881(i) | New | 22.6.3 [variant.variant] | Adopt section III of P0308R0 | No | 3 |
3215(i) | New | 22.6.3.2 [variant.ctor] | `variant` default constructor has vague `constexpr` requirements | No | 2 |
2833(i) | Open | 22.6.3.2 [variant.ctor] | Library needs to specify what it means when it declares a function `constexpr` | Yes | 2 |
3991(i) | New | 22.6.3.4 [variant.assign] | `variant`'s move assignment should not be guaranteed to produce a valueless by exception state | Yes | 3 |
3069(i) | New | 22.6.3.4 [variant.assign] | Move assigning `variant`'s subobject corrupts data | Yes | 3 |
4197(i) | New | 22.6.7 [variant.visit] | Complexity of `std::visit` with immediate functions | Yes | 2 |
3416(i) | New | 22.7.4 [any.class] | The Throws: specification of `std::any` does not mention allocation | No | 3 |
3423(i) | New | 22.7.5 [any.nonmembers] | `std::any_cast` should never return a cv-qualified type | Yes | 3 |
3688(i) | New | 22.8.4 [expected.bad] | Exception specifications of copy/move member functions of `std::bad_expected_access` | No | 2 |
2348(i) | Open | 22.9.2 [template.bitset] | `charT('1')` is not the wide equivalent of `'1'` | Yes | 3 |
3805(i) | New | 22.10 [function.objects] | Expression evaluating to a call wrapper is a prvalue, not an object | No | 4 |
4268(i) | New | 22.10.4 [func.require] | `function<void()>` suppresses `nodiscard` warnings | No | 3 |
4319(i) | New | 22.10.4 [func.require] | Supporting copy-elision in function wrappers | Yes | 3 |
4007(i) | New | 22.10.4 [func.require] | Mystic prohibition of calling a `volatile`-qualified perfect forwarding call wrapper | Yes | 3 |
3046(i) | New | 22.10.6 [refwrap] | Do not require `reference_wrapper` to support non-referenceable function types | Yes | 3 |
2491(i) | New | 22.10.8 [comparisons] | `std::less<T*>` in constant expression | Yes | 3 |
2547(i) | New | 22.10.8 [comparisons] | Container requirements (and other library text) should say "strict total order", not just "total order" | No | 3 |
3493(i) | New | 22.10.17.3.2 [func.wrap.func.con] | The constructor of `std::function` taking an `F` is missing a constraint | Yes | 3 |
3680(i) | New | 22.10.17.4.3 [func.wrap.move.ctor] | Constructor of `move_only_function` with empty `ref`-qualifier is over-constrained | Yes | 2 |
3642(i) | New | 22.10.17.4.3 [func.wrap.move.ctor] | `move_only_function` assignment operators seem to be defined suboptimal | Yes | 3 |
4373(i) | New | 22.10.17.6.2 [func.wrap.ref.class] | `function_ref` should provide `result_type` | Yes | 3 |
4127(i) | New | 22.10.18.3 [func.search.bm] | The Standard Library should not use predicates of the form `pred(*i) != false` | Yes | 3 |
4365(i) | LEWG | 22.10.18.3 [func.search.bm] | `boyer_moore_searcher` and `boyer_moore_horspool_searcher` should be `constexpr`-friendly | Yes | 4 |
3512(i) | New | 22.10.19 [unord.hash] | Incorrect exception safety guarantee for unordered containers | No | 3 |
4539(i) | New | 22.11.3 [bit.cast] | Undefined behavior in `std::bit_cast` should be diagnosed during constant evaluation | Yes | 3 |
3968(i) | New | 22.11.8 [bit.endian] | `std::endian::native` value should be more specific about object representations | Yes | 4 |

## Section 23 (60 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4173(i) | New | 23 [containers] | Better term for "references, pointers and iterators to elements" | No | 4 |
4176(i) | New | 23 [containers] | Refer back to container requirements when extending them | No | 4 |
2307(i) | LEWG | 23 [containers] | Should the Standard Library use `explicit` only when necessary? | No | 2 |
3059(i) | New | 23.2 [container.requirements] | Wrong requirements for map-like associative container assignment? | No | 3 |
2269(i) | New | 23.2.2 [container.requirements.general] | Container iterators and argument-dependent lookup | No | 4 |
2321(i) | Open | 23.2.2 [container.requirements.general] | Moving containers should (usually) be required to preserve iterators | Yes | 3 |
1521(i) | Open | 23.2.2 [container.requirements.general] | Requirements on internal pointer representations in containers | Yes | 3 |
3976(i) | New | 23.2.2.5 [container.alloc.reqmts] | What does it mean for a type to be "allocator aware"? | No | 4 |
3297(i) | New | 23.2.4 [sequence.reqmts] | Useless sequence container requirement | Yes | 3 |
2705(i) | New | 23.2.4 [sequence.reqmts] | Questionable precondition on Sequence containers `a.assign(n, t)` | Yes | 3 |
2206(i) | Open | 23.2.4 [sequence.reqmts] | Inaccuracy in `initializer_list` constructor requirements | Yes | 3 |
4159(i) | New | 23.2.5 [container.node] | Uses-allocator construction mechanisms should be opted out for node handles | Yes | 3 |
3438(i) | New | 23.2.5.1 [container.node.overview] | §[container.node.overview] missing `multiset`/`map` cases | No | 3 |
3227(i) | New | 23.2.7 [associative.reqmts] | Ambiguity issue for `extract` in ordered and unordered associative containers | Yes | 3 |
2362(i) | New | 23.2.7 [associative.reqmts] | unique, associative `emplace()` should not move/copy the `mapped_type` constructor arguments when no insertion happens | No | 3 |
2844(i) | Open | 23.2.7 [associative.reqmts] | Stability of `a_uniq.insert(i, j)` | No | 3 |
2227(i) | Open | 23.2.7 [associative.reqmts] | Stateful comparison objects in associative containers | No | 3 |
2215(i) | Open | 23.2.7 [associative.reqmts] | (unordered) associative container functors should be `CopyConstructible` | Yes | 3 |
4132(i) | New | 23.2.7.1 [associative.reqmts.general] | Throws specifications need to include `boolean-testable` operations | Yes | 3 |
3577(i) | New | 23.2.7.1 [associative.reqmts.general] | Merging an (unordered) associative container with itself | No | 3 |
3691(i) | New | 23.2.7.1 [associative.reqmts.general] | Replacement of keys in associative containers | Yes | 3 |
4572(i) | LEWG | 23.2.7.1 [associative.reqmts.general] | Key ordering requirements of associative containers are poorly specified | Yes | 2 |
4046(i) | New | 23.2.7.2 [associative.reqmts.except] | Effects of inserting into or erasing from flat container adaptors when an exception is thrown need to be more permissive | No | 2 |
1175(i) | Open | 23.2.8 [unord.req] | `unordered` complexity | Yes | 3 |
2198(i) | Open | 23.2.8 [unord.req] | `max_load_factor(z)` makes no strong guarantees, but bans useful behavior | Yes | 3 |
2189(i) | Open | 23.2.8.2 [unord.req.except] | Throwing `swap` breaks unordered containers' state | No | 3 |
617(i) | Open | 23.3.3 [array] | `std::array` is a sequence that doesn't satisfy the sequence requirements? | No | 3 |
3219(i) | New | 23.3.3.1 [array.overview] | `std::array` overview container requirements are incorrect | Yes | 3 |
2823(i) | Open | 23.3.3.1 [array.overview] | `std::array` initialization is still not permissive enough | Yes | 3 |
3488(i) | Open | 23.3.3.4 [array.special] | Is `array<const int, 0>` swappable or not? | Yes | 3 |
2157(i) | Open | 23.3.3.5 [array.zero] | How does `std::array<T,0>` initialization work when `T` is not default-constructible? | Yes | 3 |
4225(i) | New | 23.3.5.3 [deque.capacity] | What should happen when an exception is thrown on resizing `std::deque`, `std::forward_list`, or `std::list`? | Yes | 3 |
4123(i) | New | 23.3.5.4 [deque.modifiers] | Container effects use "the assignment operator or move assignment operator" | Yes | 3 |
3308(i) | New | 23.3.5.4 [deque.modifiers] | `vector` and `deque` iterator `erase` invalidates elements even when no change occurs | Yes | 3 |
4320(i) | New | 23.3.9 [hive] | `hive` operations involving insertion/erasure should have `𝒪(log n)` time complexity | Yes | 3 |
4380(i) | New | 23.3.9.3 [hive.capacity] | `hive::reserve()` complexity does not reflect potential deallocation of blocks | Yes | 3 |
4584(i) | New | 23.3.9.5 [hive.operations] | `std::hive::sort` should add Cpp17MoveConstructible to its preconditions on `T` | Yes |  |
4323(i) | New | 23.3.9.5 [hive.operations] | `hive::unique` time complexity should incorporate potential block removal complexity | Yes | 3 |
3758(i) | New | 23.3.13.3 [vector.capacity] | Element-relocating operations of `std::vector` and `std::deque` should conditionally require Cpp17CopyInsertable in their preconditions | No | 3 |
2158(i) | Open | 23.3.13.3 [vector.capacity] | Conditional copy/move in `std::vector` | Yes | 3 |
1102(i) | Open | 23.3.13.3 [vector.capacity] | `std::vector`'s reallocation policy still unclear | Yes | 3 |
1422(i) | Open | 23.3.14 [vector.bool] | `vector<bool>` iterators are not random access | No | 3 |
3531(i) | New | 23.4.3.1 [map.overview] | LWG 3025 broke previous valid code | Yes | 3 |
3189(i) | New | 23.6.4 [priority.queue] | Missing requirement for `std::priority_queue` | No | 3 |
3959(i) | New | 23.6.8 [flat.map] | Should the comparator of `std::flat_map`/`std::flat_multimap` be copied twice in some operations? | No | 3 |
3802(i) | New | 23.6.8 [flat.map] | `flat_foo` allocator-extended constructors lack move semantics | No | 2 |
3804(i) | New | 23.6.8 [flat.map] | `flat_foo` missing some allocator-extended deduction guides | No | 2 |
4350(i) | LEWG | 23.6.8 [flat.map] | Should flat adaptors use `insert_range` when available? | No | 2 |
3966(i) | New | 23.6.8.1 [flat.map.overview] | The `value_type` and `reference` members of `std::flat_(multi)map::(const_)iterator` are unclear | No | 3 |
3963(i) | New | 23.6.8.2 [flat.map.defn] | Different `std::flat_map`/`std::flat_multimap` specializations should be able to share same nested classes | Yes | 3 |
4374(i) | New | 23.6.8.7 [flat.map.modifiers] | `flat_meow` range insertion behavior is unclear if in-place merge cannot allocate additional memory | No | 3 |
4352(i) | New | 23.6.9.1 [flat.multimap.overview] | "operations on flat_multimap are equivalent to those of flat_map" | No | 3 |
4048(i) | New | 23.6.11 [flat.set] | Inconsistent preconditions for transparent insertion of `std::flat_map/std::flat_set` | Yes | 2 |
4180(i) | New | 23.6.12.5 [flat.multiset.modifiers] | Inconsistent constraints on `flat_foo::emplace` | Yes | 3 |
3813(i) | New | 23.7.2.2.1 [span.overview] | `std::span<volatile T, E>` is made ill-formed by P2278R4 when `T` is a normal class type | Yes | 2 |
3995(i) | New | 23.7.3 [views.multidim] | Issue with custom index conversion in `<mdspan>` | No | 3 |
4545(i) | New | 23.7.3.4.8.3 [mdspan.layout.leftpad.cons] | Some converting constructors of `layout_left_padded::mapping` and `layout_right_padded::mapping` are missing a representability precondition for the padded stride | Yes | 3 |
4569(i) | New | 23.7.3.6.1 [mdspan.mdspan.overview] | `mdspan` should Mandates the relationship between `element_type` and `reference` | Yes | 4 |
4021(i) | New | 23.7.3.6.1 [mdspan.mdspan.overview] | `mdspan::is_always_meow()` should be `noexcept` | Yes | 3 |
4405(i) | New | 23.7.3.6.2 [mdspan.mdspan.cons] | `mdspan` constructor should disallow derived to base conversions | Yes | 3 |

## Section 24 (35 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
1213(i) | Open | 24.3 [iterator.requirements] | Meaning of valid and singular iterator underspecified | No | 4 |
4080(i) | New | 24.3.2 [iterator.assoc.types] | Presumed value and difference types of an iterator type in ranges and non-ranges algorithms | No | 3 |
3838(i) | New | 24.3.2.1 [incrementable.traits] | The last specialization of `incrementable_traits` is under-constrained | Yes | 3 |
3287(i) | New | 24.3.2.3 [iterator.traits] | Exposition-only `cpp17-input-iterator` concept is needlessly complex | Yes | 3 |
4546(i) | New | 24.3.4.4 [iterator.concept.winc] | Integer-class type should be structural type | Yes | 3 |
3890(i) | New | 24.3.4.4 [iterator.concept.winc] | ABI issue for integer-class types | Yes | 3 |
3716(i) | New | 24.3.4.11 [iterator.concept.forward] | §[iterator.concept.forward][forward.iterators] Two different definitions of multi-pass guarantee | No | 3 |
2962(i) | Open | 24.3.5.3 [input.iterators] | Iterators of Containers of move-only types do not model `InputIterator` | Yes | 2 |
484(i) | Open | 24.3.5.3 [input.iterators] | Convertible to `T` | No | 3 |
2035(i) | Open | 24.3.5.4 [output.iterators] | Output iterator requirements are broken | Yes | 3 |
2038(i) | Open | 24.3.5.4 [output.iterators] | Missing definition for `incrementable` iterator | No | 3 |
4270(i) | New | 24.3.6.4 [projected] | Diagnose misuse of `std::projected::operator*` | Yes | 3 |
3439(i) | New | 24.4.3 [iterator.operations] | "`Distance`" template parameter is underspecified | No | 3 |
3197(i) | New | 24.4.3 [iterator.operations] | `std::prev` should not require `BidirectionalIterator` | Yes | 3 |
3344(i) | New | 24.4.3 [iterator.operations] | `advance(i, most-negative)` and `prev(i, most-negative)` | Yes | 3 |
2931(i) | Open | 24.4.3 [iterator.operations] | Missed optimization opportunity with single-argument `std::next` | No | 3 |
4303(i) | New | 24.4.4.3 [range.iter.op.distance] | `std::decay_t` in the specification of `ranges::distance` is problematic | Yes | 4 |
3623(i) | New | 24.5.1.1 [reverse.iterators.general] | Uses of `std::reverse_iterator` with containers should not require manually including `<iterator>` | Yes | 3 |
3602(i) | New | 24.5.1.4 [reverse.iter.cons] | `reverse_iterator`'s converting assignment is overconstrained | Yes | 3 |
3725(i) | New | 24.5.1.6 [reverse.iter.elem] | `reverse_iterator::operator->` should not use `prev` for non-pointer iterators | Yes | 3 |
4104(i) | New | 24.5.3 [const.iterators] | `basic_const_iterator<volatile int*>` is not a `contiguous_iterator` | No | 4 |
3986(i) | New | 24.5.3 [const.iterators] | `basic_const_iterator` doesn't work with `optional` | No | 3 |
3988(i) | Open | 24.5.3 [const.iterators] | Should `as_const_view` and `basic_const_iterator` provide `base()`? | Yes | 3 |
3863(i) | New | 24.5.3.2 [const.iterators.alias] | Is `input_iterator` guaranteed to have `iter_const_reference_t`? | No | 2 |
4237(i) | New | 24.5.3.3 [const.iterators.iterator] | The standard library iterator adaptor does not handle `iterator_category` correctly | No | 3 |
4120(i) | New | 24.5.4.2 [move.iterator] | `move_iterator` should provide `iterator_category` only when it models `forward_iterator` | Yes | 3 |
4115(i) | New | 24.5.4.6 [move.iter.elem] | `move_iterator::operator*` should have conditional `noexcept` specification | Yes | 4 |
4092(i) | New | 24.5.5.1 [common.iterator] | The monotonic version of `common_iterator::operator==` is underconstrained | Yes | 3 |
3783(i) | New | 24.5.5.1 [common.iterator] | `views::common` may not be a range adaptor object | Yes | 3 |
3748(i) | New | 24.5.5.6 [common.iter.cmp] | `common_iterator` and `counted_iterator`' `operator-` are missing cast to return type | Yes | 3 |
2366(i) | New | 24.6.4 [istreambuf.iterator] | `istreambuf_iterator` end-of-stream equality | Yes | 3 |
3107(i) | New | 24.6.4 [istreambuf.iterator] | `istreambuf_iterator` has public exposition-only member | Yes | 4 |
3188(i) | New | 24.6.4 [istreambuf.iterator] | `istreambuf_iterator::pointer` should not be unspecified | Yes | 3 |
3108(i) | New | 24.6.4.2 [istreambuf.iterator.proxy] | `istreambuf_iterator::proxy::operator*` should be `const` | Yes | 3 |
4181(i) | New | 24.7 [iterator.range] | Some ranges have negative `ssize` | No | 3 |

## Section 25 (60 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4307(i) | New | 25.2 [ranges.syn] | Make good use of `sized-random-access-range` and `bidirectional-common` in `<ranges>` | Yes | 4 |
3729(i) | New | 25.2 [ranges.syn] | `std::tuple_element_t<std::ranges::subrange<I, S, K>>` should remove top-level cv-qualifiers | Yes | 4 |
4062(i) | New | 25.3.13 [range.prim.empty] | `ranges::empty` has no semantic requirements for `forward_range`s | No | 3 |
4389(i) | SG9 | 25.4.2 [range.range] | `ranges::for_each` possibly behaves differently from range-based `for` | Yes | 2 |
3896(i) | New | 25.4.6 [range.refinements] | The definition of `viewable_range` is not quite right | Yes | 4 |
4573(i) | New | 25.5.3 [view.interface] | Improve `view_interface::cbegin` | Yes | 3 |
4565(i) | New | 25.5.4.1 [range.subrange.general] | `subrange` should prevent slicing for contiguous iterators | Yes | 3 |
4183(i) | New | 25.5.4.1 [range.subrange.general] | `subrange` should provide `data()` | Yes | 4 |
4010(i) | New | 25.5.4.3 [range.subrange.access] | `subrange::advance` should be improved | Yes | 3 |
4066(i) | New | 25.5.7.2 [range.utility.conv.to] | `ranges::to` should reserve when `sized_sentinel_for` is satisfied | Yes | 4 |
4008(i) | New | 25.5.7.2 [range.utility.conv.to] | §[range.utility.conv.to] `ranges::to` may cause infinite recursion if `range_value_t<C>` is a non-move-constructible range | Yes | 3 |
4018(i) | New | 25.5.7.2 [range.utility.conv.to] | `ranges::to`'s copy branch is underconstrained | Yes | 3 |
3985(i) | New | 25.5.7.2 [range.utility.conv.to] | `ranges::to` should Mandates `C` not to be view | Yes | 3 |
3983(i) | New | 25.5.7.3 [range.utility.conv.adaptors] | `ranges::to` adaptors are underconstrained | Yes | 3 |
3907(i) | New | 25.6 [range.factories] | Can iterator types of range adaptors and range factories be SCARY? | No | 3 |
4417(i) | Tentatively NAD | 25.6.4.1 [range.iota.overview] | `views::indices` is underconstrained | Yes |  |
3614(i) | New | 25.6.4.2 [range.iota.view] | `iota_view::size` and the most negative signed integer values | Yes | 3 |
4002(i) | New | 25.6.4.3 [range.iota.iterator] | The definition of `iota_view::iterator::iterator_concept` should be improved | Yes | 3 |
3846(i) | New | 25.6.4.3 [range.iota.iterator] | `iota_view::iterator::operator-` is overconstrained | Yes | 3 |
3609(i) | New | 25.6.4.4 [range.iota.sentinel] | `std::ranges::iota_view<int, long>` has non-subtractable `iterator` and `sentinel` types | Yes | 3 |
3955(i) | New | 25.6.5.2 [range.repeat.view] | Add `noexcept` to several `repeat_view[::iterator]` member functions | Yes | 3 |
3763(i) | New | 25.6.5.3 [range.repeat.iterator] | Should range adaptor iterators only provide `iterator_category` when its `difference_type` is not an integer-class type? | Yes | 3 |
3679(i) | LEWG | 25.6.6 [range.istream] | Is `<ranges>` sufficient for `istream_view`? | No | 3 |
3489(i) | New | 25.6.6.3 [range.istream.iterator] | Improve `istream_view` wording | Yes | 3 |
3994(i) | New | 25.7.2 [range.adaptor.object] | `adaptor(args...)(r)` is not equivalent to `std::bind_back(adaptor, args...)(r)` | No | 4 |
4099(i) | New | 25.7.7.1 [range.as.rvalue.overview] | The simple case of `views::as_rvalue` and `views::common` are not strictly correct | Yes | 4 |
3829(i) | New | 25.7.7.2 [range.as.rvalue.view] | `as_rvalue_view::end` should improve non-common case | Yes | 3 |
4214(i) | New | 25.7.10.1 [range.take.overview] | Missing Preconditions for `take`/`drop` adaptor | Yes | 3 |
3730(i) | New | 25.7.12.2 [range.drop.view] | `std::ranges::drop_view` may have different size type from its underlying view | Yes | 3 |
4558(i) | LEWG | 25.7.12.2 [range.drop.view] | `drop_view` and `drop_while_view` should be `const`-iterable for input-only range | Yes |  |
3666(i) | New | 25.7.14 [range.join] | `join_view`'s difference type is too small | No | 2 |
4401(i) | LEWG | 25.7.14.2 [range.join.view] | `join_view` should be `sized_range` when applied to ranges of `simd::vec` | Yes | 3 |
3873(i) | New | 25.7.15.2 [range.join.with.view] | `join_with_view`'s `const begin` is underconstrained | No | 3 |
4059(i) | New | 25.7.15.3 [range.join.with.iterator] | Leaky abstraction in `join_with_view`'s iterator | Yes | 3 |
3852(i) | New | 25.7.15.3 [range.join.with.iterator] | `join_with_view::iterator`'s `iter_move` and `iter_swap` should be conditionally `noexcept` | Yes | 3 |
3972(i) | New | 25.7.15.3 [range.join.with.iterator] | Issues with `join_with_view::iterator`'s `iter_swap` | No | 2 |
3855(i) | New | 25.7.16.2 [range.lazy.split.view] | `tiny-range` is not quite right | Yes | 4 |
3685(i) | New | 25.7.16.2 [range.lazy.split.view] | In `lazy_split_view`, CTAD doesn't work when given an `input_range` input and a `tiny-range` pattern | Yes | 3 |
4108(i) | SG9 | 25.7.16.2 [range.lazy.split.view] | `lazy_split_view` should be `sized_range` when pattern is empty `tiny-range` | Yes | 4 |
4017(i) | New | 25.7.17.3 [range.split.iterator] | Behavior of `std::views::split` on an empty range | Yes | 3 |
4073(i) | New | 25.7.18.2 [range.concat.view] | `concat_view::size` may overflow | No | 4 |
4091(i) | New | 25.7.18.2 [range.concat.view] | `concat_view` rejects non-movable references | Yes | 4 |
4489(i) | New | 25.7.18.3 [range.concat.iterator] | `concat_view::iterator`'s `iter_swap` has tautologically `false noexcept` specification | No | 3 |
4081(i) | New | 25.7.18.3 [range.concat.iterator] | `concat_view::iterator::operator-` is overconstrained | Yes | 3 |
4089(i) | New | 25.7.18.3 [range.concat.iterator] | `concat_view::iterator`'s `iter_swap` is overconstrained | Yes | 3 |
4019(i) | SG9 | 25.7.21 [range.reverse] | Reversing an infinite range leads to an infinite loop | No | 3 |
4097(i) | LEWG | 25.7.21.1 [range.reverse.overview] | `views::reverse` should be specialized for some view types | Yes | 3 |
4561(i) | New | 25.7.21.2 [range.reverse.view] | `reverse_view` does not consider `simple-view` | Yes | 3 |
3830(i) | New | 25.7.21.2 [range.reverse.view] | `reverse_view` should not cache when `ranges::next` has constant time complexity | Yes | 3 |
4114(i) | New | 25.7.23.3 [range.elements.iterator] | `elements_view::iterator::operator*` missing conditional `noexcept` specification | Yes | 3 |
3832(i) | New | 25.7.23.3 [range.elements.iterator] | Missing change for `element_view::iterator` in LWG 3798 | Yes | 3 |
4116(i) | New | 25.7.24.3 [range.enumerate.iterator] | `enumerate_view::iterator` and `cartesian_product_view::iterator` should not always provide `iterator_category` | Yes | 3 |
3864(i) | New | 25.7.25 [range.zip] | `zip` over range of reference to an abstract type | No | 4 |
4559(i) | New | 25.7.25.2 [range.zip.view] | `zip_view`, `zip_transform_view`, and `cartesian_product_view` should provide `reserve_hint` | Yes | 3 |
3731(i) | New | 25.7.25.2 [range.zip.view] | `zip_view` and `adjacent_view` are underconstrained | Yes | 3 |
4254(i) | New | 25.7.32.3 [range.stride.iterator] | `stride_view::iterator` should provide `operator->` | Yes | 3 |
4210(i) | New | 25.7.34.3 [range.cache.latest.iterator] | Issue with `cache_latest_view::iterator`'s reference type | No | 3 |
4418(i) | New | 25.8.5 [coro.generator.promise] | `co_yield elements_of(vector<int>())` does not compile | Yes | 2 |
4057(i) | New | 25.8.6 [coro.generator.iterator] | `generator::iterator`'s `operator*` is not `noexcept` when it can be | Yes | 3 |
4117(i) | New | 25.8.6 [coro.generator.iterator] | `generator::iterator` should provide `iterator_concept` | Yes | 4 |

## Section 26 (34 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4516(i) | New | 26 [algorithms] | `ranges` namespace is used inconsistently in [algorithms] | No | 4 |
2963(i) | New | 26 [algorithms] | Algorithms with underspecified iterator requirements | No | 3 |
1238(i) | Open | 26 [algorithms] | Defining algorithms taking iterator for range | No | 3 |
2173(i) | Open | 26 [algorithms] | The meaning of `operator +` in the description of the algorithms | Yes | 4 |
4277(i) | New | 26.2 [algorithms.requirements] | §[algorithms.requirements] It is unclear what an algorithm is | Yes | 4 |
3049(i) | Open | 26.2 [algorithms.requirements] | Missing wording allowing algorithms to use copies of function objects as substitutes for their parameters | Yes | 3 |
4273(i) | New | 26.3.6 [execpol] | Standard execution policy types should be conventional tag class types | Yes | 3 |
3793(i) | New | 26.6.5 [alg.foreach] | Requirements for some algorithms' `Size` template parameters are unclear | No | 3 |
4241(i) | LEWG | 26.6.5 [alg.foreach] | `ranges::for_each(_n)` should be less constrained | Yes | 3 |
4093(i) | New | 26.6.18 [alg.fold] | `ranges::fold_left_first_with_iter` incorrectly constructs `optional<U>` | Yes | 3 |
4094(i) | New | 26.6.18 [alg.fold] | `ranges::fold_meow` is overconstrained | Yes | 3 |
3969(i) | New | 26.6.18 [alg.fold] | `std::ranges::fold_left_first_with_iter` should be more ADL-proof | Yes | 3 |
4262(i) | New | 26.7.1 [alg.copy] | `copy_if`, `remove_copy`, `remove_copy_if`, `unique_copy` have too strong preconditions | Yes | 3 |
3089(i) | New | 26.7.1 [alg.copy] | `copy_n` should require non-overlapping ranges | Yes | 3 |
2471(i) | Open | 26.7.1 [alg.copy] | `copy_n`'s number of `InputIterator` increments unspecified | No | 3 |
3868(i) | LEWG | 26.7.5 [alg.replace] | Constrained algorithms should not require `output_iterator` | Yes | 4 |
4103(i) | New | 26.7.9 [alg.unique] | `ranges::unique_copy`'s constraints for the case where `result` is an `input_iterator` are not quite right | Yes | 3 |
2267(i) | New | 26.8.2.4 [partial.sort.copy] | `partial_sort_copy` underspecified for ranges of two different types | No | 3 |
4162(i) | New | 26.8.3 [alg.nth.element] | Worst time complexity of non-parallel versions of `nth_element` is underspecified | Yes | 3 |
4111(i) | New | 26.8.4 [alg.binary.search] | LWG 270 and ranges version of binary search algorithms | No | 3 |
2973(i) | LEWG | 26.8.6 [alg.merge] | `inplace_merge` exact comparison count complexity prohibits useful real-world optimizations | Yes | 4 |
3534(i) | LEWG | 26.8.7.4 [set.intersection] | `ranges::set_intersection` and `ranges::set_difference` algorithm requirements are too strict | Yes | 3 |
3029(i) | Open | 26.8.8.3 [pop.heap] | `pop_heap` over-constrains input | Yes | 3 |
4167(i) | New | 26.8.9 [alg.min.max] | Use of "smaller" and "larger" in `min`, `max`, and `minmax` is unclear | Yes | 3 |
4034(i) | New | 26.8.9 [alg.min.max] | Clarify specification of `std::min` and `std::max` | Yes | 4 |
3487(i) | New | 26.10 [numeric.ops] | Missing precondition on input and output aliasing of [numeric.ops] | No | 3 |
3060(i) | New | 26.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 | 26.10.11 [transform.inclusive.scan] | Incorrect requirements for `transform_inclusive_scan` without initial value | Yes | 3 |
4593(i) | New | 26.10.17.2 [numeric.sat.cast] | The first template argument of `std::saturating_cast` must be specifiable | Yes |  |
3628(i) | New | 26.11 [specialized.algorithms] | "Effects: Equivalent to:" and uninitialized memory algorithms | No | 3 |
3063(i) | New | 26.11 [specialized.algorithms] | Parallel algorithms in `<memory>` are underspecified | No | 3 |
3888(i) | New | 26.11.8 [specialized.construct] | Most ranges uninitialized memory algorithms are underconstrained | Yes | 3 |
3889(i) | New | 26.11.9 [specialized.destroy] | `std::(ranges::)destroy_at` should destroy array elements in the decreasing index order | Yes | 3 |
4077(i) | New | 26.12.2 [alg.rand.generate] | Unclear preconditions of `std::ranges::generate_random` | No | 2 |

## Section 27 (19 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
2513(i) | New | 27.1 [strings.general] | Missing requirements for `basic_string::value_type` | No | 4 |
4152(i) | New | 27.2.2 [char.traits.require] | The primary template of `std::char_traits` is totally underspecified | Yes | 4 |
3694(i) | New | 27.2.2 [char.traits.require] | Should `traits_type::length` be customizable? | No | 4 |
3942(i) | New | 27.2.4 [char.traits.specializations] | Inconsistent use of `const char_type&` in standard specializations of `std::char_traits` | Yes | 3 |
4063(i) | New | 27.2.4.2 [char.traits.specializations.char] | Freestanding `std::char_traits<char>::eof` depends on non-freestanding `EOF` | No | 2 |
2959(i) | New | 27.2.4.4 [char.traits.specializations.char16.t] | `char_traits<char16_t>::eof` is a valid UTF-16 code unit | No | 3 |
3989(i) | New | 27.3 [string.view] | The whole range for an iterator obtained from a `std::span` or `std::basic_string_view` is not clear | No | 3 |
2883(i) | LEWG | 27.3 [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 | 4 |
3457(i) | New | 27.3.3 [string.view.template] | `*this` is not invalidated | Yes | 3 |
4410(i) | New | 27.3.3.2 [string.view.cons] | `basic_string_view(It begin, End end)` is underconstrained | Yes | 4 |
4102(i) | New | 27.3.3.2 [string.view.cons] | `string_view(Iter, Iter)` constructor breaks existing code | No | 2 |
3339(i) | New | 27.4.3 [basic.string] | Move-constructed empty-container capacity | No | 3 |
3451(i) | New | 27.4.3 [basic.string] | Inconsistently explicit deduction guides | Yes | 3 |
4029(i) | New | 27.4.3.1 [basic.string.general] | `basic_string` accidentally fails to meet the reversible container requirements | Yes | 3 |
3663(i) | New | 27.4.3.3 [string.cons] | `basic_string(const T&, const Alloc&)` turns moves into copies | Yes | 3 |
4261(i) | New | 27.4.3.8.2 [string.find] | P1206R7 broke uses of container adaptors with old custom sequence containers | No | 3 |
3837(i) | New | 27.4.4.5 [string.erasure] | `std::erase_if` overloads for non-associative containers should move (and not copy) their predicate object | Yes | 3 |
2238(i) | Open | 27.5 [c.strings] | Problematic iterator-pair constructor of containers | No | 3 |
2237(i) | Core | 27.5 [c.strings] | `<cuchar>` macros | No | 4 |

## Section 28 (53 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4421(i) | New | 28.2.2 [charconv.to.chars] | Clarify the output encoding of `to_chars` for integers | Yes | 3 |
3456(i) | New | 28.2.3 [charconv.from.chars] | Pattern used by `std::from_chars` is underspecified | Yes | 3 |
3081(i) | Open | 28.2.3 [charconv.from.chars] | Floating point `from_chars` API does not distinguish between overflow and underflow | Yes | 2 |
3082(i) | Open | 28.2.3 [charconv.from.chars] | `from_chars` specification regarding floating point rounding is inconsistent | Yes | 2 |
3674(i) | New | 28.3.3.1.4 [locale.members] | Removal of requirement for locale names for construction of locales not explained | Yes | 2 |
4592(i) | New | 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 |  |
4287(i) | New | 28.3.4.2.5.3 [locale.codecvt.virtuals] | §[locale.codecvt.virtuals] `do_in` and `do_out` could do with better specification | Yes | 3 |
3337(i) | New | 28.3.4.2.5.3 [locale.codecvt.virtuals] | What is "is initialized" supposed to mean? | No | 3 |
4590(i) | New | 28.3.4.3.2.3 [facet.num.get.virtuals] | Unclear how `num_get` extracts `void*` values | No |  |
3689(i) | New | 28.3.4.3.2.3 [facet.num.get.virtuals] | `num_get` overflow determination unclear and incorrect | No | 3 |
3214(i) | New | 28.3.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 |
4216(i) | New | 28.3.4.3.3.3 [facet.num.put.virtuals] | `num_put::do_put` and `void` pointers | Yes | 3 |
2703(i) | New | 28.3.4.3.3.3 [facet.num.put.virtuals] | No provision for fill-padding when `boolalpha` is set | No | 3 |
2702(i) | New | 28.3.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.3.4.3.3.3 [facet.num.put.virtuals] | `ios_base` manipulators should have `showgrouping/noshowgrouping` | No | 3 |
4285(i) | New | 28.3.4.6.2.2 [locale.time.get.members] | `time_get::do_get_date` is problematic even after LWG 461 | Yes | 3 |
3275(i) | New | 28.3.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.3.4.6.2.3 [locale.time.get.virtuals] | Y2K bites; what is an "unambiguous year identifier"? | No | 4 |
4541(i) | SG16 | 28.3.4.6.2.3 [locale.time.get.virtuals] | Unclear behavior for parsing locale-dependent format | Yes | 3 |
2691(i) | New | 28.3.4.7.4 [locale.moneypunct] | `money_base::space` and `do_put`: U+0020 versus `fill` | Yes | 3 |
4263(i) | New | 28.5 [format] | What should `std::format_to` etc. behave when the output is overlong? | No | 3 |
3651(i) | New | 28.5 [format] | Unspecified lifetime guarantees for the format string | No | 3 |
3997(i) | New | 28.5.1 [format.syn] | `std::formatter` specializations should be consistently restricted to supported character types | No | 4 |
3939(i) | New | 28.5.2.2 [format.string.std] | §[format.string.std] `char` is not formatted as a character when `charT` is `wchar_t` | No | 3 |
3644(i) | New | 28.5.2.2 [format.string.std] | `std::format` does not define "integer presentation type" | Yes | 2 |
3586(i) | New | 28.5.2.2 [format.string.std] | Formatting character alignment inconsistencies | Yes | 2 |
4078(i) | New | 28.5.5 [format.functions] | What if arguments alias the output buffer in `std::format_to`? | No | 4 |
3993(i) | New | 28.5.6.1 [formatter.requirements] | The `parse` function of a BasicFormatter type needs to be `constexpr` | Yes | 3 |
4240(i) | New | 28.5.6.3 [format.formattable] | The formattable type is not a `formattable` type | Yes | 2 |
3943(i) | New | 28.5.6.3 [format.formattable] | Clarify lifetime requirements of BasicFormatter and Formatter | Yes | 3 |
3706(i) | New | 28.5.6.4 [format.formatter.spec] | How does `std::format` work with character arrays of unknown bound? | No | 3 |
4530(i) | LEWG | 28.5.6.4 [format.formatter.spec] | Unclear specification for `formatter<charT[N], charT>` | No | 2 |
4284(i) | LEWG | 28.5.6.4 [format.formatter.spec] | Integer-class types should be formattable | Yes | 3 |
4589(i) | LEWG | 28.5.6.5 [format.string.escaped] | `std::format` should escape null as `\0` | Yes |  |
4107(i) | New | 28.5.7.4 [format.range.fmtmap] | Map formatter may conflict with user-defined specializations of `pair`/`tuple` formatters | Yes | 3 |
2490(i) | New | 28.6 [re] | `<regex>` needs lots of `noexcept` | No | 3 |
523(i) | Open | 28.6 [re] | regex case-insensitive character ranges are unimplementable as specified | No | 4 |
3835(i) | New | 28.6.1 [re.general] | Requirements for `CharT` in the regex library | No | 4 |
3606(i) | New | 28.6.2 [re.req] | Missing `regex_traits::locale_type` requirements | No | 3 |
2431(i) | New | 28.6.2 [re.req] | Missing regular expression traits requirements | No | 3 |
3998(i) | New | 28.6.4 [re.const] | Constants in `std::regex_constants` should be allowed to be enumerators | No | 3 |
2331(i) | Open | 28.6.4.2 [re.synopt] | `regex_constants::collate`'s effects are inaccurately summarized | Yes | 3 |
3605(i) | New | 28.6.4.3 [re.matchflag] | `regex_constants::match_prev_avail` is underspecified | No | 3 |
2338(i) | Open | 28.6.6 [re.traits] | §[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 | Yes | 3 |
3261(i) | New | 28.6.7 [re.regex] | `regex` components' `noexcept` annotations appear broken for POCMA or throwing `BidirectionalIterator` | No | 3 |
3341(i) | New | 28.6.7.2 [re.regex.construct] | `basic_regex` range constructor: Missing requirements for iterator types | No | 3 |
3630(i) | New | 28.6.7.2 [re.regex.construct] | Inconsistent `basic_regex` construction and assignment from iterator range | No | 4 |
3603(i) | New | 28.6.7.2 [re.regex.construct] | Matching of null characters by regular expressions is underspecified | No | 3 |
3604(i) | New | 28.6.7.2 [re.regex.construct] | What is the effect of an invalid value of type `syntax_option_type`? | No | 3 |
2216(i) | New | 28.6.10.4 [re.alg.replace] | `regex_replace(basic_string)` allocator handling | No | 3 |
2546(i) | New | 28.6.12 [re.grammar] | Implementability of locale-sensitive UnicodeEscapeSequence matching | No | 4 |
2986(i) | New | 28.6.12 [re.grammar] | Handling of multi-character collating elements by the `regex` FSM is underspecified | No | 4 |
2987(i) | New | 28.6.12 [re.grammar] | Relationship between `traits_inst.lookup_collatename` and the `regex` FSM is underspecified with regards to `ClassAtomCollatingElement` | No | 3 |

## Section 29 (25 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4161(i) | New | 29.4 [complex.numbers] | Some free functions don't automatically work for program-defined `std::complex<NonFloatingPoint>` | No | 3 |
3933(i) | New | 29.4.3 [complex] | P1467R9 accidentally changed the signatures of certain constructors of `std::complex` | Yes | 4 |
3934(i) | New | 29.4.3 [complex] | `std::complex<T>::operator=(const T&)` has no specification | Yes | 3 |
2846(i) | New | 29.4.10 [cmplx.over] | Undefined phrase "effectively cast" | Yes | 3 |
4289(i) | LEWG | 29.5.3.2 [rand.req.seedseq] | Seed sequence is overspecified | Yes | 3 |
4212(i) | New | 29.5.4.5 [rand.eng.philox] | Make the round states in [rand.eng.philox] explicit | Yes | 3 |
3402(i) | SG6 | 29.5.9.3.4 [rand.dist.bern.negbin] | Wording for `negative_binomial_distribution` is unclear as a consequence of LWG 2406 resolution | No | 3 |
4052(i) | New | 29.5.9.6.2 [rand.dist.samp.pconst] | Bogus requirements for `piecewise_linear_distribution` | Yes | 4 |
3964(i) | New | 29.6.3.3 [valarray.transcend] | `std::atan2` and `std::pow` overloads that take two `std::valarray` parameters should require the arguments to have the same length | Yes | 4 |
2423(i) | New | 29.6.5 [template.slice.array] | Missing specification `slice_array`, `gslice_array`, `mask_array`, `indirect_array` copy constructor | Yes | 4 |
2115(i) | Open | 29.6.8 [template.mask.array] | Undefined behaviour for `valarray` assignments with `mask_array` index? | No | 4 |
3693(i) | New | 29.7 [c.math] | §[c.math] Can any of `float/double/long double` overloads be fused into template overloads? | No | 2 |
2847(i) | New | 29.7.1 [cmath.syn] | `sin(float)` should call `sinf(float)` | No | 3 |
2923(i) | New | 29.7.1 [cmath.syn] | `noexcept` is inconsistently applied across headers which import components of the C standard library | No | 4 |
3093(i) | New | 29.7.2 [c.math.abs] | LWG 2294/2192 missed a `std::abs` overload | No | 3 |
3066(i) | New | 29.7.6 [sf.cmath] | "report a domain error" in [sf.cmath]/1 is underspecified | No | 3 |
4185(i) | New | 29.9.7 [linalg.helpers] | Ill-formed, no diagnostic required on runtime behavior | No | 3 |
4566(i) | New | 29.9.8.2 [linalg.scaled.scaledaccessor] | The `element_type` definition of `scaled_accessor` and `conjugated_accessor` are not quite right | Yes | 3 |
4582(i) | New | 29.9.10.3 [linalg.transp.layout.transpose] | Specializations of `layout_transpose` do not meet the layout mapping policy requirements | Yes |  |
4409(i) | New | 29.10 [simd] | Constant expression `ranges::size(r)` Constraints and Mandates in [simd] | Yes | 3 |
4543(i) | New | 29.10.7 [simd.class] | Incorrect cast between `simd::vec` and `simd::mask` via conversion to and from impl-defined vector types | No | 2 |
4408(i) | LEWG | 29.10.7.3 [simd.subscr] | Hardening `simd::vec::operator[]` | Yes | 3 |
4392(i) | New | 29.10.8.6 [simd.loadstore] | `simd::unchecked_load` misses difference type casting | Yes | 3 |
4394(i) | New | 29.10.8.6 [simd.loadstore] | `simd::unchecked_load(I first, S last)` construct `span` maybe ill-formed | Yes | 3 |
4386(i) | New | 29.10.8.12 [simd.alg] | `std::simd::select(bool c, const T& a, const U& b)` is underconstrained | Yes | 3 |

## Section 30 (17 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3503(i) | New | 30.5.8 [time.duration.cast] | `chrono::ceil` has surprising requirement | Yes | 3 |
2383(i) | Open | 30.5.9 [time.duration.literals] | Overflow cannot be ill-formed for chrono::duration integer literals | No | 3 |
4288(i) | New | 30.7.2.2 [time.clock.system.members] | The Constraints: element in [time.clock.system.members] is probably wrong | Yes | 3 |
4193(i) | New | 30.11.2 [time.zone.db] | §[time.zone.db] the specification uses the undefined term "thread-safe" | No | 3 |
4211(i) | New | 30.11.2.1 [time.zone.db.tzdb] | IANA time zone database allows links to refer to links | Yes | 2 |
3678(i) | New | 30.11.5.1 [time.zone.overview] | Constructors of `std::chrono::time_zone` might be overly unspecified | Yes | 4 |
4067(i) | New | 30.11.7.2 [time.zone.zonedtime.ctor] | Inconsistency and potential infinity meta-recursion in `std::chrono::zoned_time`'s constructors | Yes | 3 |
4139(i) | New | 30.11.8 [time.zone.leap] | §[time.zone.leap] recursive constraint in `<=>` | No | 3 |
4400(i) | New | 30.12 [time.format] | `enable_nonlocking_formatter_optimization` for durations with custom rep | Yes | 3 |
4118(i) | New | 30.12 [time.format] | How should `duration` formatters format custom `rep` types? | Yes | 3 |
3856(i) | New | 30.12 [time.format] | Unclear which conversion specifiers are valid for each chrono type | Yes | 3 |
3921(i) | New | 30.12 [time.format] | Is `std::chrono::duration<std::int64_t, std::ratio<INT64_MAX - 1, INT64_MAX>>{40}` required to be correctly formatted? | No | 3 |
3844(i) | Open | 30.12 [time.format] | Non-numeric formats for negative durations | Yes | 3 |
4560(i) | LEWG | 30.12 [time.format] | Explicitly specify effects of precision specification in `duration` formatter | Yes |  |
3962(i) | New | 30.13 [time.parse] | What is the "decimal precision of the input"? | Yes | 3 |
3960(i) | New | 30.13 [time.parse] | How does `chrono::parse` handle duplicated data? | Yes | 3 |
3961(i) | New | 30.13 [time.parse] | Does `chrono::parse` check format strings? | Yes | 3 |

## Section 31 (33 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
423(i) | Open | 31 [input.output] | Effects of negative `streamsize` in iostreams | Yes | 3 |
4507(i) | Core | 31 [input.output] | The order of side effects initiated by I/O functions is not described by happen-before | No | 4 |
3910(i) | New | 31.4.2 [iostream.objects.overview] | The effects of including `<iostream>` on initialization are not yet precisely specified | Yes | 4 |
3675(i) | New | 31.5.2.6 [ios.base.storage] | `std::ios_base::iword/pword` might be misspecified | Yes | 4 |
2675(i) | New | 31.5.2.7 [ios.base.callback] | `register_callback` can fail | No | 3 |
4192(i) | New | 31.5.2.8 [ios.base.cons] | §[ios.base.cons] `ios_base` members may not have indeterminate values after construction | Yes | 3 |
2214(i) | Open | 31.5.4.2 [basic.ios.cons] | Clarify `basic_ios::init` call restrictions | Yes | 4 |
2504(i) | New | 31.6.3 [streambuf] | `basic_streambuf` is not an abstract class | No | 3 |
3658(i) | New | 31.6.3.3.5 [streambuf.pub.put] | `basic_streambuf::sputn` is both overspecified and underspecified | Yes | 3 |
2342(i) | New | 31.7.6.2 [ostream] | User conversion to `wchar_t const*` or to `wchar_t` not invoked for `operator<<` | Yes | 4 |
2497(i) | New | 31.7.6.2.4 [ostream.sentry] | Use of `uncaught_exception()` | Yes | 3 |
4101(i) | New | 31.7.6.3.2 [ostream.inserters.arithmetic] | LWG 117 loses the sign for negative NaN on some architectures | Yes | 3 |
3501(i) | New | 31.7.6.5 [ostream.manip] | `basic_syncbuf`-related manipulators refer to some `Allocator` without defining it | Yes | 3 |
4364(i) | New | 31.7.7 [std.manip] | SFINAE-friendliness on `operator<<` and `operator>>` for unspecified I/O manipulators | No | 4 |
3937(i) | New | 31.7.7 [std.manip] | I/O manipulators should be specified in terms of base classes | No | 3 |
2984(i) | New | 31.7.8 [ext.manip] | `put_money(99)` is unnecessarily undefined | Yes | 3 |
3309(i) | New | 31.8 [string.streams] | Is `<ios>` implicitly `#include`d by `<sstream>`, `<fstream>` etc.? | No | 3 |
3097(i) | New | 31.8.2.5 [stringbuf.virtuals] | `basic_stringbuf seekoff` effects trigger undefined behavior and have contradictory returns | No | 3 |
2286(i) | Open | 31.8.2.5 [stringbuf.virtuals] | `stringbuf::underflow()` underspecified | Yes | 4 |
3496(i) | New | 31.11.2.4 [syncstream.syncbuf.members] | What does "uniquely associated" mean for `basic_syncbuf::emit()`? | No | 3 |
3497(i) | New | 31.11.2.4 [syncstream.syncbuf.members] | Postconditions for `basic_syncbuf::emit()` | No | 3 |
3098(i) | New | 31.12.6.5.9 [fs.path.decompose] | Misleading example for `filesystem::path::filename()` | Yes | 3 |
3699(i) | New | 31.12.6.5.11 [fs.path.gen] | `lexically_relative` on UNC drive paths (`\\?\C:\...`) results in a default-constructed value | No | 3 |
3794(i) | New | 31.12.6.6 [fs.path.itr] | `std::filesystem::path::iterator::reference` should be allowed to be `std::filesystem::path` | Yes | 3 |
4070(i) | Open | 31.12.6.9.2 [fs.path.fmtr.funcs] | Transcoding by `std::formatter<std::filesystem::path>` | Yes | 2 |
2947(i) | New | 31.12.8.1 [fs.enum.path.format] | Clarify several filesystem terms | No | 3 |
3078(i) | New | 31.12.10 [fs.class.directory.entry] | `directory_entry`, `directory_iterator` and `recursive_directory_iterator` perform needless path copies | No | 3 |
3668(i) | New | 31.12.11.2 [fs.dir.itr.members] | `[recursive_]directory_iterator` constructors refer to undefined `options` | Yes | 3 |
2708(i) | Open | 31.12.12.2 [fs.rec.dir.itr.members] | `recursive_directory_iterator::recursion_pending()` is incorrectly specified | Yes | 2 |
4279(i) | New | 31.12.13.2 [fs.op.absolute] | §[fs.op.absolute] Non-normative encouragement should be Recommended practice | No | 4 |
3057(i) | Open | 31.12.13.4 [fs.op.copy] | Correct `copy_options` handling | Yes | 2 |
3056(i) | New | 31.12.13.5 [fs.op.copy.file] | `copy_file()` copies which attributes? | Yes | 3 |
3744(i) | New | 31.12.13.6 [fs.op.copy.symlink] | `copy_symlink(junction, new_symlink)`'s behavior is unclear | No | 3 |

## Section 32 (27 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
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 |
3924(i) | New | 32.3.1 [thread.stoptoken.intro] | Stop token data race avoidance requirements unclear | Yes | 3 |
3516(i) | New | 32.4.3.2 [thread.thread.id] | `thread::id` spaceship may be inconsistent with equality | Yes | 3 |
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 |
4310(i) | Core | 32.4.3.3 [thread.thread.constr] | Is "the completion of the invocation of the constructor" considered as an expression? | No | 4 |
3633(i) | New | 32.5 [atomics] | Atomics are copy constructible and copy assignable from `volatile` atomics | Yes | 3 |
3999(i) | New | 32.5.4 [atomics.order] | P0439R0 changed the value category of memory order constants | Yes | 4 |
3941(i) | Open | 32.5.4 [atomics.order] | §[atomics.order] inadvertently prohibits widespread implementation techniques | No | 3 |
2265(i) | Open | 32.5.4 [atomics.order] | 29.3p9 appears to rule out some acceptable executions | No | 4 |
1459(i) | LEWG | 32.5.4 [atomics.order] | Overlapping evaluations are allowed | No | 4 | 1458
4174(i) | SG1 | 32.5.4 [atomics.order] | How does [atomics.order] p3 apply when then modification is an initialization? | No | 3 |
4177(i) | SG1 | 32.5.4 [atomics.order] | §[atomics.order] p8 "circularly depend on their own computation" is unclear for loop | No | 4 |
4004(i) | SG1 | 32.5.4 [atomics.order] | The load and store operation in §[atomics.order] p1 is ambiguous | No | 3 |
3263(i) | New | 32.5.6 [atomics.wait] | Atomic waiting function calls should only be unblocked once | Yes | 3 |
3288(i) | New | 32.5.6 [atomics.wait] | `atomic<T>::notify_one` is unimplementable | Yes | 2 |
4571(i) | New | 32.5.7.1 [atomics.ref.generic.general] | Disallow specializing `std::atomic` and `std::atomic_ref` | Yes | 3 |
3409(i) | New | 32.5.7.2 [atomics.ref.ops] | Too lax description of `atomic_ref<T>::required_alignment` | Yes | 3 |
3047(i) | New | 32.5.8.3 [atomics.types.int] | `atomic` compound assignment operators can cause undefined behavior when corresponding `fetch_meow` members don't | Yes | 3 |
3906(i) | New | 32.5.8.5 [atomics.types.pointer] | "Undefined address" is undefined | No | 3 |
3418(i) | New | 32.5.9 [atomics.nonmembers] | Deprecated free functions in `<atomic>` | Yes | 3 |
4475(i) | Tentatively NAD | 32.6.4.2.1 [thread.mutex.requirements.mutex.general] | The description to single total order in [thread.mutex.requirements.mutex.general] is hollow | Yes |  |
4519(i) | SG1 | 32.6.4.2.1 [thread.mutex.requirements.mutex.general] | No formal rule associates the total order of a mutex object with the rule for modification order | Yes | 4 |
3898(i) | New | 32.9.3.3 [thread.barrier.class] | Possibly unintended preconditions for completion functions of `std::barrier` | Yes | 3 |
2530(i) | Open | 32.10.5 [futures.state] | Clarify observable side effects of releasing a shared state | No | 3 |
2532(i) | Open | 32.10.6 [futures.promise] | Satisfying a `promise` at thread exit | Yes | 3 |
3582(i) | New | 32.10.9 [futures.async] | Unclear where `std::async` exceptions are handled | Yes | 3 |
4160(i) | New | 32.10.10.1 [futures.task.general] | `packaged_task` should reject rvalue reference return types | Yes | 3 |

## Section 33 (15 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4353(i) | New | 33 [exec] | Uses of `MANDATE-NOTHROW` in CPOs should not enclose CPO argument sub-expressions | No | 3 |
4206(i) | New | 33.4 [execution.syn] | Alias template `connect_result_t` should be constrained with `sender_to` | Yes | 2 |
4326(i) | New | 33.5.2 [exec.fwd.env] | Standard defined queries can't customize `forwarding_query_t` by inheriting from it | Yes | 4 |
4327(i) | New | 33.6 [exec.sched] | Equal schedulers should be required to have same behaviour | No | 3 |
4199(i) | New | 33.9.1 [exec.snd.general] | constraints on user customizations of standard sender algorithms are incorrectly specified | No | 1 |
4570(i) | SG1 | 33.9.2 [exec.snd.expos] | `COMMON-DOMAIN` should test for convertibility to `default_domain` | Yes | 3 |
4355(i) | New | 33.9.10 [exec.connect] | `connect-awaitable()` should mandate `rcvr` can receive all completion-signals rather than using constraints | Yes | 2 |
4357(i) | New | 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 |
4356(i) | Open | 33.9.10 [exec.connect] | `connect()` should use `get_allocator(get_env(rcvr))` to allocate the coroutine-state for a `connect-awaitable` coroutine | Yes | 2 |
4395(i) | New | 33.9.12.3 [exec.write.env] | `write_env` implementation-detail lambda should have explicit return type | No | 2 |
4524(i) | New | 33.9.12.7 [exec.schedule.from] | Wrong deduced return type in [exec.schedule.from] | No | 2 |
4551(i) | New | 33.9.12.8 [exec.on] | Fix the customization domain of the `on` algorithm | Yes | 2 |
4502(i) | New | 33.9.12.12 [exec.when.all] | `std::execution::when_all` Is Never Nothrow Connectable | Yes | 2 |
4338(i) | LEWG | 33.13.6.2 [task.class] | sender unaware coroutines should be able to `co_await` a `task` | No | 2 |
4348(i) | LEWG | 33.13.6.2 [task.class] | `task` doesn't support symmetric transfer | No | 2 |

## Section 99 (1 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
4226(i) | New | 99 [range.to.input] | `to_input_view::iterator` cannot be compared to its `const` sentinel | Yes | 2 |

## Section concurr.ts 99 (1 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
2533(i) | Open | 99 [concurr.ts::futures.unique.future] | [concurr.ts] Constrain threads where `future::then` can run a continuation | No | 4 |

## Section fund.ts.v3 6 (1 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3812(i) | New | 6.1.2.6 [fund.ts.v3::propagate_const.const_observers] | [fund.ts.v3] Incorrect constraint on `propagate_const` conversion function | Yes | 3 |

## Section fund.ts.v3 8 (2 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3167(i) | Open | 8.2 [fund.ts.v3::memory.observer.ptr] | [fund.ts.v3] Does `observer_ptr` support function types? | No | 3 |
4295(i) | New | 8.2.6 [fund.ts.v3::memory.observer.ptr.special] | [fund.ts.v3] `experimental::observer_ptr` should have more constexpr | Yes | 4 |

## Section fund.ts.v3 99 (1 issues)

(view all issues)

Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates
--- | --- | --- | --- | --- | --- | ---
3357(i) | Open | 99 [fund.ts.v3::rand.util.randint] | [fund.ts.v3] `default_random_engine` is overspecified for per-thread engine | Yes | 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 | 4 |
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) | LEWG | 19.2.1 [networking.ts::socket.iostream.cons] | [networking.ts] `net::basic_socket_istream::connect` should be constrained | Yes | 3 |