Reference ISO/IEC IS 14882:2024(E)
This document is the Table of Contents for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.
Revised 2025-11-08 at 03:10:52 UTC
| Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
|---|---|---|---|---|---|---|
| 2991(i) | Voting | 22.6.3.2 [variant.ctor] | variant copy constructor missing noexcept(see below) |
Yes | ||
| 3090(i) | Voting | 30.5.2 [time.duration.cons] | What is §[time.duration.cons]p4's "no overflow is induced in the conversion" intended to mean? | Yes | 3 | |
| 3343(i) | Immediate | 32.7.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 | |
| 3454(i) | Immediate | 20.2.3 [pointer.traits] | pointer_traits::pointer_to should be constexpr |
Yes | 4 | |
| 3627(i) | Voting | 22.5.10 [optional.specalg] | Inconsistent specifications for std::make_optional overloads |
Yes | 3 | |
| 4015(i) | Immediate | 22.5.3.8 [optional.monadic] | LWG 3973 broke const overloads of std::optional monadic operations |
Yes | 1 | |
| 4020(i) | Voting | 23.7.3.3.2 [mdspan.extents.expo] | extents::index-cast weirdness |
Yes | ||
| 4136(i) | Voting | 29.9.3 [linalg.general] | Specify behavior of [linalg] Hermitian algorithms on diagonal with nonzero imaginary part | Yes | ||
| 4137(i) | Voting | 29.9.14 [linalg.algs.blas2] | Fix Mandates, Preconditions, and Complexity elements of [linalg] algorithms | Yes | ||
| 4166(i) | Voting | 25.7.18.2 [range.concat.view] | concat_view::end() should be more constrained in order to support noncopyable iterators |
Yes | ||
| 4230(i) | Immediate | 29.10.8.4 [simd.complex.access] | simd<complex>::real/imag is overconstrained |
Yes | 2 | |
| 4243(i) | Voting | 23.7.2.3 [span.objectrep] | as_bytes/as_writable_bytes is broken with span<volatile T> |
Yes | 4 | |
| 4251(i) | Immediate | 20.4.1.5 [indirect.assign] | Move assignment for indirect unnecessarily requires copy construction |
Yes | 1 | |
| 4253(i) | Voting | 24.5.3.3 [const.iterators.iterator] | basic_const_iterator should provide iterator_type |
Yes | ||
| 4255(i) | Voting | 22.10.17.4.3 [func.wrap.move.ctor] | move_only_function constructor should recognize empty copyable_functions |
Yes | ||
| 4256(i) | Voting | 22.10.17.6.3 [func.wrap.ref.ctor] | Incorrect constrains for function_ref constructors from nontype_t |
Yes | ||
| 4257(i) | Voting | 30.7.9 [time.clock.local] | Stream insertion for chrono::local_time should be constrained |
Yes | ||
| 4260(i) | Immediate | 33.2.1 [exec.queryable.general] | Query objects must be default constructible | Yes | 2 | |
| 4265(i) | Voting | 26.10.16 [numeric.ops.midpoint] | std::midpoint should not accept const bool |
Yes | ||
| 4266(i) | Voting | 23.7.3.4.7 [mdspan.layout.stride] | layout_stride::mapping should treat empty mappings as exhaustive |
Yes | ||
| 4269(i) | Voting | 26.7.9 [alg.unique] | unique_copy passes arguments to its predicate backwards |
Yes | ||
| 4272(i) | Immediate | 23.7.3.4 [mdspan.layout] | For rank == 0, layout_stride is atypically convertible |
Yes | 2 | |
| 4274(i) | Voting | 30.9.2 [time.hms.members] | The chrono::hh_mm_ss constructor is ill-formed for unsigned durations |
Yes | ||
| 4275(i) | Voting | 23.7.3.2 [mdspan.syn] | std::dynamic_extent should also be defined in <mdspan> |
Yes | 3 | |
| 4276(i) | Voting | 23.3.3.5 [array.zero] | front() and back() are not hardened for zero-length std::arrays |
Yes | ||
| 4280(i) | Voting | 29.10.8.7 [simd.loadstore] | simd::partial_load uses undefined identifier T |
Yes | ||
| 4286(i) | Voting | 17.3.2 [version.syn] | Some more feature-test macros for fully freestanding features are not marked freestanding | Yes | ||
| 4291(i) | Voting | 23.4.3.1 [map.overview] | explicit map(const Allocator&) should be constexpr |
Yes | ||
| 4292(i) | Voting | 23.5.3.1 [unord.map.overview] | Unordered container local iterators should be constexpr iterators | Yes | ||
| 4293(i) | Voting | 23.7.2.2.4 [span.sub] | span::subspan/first/last chooses wrong constructor when T is const-qualified bool | Yes | ||
| 4294(i) | Voting | 22.9.2.2 [bitset.cons] | bitset(const CharT*) constructor needs to be constrained |
Yes | ||
| 4297(i) | Voting | 26.4 [algorithm.syn] | Missing permutable constraint for iterator overloads in Parallel Range Algorithms |
Yes | ||
| 4299(i) | Voting | 22.5.4.7 [optional.ref.monadic] | Missing Mandates: part in optional<T&>::transform |
Yes | ||
| 4300(i) | Voting | 22.5.4.3 [optional.ref.assign] | Missing Returns: element in optional<T&>::emplace |
Yes | ||
| 4301(i) | Voting | 32.7.4 [thread.condition.condvar] | condition_variable{_any}::wait_{for, until} should take timeout by value |
Yes | ||
| 4302(i) | Immediate | 29.9.13.8 [linalg.algs.blas1.ssq] | Problematic vector_sum_of_squares wording |
Yes | 1 | |
| 4304(i) | Immediate | 22.5.4.6 [optional.ref.observe] | std::optional<NonReturnable&> is ill-formed due to value_or |
Yes | 1 | |
| 4305(i) | Voting | 17.12.7 [compare.type] | Missing user requirements on type_order template |
Yes | ||
| 4308(i) | Immediate | 22.5.4.5 [optional.ref.iterators] | std::optional<T&>::iterator can't be a contiguous iterator for some T |
Yes | 1 | |
| 4312(i) | Voting | 20.2.8.2 [allocator.uses.construction] | Const and value category mismatch for allocator_arg_t/allocator_arg in the description
of uses-allocator construction |
Yes | ||
| 4315(i) | Voting | 29.9.13.9 [linalg.algs.blas1.nrm2] | Insufficient specification of vector_two_norm and matrix_frob_norm |
Yes | ||
| 4316(i) | Immediate | 21.4.13 [meta.reflection.substitute] | {can_}substitute specification is ill-formed |
Yes | 1 | |
| 4317(i) | Voting | 16.4.4.2 [utility.arg.requirements] | The meaning of "resource" in the Cpp17Destructible requirements is undefined | Yes | ||
| 4318(i) | Voting | 23.3.9.6 [hive.erasure] | Have hive::erase_if reevaluate end() to avoid UB |
Yes | ||
| 4328(i) | Voting | 33.6 [exec.sched] | Remove note in §[exec.sched] regarding waiting for completion of scheduled operations | Yes | ||
| 4340(i) | Voting | 33.13.6.5 [task.promise] | task::promise_type::unhandled_stopped() should be noexcept |
Yes | ||
| 4341(i) | Voting | 33.13.6.2 [task.class] | Missing rvalue reference qualification for task::connect() |
Yes | ||
| 4342(i) | Voting | 33.13.5 [exec.task.scheduler] | Missing rvalue reference qualification for task_scheduler::ts-sender::connect() |
Yes | ||
| 4343(i) | Voting | 33.13.6.2 [task.class] | Missing default template arguments for task |
Yes | ||
| 4345(i) | Voting | 33.13.6.5 [task.promise] | task::promise_type::return_value default template parameter |
Yes | ||
| 4346(i) | Voting | 33.13.6.5 [task.promise] | task::promise_type::return_void/value lack a specification |
Yes | ||
| 4349(i) | Voting | 33.13.6.5 [task.promise] | task is not actually started lazily |
Yes | ||
| 4351(i) | Voting | 23.7.2.1 [span.syn] | integral-constant-like needs more remove_cvref_t |
Yes | ||
| 4358(i) | Immediate | 33.13.1 [exec.as.awaitable] | §[exec.as.awaitable] is using "Preconditions:" when it should probably be described in the constraint | Yes | 2 | |
| 4360(i) | Immediate | 33.13.1 [exec.as.awaitable] | awaitable-sender concept should qualify use of awaitable-receiver type |
Yes | 2 | |
| 4366(i) | Voting | 22.8.6.8 [expected.object.eq] | Heterogeneous comparison of expected may be ill-formed |
Yes | ||
| 4369(i) | Immediate | 33.9.12.9 [exec.then] | check-types function for upon_error and upon_stopped is wrong |
Yes | 2 | |
| 4370(i) | Voting | 22.5.9 [optional.comp.with.t] | Comparison of optional<T> to T may be ill-formed |
Yes | ||
| 4372(i) | Voting | 23.7.3.4.8.1 [mdspan.layout.leftpad.overview] | Weaken Mandates: for dynamic padding values in padded layouts | Yes | ||
| 4375(i) | Voting | 29.10.8.15 [simd.bit] | std::simd::bit_ceil should not be noexcept |
Yes | ||
| 4376(i) | Immediate | 29.10.9.4 [simd.mask.unary] | ABI tag in return type of [simd.mask.unary] is overconstrained | Yes | 1 | |
| 4377(i) | Voting | 32.5.7.2 [atomics.ref.ops] | Misleading note about lock-free property of std::atomic_ref |
Yes | ||
| 4382(i) | Voting | 29.10.9.2 [simd.mask.ctor] | The simd::basic_mask(bool) overload needs to be more constrained
|
Yes | ||
| 4383(i) | Immediate | 21.3.5 [const.wrap.class] | constant_wrapper's pseudo-mutators are underconstrained
|
Yes | 1 | |
| 4384(i) | Voting | 23.6.11.2 [flat.set.defn] | flat_set::erase(iterator) is underconstrained
|
Yes | ||
| 4388(i) | Immediate | 17.14.2 [cstdarg.syn] | Align new definition of va_start with C23 |
Yes | 1 | |
| 4396(i) | Immediate | 23.2.4 [sequence.reqmts] | Improve inplace_vector(from_range_t, R&& rg) |
Yes | 3 | |
| 4398(i) | Voting | 23.6.2 [queue.syn] | enable_nonlocking_formatter_optimization should be disabled for container adaptors |
Yes | 2 | |
| 4399(i) | Voting | 28.5.9 [format.tuple] | enable_nonlocking_formatter_optimization for pair and tuple needs remove_cvref_t |
Yes | ||
| 4403(i) | Voting | 29.10.7.2 [simd.ctor] | simd::basic_vec CTAD misses difference type casting |
Yes | ||
| 4407(i) | Voting | 29.10.7.2 [simd.ctor] | constexpr-wrapper-like needs remove_cvref_t in simd::basic_vec
constructor |
Yes | ||
| 4412(i) | Voting | 29.10.3 [simd.syn] | Fix declaration of zero_element and uninit_element |
Yes | ||
| 4413(i) | Voting | 29.10.4 [simd.traits] | Unused/left-over simd::alignment specialization for basic_mask |
Yes | ||
| 4415(i) | Voting | 33.13.6.5 [task.promise] | task::promise_type::uncaught_exception seems to be misnamed |
Yes | ||
| 4416(i) | Voting | 21.4.1 [meta.syn] | <meta> should include <compare> |
Yes | ||
| 4420(i) | Immediate | 29.10 [simd] | §[simd] conversions (constructor, load, stores, gather, and scatter) are
incorrectly constrained for <stdfloat> types |
Yes | 1 | |
| 4422(i) | Voting | 21.4.8 [meta.reflection.access.context] | meta::access_context should be a consteval-only type |
Yes | 2 | |
| 4423(i) | Voting | 21.4.16 [meta.reflection.define.aggregate] | meta::data_member_spec allows negative bit-field widths |
Yes | ||
| 4424(i) | Immediate | 21.4.16 [meta.reflection.define.aggregate] | meta::define_aggregate should require a class type |
Yes | 1 | |
| 4425(i) | Voting | 22.10.17.6.5 [func.wrap.ref.deduct] | CTAD function_ref of data member pointer should produce noexcept signature |
Yes | ||
| 4426(i) | Voting | 21.4.15 [meta.reflection.array] | Clarify what meta::reflect_constant_string considers a string literal |
Yes | ||
| 4427(i) | Immediate | 21.4.7 [meta.reflection.queries] | meta::dealias needs to work with things that aren't entities |
Yes | ||
| 4428(i) | Immediate | 21.4.9 [meta.reflection.access.queries] | Metafunctions should not be defined in terms of constant subexpressions | Yes | ||
| 4429(i) | Immediate | 21.4.11 [meta.reflection.layout] | meta::alignment_of should exclude data member description of bit-field |
Yes | ||
| 4430(i) | Immediate | 28.2.3 [charconv.from.chars] | from_chars should not parse "0b" base prefixes |
Yes | ||
| 4431(i) | Immediate | 20.2.2 [memory.syn] | Parallel std::ranges::destroy should allow exceptions |
Yes | ||
| 4432(i) | Immediate | 21.4.3 [meta.define.static] | Clarify element initialization for meta::reflect_constant_array |
Yes | ||
| 4433(i) | Immediate | 21.4.7 [meta.reflection.queries] | Incorrect query for C language linkage | Yes | ||
| 4434(i) | Immediate | 21.4.9 [meta.reflection.access.queries] | meta::is_accessible does not need to consider incomplete D |
Yes | ||
| 4435(i) | Immediate | 21.4.6 [meta.reflection.names] | meta::has_identifier doesn't handle all types |
Yes | 2 | |
| 4438(i) | Immediate | 33.9.12.12 [exec.when.all] | Bad expression in [exec.when.all] | Yes | ||
| 4439(i) | Immediate | 22.5.4.4 [optional.ref.swap] | std::optional<T&>::swap possibly selects ADL-found swap |
Yes | ||
| 4440(i) | Immediate | 17.3.2 [version.syn] | Forward declarations of entities need also in entries | Yes | ||
| 4441(i) | Immediate | 26.7.11 [alg.rotate] | ranges::rotate do not handle sized-but-not-sized-sentinel ranges correctly |
Yes | ||
| 4442(i) | Immediate | 21.4.14 [meta.reflection.result] | Clarify expr and fn for meta::reflect_object and meta::reflect_function |
Yes | ||
| 4443(i) | Immediate | 21.4.16 [meta.reflection.define.aggregate] | Clean up identifier comparisons in meta::define_aggregate |
Yes | ||
| 4444(i) | Immediate | 26.7.5 [alg.replace] | Fix default template arguments for ranges::replace and ranges::replace_if |
Yes | ||
| 4445(i) | Immediate | 33.13.5 [exec.task.scheduler] | sch_ must not be in moved-from state |
Yes | ||
| 4446(i) | Immediate | 33.13.5 [exec.task.scheduler] | Bad phrasing for SCHED(s) |
Yes | ||
| 4447(i) | Immediate | 33.4 [execution.syn] | Remove unnecessary sizeof…(Env) > 1 condition |
Yes | ||
| 4448(i) | Immediate | 33.10 [exec.cmplsig] | Do not forward fn in completion_signatures |
Yes | ||
| 4449(i) | Immediate | 21.4.16 [meta.reflection.define.aggregate] | define_aggregate members must be public |
Yes | ||
| 4450(i) | Immediate | 32.5.7.3 [atomics.ref.int] | std::atomic_ref<T>::store_key should be disabled for const T |
Yes | ||
| 4451(i) | Immediate | 20.3.2.2.7 [util.smartptr.shared.create] | make_shared should not refer to a type U[N] for runtime N |
Yes | ||
| 4452(i) | Immediate | 26.11.1 [specialized.algorithms.general] | Make deref-move constexpr | Yes | ||
| 4455(i) | Immediate | 33.9.2 [exec.snd.expos] | Add missing constraint to basic-sender::get_completion_signatures definition |
Yes | ||
| 4456(i) | Immediate | 33.9.2 [exec.snd.expos] | Decay Data and Child in make-sender |
Yes | ||
| 4459(i) | Immediate | 33.9.2 [exec.snd.expos] | Protect get_completion_signatures fold expression from overloaded commas |
Yes | ||
| 4461(i) | Immediate | 33.9.12.17 [exec.stop.when] | stop-when needs to evaluate unstoppable tokens |
Yes | ||
| 4462(i) | Immediate | 26.2 [algorithms.requirements] | Algorithm requirements don't describe semantics of s - i well |
Yes | ||
| 4463(i) | Immediate | 26.3.2 [algorithms.parallel.user] | Change wording to 'model' from 'subsumes' in [algorithms.parallel.user] | Yes | ||
| 4464(i) | Immediate | 26.8.6 [alg.merge] | §[alg.merge] Wording tweaks | Yes | ||
| 4465(i) | Immediate | 26.8.5 [alg.partitions] | §[alg.partitions] Clarify Returns: element | Yes |