-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
(Previous meta-issue: #5624)
At the November 2025 meeting, the following LWG issues were resolved in the C++ Working Paper.
❔ Not yet analyzed
- Remaining issues.
- All done!
❌ Not applicable
If an issue requires no action from implementers, we mark it as N/A.
- Pure wording clarifications with nothing to implement (these can be changes to non-normative text like examples and informative notes, or wording cleanups to normative text that don't impact observable behavior).
- LWG-4286 Some more feature-test macros for fully freestanding features are not marked freestanding
- We're a hosted implementation.
- LWG-4317 The meaning of "resource" in the Cpp17Destructible requirements is undefined
- LWG-4377 Misleading note about lock-free property of
std::atomic_ref - LWG-4440 Forward declarations of entities need "also in" entries
- We define feature-test macros in all headers.
- LWG-4462 Algorithm requirements don't describe semantics of
s - iwell
- LWG-4286 Some more feature-test macros for fully freestanding features are not marked freestanding
- Something that increases the restrictions placed on users, but implementers aren't expected to enforce those restrictions.
- Fixes for obviously broken wording, where implementers would have done the right thing anyways.
- LWG-4451
make_sharedshould not refer to a typeU[N]for runtime N
- LWG-4451
😸 Already implemented
Sometimes we cite LWG issues in product code comments as we're implementing their proposed resolutions. When the resolutions are officially accepted, we should remove the citations (as the default assumption is that we're implementing what the Standard says). If something is especially subtle, we can convert the citation to mention the relevant Standard section. Sometimes we should add test coverage, for example when the Standard begins requiring something that we were already doing but weren't explicitly testing for.
- Already implemented, comments need to be removed, and messages need to cite the Standard.
- LWG-3454
pointer_traits::pointer_toshould beconstexpr
- LWG-3454
- Implemented without comments.
- LWG-2991
variantcopy constructor missingnoexcept(see below)- Took me a while to find, but I believe this was implemented without any "strengthened" comments:
Lines 818 to 819 in ab6dec6
_CONSTEXPR20 void _Construct_from(const _Variant_base& _That) noexcept(conjunction_v<is_nothrow_copy_constructible<_Types>...>) {
- Took me a while to find, but I believe this was implemented without any "strengthened" comments:
- LWG-4020
extents::index-castweirdness - LWG-4265
std::midpointshould not acceptconst bool - LWG-4269
unique_copypasses arguments to its predicate backwards - LWG-4275
std::dynamic_extentshould also be defined in<mdspan> - LWG-4276
front()andback()are not hardened for zero-lengthstd::arrays - LWG-4370 Comparison of
optional<T>toTmay be ill-formed
- LWG-2991
🩹 Patches an unimplemented feature
-
Recorded this LWG issue in the GitHub issue tracking the feature. That way, we'll remember to verify it, but it doesn't represent net new work.
-
- LWG-4384
flat_set::erase(iterator)is underconstrained
- LWG-4384
-
P0792R14
function_ref: A Type-Erased Callable Reference #3788 -
P2548R6
copyable_function#3803- LWG-4255
move_only_functionconstructor should recognize emptycopyable_functions
- LWG-4255
-
- LWG-4372 Weaken Mandates: for dynamic padding values in padded layouts
-
P1673R13
<linalg>: Linear Algebra #4170- LWG-4136 Specify behavior of [linalg] Hermitian algorithms on diagonal with nonzero imaginary part
- LWG-4137 Fix Mandates, Preconditions, and Complexity elements of [linalg] algorithms
- LWG-4302 Problematic
vector_sum_of_squareswording - LWG-4315 Insufficient specification of
vector_two_normandmatrix_frob_norm
-
P2447R6 Constructing
span<const T>Frominitializer_list<T>#4173- LWG-4293
span::subspan/first/lastchooses wrong constructor whenTisconst-qualifiedbool
- LWG-4293
-
P2248R8 Enabling List-Initialization For Algorithms #4513
- LWG-4444 Fix default template arguments for
ranges::replaceandranges::replace_if
- LWG-4444 Fix default template arguments for
-
- LWG-4166
concat_view::end()should be more constrained in order to support noncopyable iterators
- LWG-4166
-
P0843R14
<inplace_vector>#4766- LWG-4396 Improve
inplace_vector(from_range_t, R&& rg)
- LWG-4396 Improve
-
- LWG-4260 Query objects must be default constructible
- LWG-4328 Remove note in [exec.sched] regarding waiting for completion of scheduled operations
- LWG-4340
task::promise_type::unhandled_stopped()should benoexcept - LWG-4341 Missing rvalue reference qualification for
task::connect() - LWG-4342 Missing rvalue reference qualification for
task_scheduler::ts-sender::connect() - LWG-4343 Missing default template arguments for
task - LWG-4345
task::promise_type::return_valuedefault template parameter - LWG-4346
task::promise_type::return_void/valuelack a specification - LWG-4349
taskis not actually started lazily - LWG-4358 [exec.as.awaitable] is using Preconditions: when it should probably be described in the constraint
- LWG-4360
awaitable-senderconcept should qualify use ofawaitable-receivertype - LWG-4369
check-typesfunction forupon_errorandupon_stoppedis wrong - LWG-4415
task::promise_type::uncaught_exceptionseems to be misnamed - LWG-4438 Bad expression in [exec.when.all]
- LWG-4445
sch_must not be in moved-from state - LWG-4446 Bad phrasing for
SCHED(s) - LWG-4447 Remove unnecessary
sizeof...(Env) > 1condition - LWG-4448 Do not forward
fnincompletion_signatures - LWG-4455 Add missing constraint to
basic-sender::get_completion_signaturesdefinition - LWG-4456 Decay
DataandChildinmake-sender - LWG-4459 Protect
get_completion_signaturesfold expression from overloaded commas - LWG-4461
stop-whenneeds to evaluate unstoppable tokens
-
- LWG-4230
simd<complex>::real/imagis overconstrained - LWG-4280
simd::partial_loaduses undefined identifierT - LWG-4375
std::simd::bit_ceilshould not benoexcept - LWG-4376 ABI tag in return type of [simd.mask.unary] is overconstrained
- LWG-4382 The
simd::basic_mask(bool)overload needs to be more constrained - LWG-4403
simd::basic_vecCTAD misses difference type casting - LWG-4407
constexpr-wrapper-likeneedsremove_cvref_tinsimd::basic_vecconstructor - LWG-4412 Fix declaration of
zero_elementanduninit_element - LWG-4413 Unused/left-over
simd::alignmentspecialization forbasic_mask - LWG-4420 [simd] conversions (constructor, load, stores, gather, and scatter) are incorrectly constrained for
<stdfloat>types
- LWG-4230
-
P3508R0
constexprFor Raw Memory Algorithms #5148- LWG-4452 Make deref-move constexpr
-
- LWG-4318 Have
hive::erase_ifreevaluateend()to avoid UB
- LWG-4318 Have
-
P3019R14
indirectAndpolymorphic: Vocabulary Types For Composite Class Design #5302- LWG-4251 Move assignment for
indirectunnecessarily requires copy construction
- LWG-4251 Move assignment for
-
P2996R13
<meta>: Reflection #5606- LWG-4316
{can_}substitutespecification is ill-formed - LWG-4416
<meta>should include<compare> - LWG-4422
meta::access_contextshould be aconsteval-only type - LWG-4423
meta::data_member_specallows negative bit-field widths - LWG-4424
meta::define_aggregateshould require a class type - LWG-4426 Clarify what
meta::reflect_constant_stringconsiders a string literal - LWG-4427
meta::dealiasneeds to work with things that aren't entities - LWG-4428 Metafunctions should not be defined in terms of constant subexpressions
- LWG-4429
meta::alignment_ofshould exclude data member description of bit-field - LWG-4432 Clarify element initialization for
meta::reflect_constant_array - LWG-4433 Incorrect query for C language linkage
- LWG-4434
meta::is_accessibledoes not need to consider incomplete D - LWG-4435
meta::has_identifierdoesn't handle all types - LWG-4442 Clarify
exprandfnformeta::reflect_objectandmeta::reflect_function - LWG-4443 Clean up identifier comparisons in
meta::define_aggregate - LWG-4449
define_aggregatemembers must be public
- LWG-4316
-
- LWG-4299 Missing Mandates: part in
optional<T&>::transform - LWG-4300 Missing Returns: element in
optional<T&>::emplace - LWG-4304
std::optional<NonReturnable&>is ill-formed due tovalue_or - LWG-4308
std::optional<T&>::iteratorcan't be a contiguous iterator for someT - LWG-4439
std::optional<T&>::swappossibly selects ADL-foundswap
- LWG-4299 Missing Mandates: part in
-
- LWG-4305 Missing user requirements on
type_ordertemplate
- LWG-4305 Missing user requirements on
-
P3111R8 Atomic Reduction Operations #5616
- LWG-4450
std::atomic_ref<T>::store_keyshould be disabled for constT
- LWG-4450
🐞 Not yet implemented
- Filed a GitHub issue labeled
LWG
Library Working Group issue .- LWG-3090 What is [time.duration.cons]/4's "no overflow is induced in the conversion" intended to mean?
- LWG-3343 Ordering of calls to
unlock()andnotify_all()in Effects element ofnotify_all_at_thread_exit()should be reversed - LWG-3627 Inconsistent specifications for
std::make_optionaloverloads - LWG-4015 LWG-3973 broke
constoverloads ofstd::optionalmonadic operations - LWG-4243
as_bytes/as_writable_bytesis broken withspan<volatile T> - LWG-4253
basic_const_iteratorshould provideiterator_type - LWG-4257 Stream insertion for
chrono::local_timeshould be constrained - LWG-4266
layout_stride::mappingshould treat empty mappings as exhaustive - LWG-4272 For
rank == 0,layout_strideis atypically convertible - LWG-4274 The
chrono::hh_mm_ssconstructor is ill-formed for unsigned durations - LWG-4294
bitset(const CharT*)constructor needs to be constrained - LWG-4301
condition_variable{_any}::wait_{for, until}should take timeout by value - LWG-4312 Const and value category mismatch for
allocator_arg_t/allocator_argin the description of uses-allocator construction - LWG-4366 Heterogeneous comparison of
expectedmay be ill-formed - LWG-4398
enable_nonlocking_formatter_optimizationshould be disabled for container adaptors - LWG-4399
enable_nonlocking_formatter_optimizationforpairandtupleneedsremove_cvref_t
Metadata
Metadata
Assignees
Labels
Type
Projects
Status