-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
At the November 2020 virtual plenary meeting, the following LWG issues were resolved in the C++ Working Paper.
For each of these issues, we've determined whether they are:
✖️ Not applicable
If an issue requires no action from implementers, we mark it as N/A. Categories:
- 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-2743 P0083R3
node_handleprivate members missing "exposition only" comment - LWG-2820 Clarify
<cstdint>macros - LWG-3143
monotonic_buffer_resourcegrowth policy is unclear - LWG-3236 Random access iterator requirements lack limiting relational operators domain to comparing those from the same range
- LWG-3249 There are no 'pointers' in [atomics.lockfree]
- LWG-3265
move_iterator's conversions are more broken after P1207- Also superseded by LWG-3435 😸 which is already implemented.
- LWG-3421 Imperfect ADL emulation for
boolean-testable - LWG-3425
condition_variable_anyfails to constrain itsLockparameters - LWG-3453 Generic code cannot call
ranges::advance(i, s) - LWG-3461
convertible_to's description mishandles cv-qualifiedvoid - LWG-3476
threadandjthreadconstructors require that the parameters be move-constructible but never move construct the parameters- Removed unnecessary requirements that we weren't using and weren't enforcing.
- LWG-2743 P0083R3
- 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
😸 Already implemented
We used to record when issues were implemented (i.e. which VS update) although such bookkeeping is probably not necessary anymore.
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 - e.g. when the Standard begins requiring something that we were already doing, but weren't explicitly testing for.
- Already implemented, comments removed by PR Remove comments for resolved LWG issues #1456:
- LWG-3403 Domain of
ranges::ssize(E)doesn't matchranges::size(E) - LWG-3405
common_view's converting constructor is bad, too - LWG-3406
elements_view::begin()andelements_view::end()have incompatible constraints - LWG-3420
cpp17-iteratorshould check that the type looks like an iterator first - LWG-3428
single_view's in place constructor should be explicit - LWG-3435
three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>> - LWG-3446
indirectly_readable_traitsambiguity for types with bothvalue_typeandelement_type - LWG-3447 Deduction guides for
take_viewanddrop_viewhave different constraints - LWG-3450 The
constoverloads oftake_while_view::begin/endare underconstrained - LWG-3465
compare_partial_order_fallbackrequiresF < E - LWG-3467
boolcan't be an integer-like type - LWG-3472
counted_iteratoris missing preconditions - LWG-3482
drop_view'sconst beginshould additionally requiresized_range - LWG-3483
transform_view::iterator's difference is overconstrained
- LWG-3403 Domain of
- Already implemented without comments:
- LWG-2731 Existence of
lock_guard<MutexTypes...>::mutex_typetypedef unclear - LWG-3195 What is the stored pointer value of an empty
weak_ptr? - LWG-3368 Exactly when does
sizereturnend - begin? - LWG-3404 Finish removing
subrange's conversions frompair-like - LWG-3434
ios_basenever reclaims memory foriarrayandparray - LWG-3437
__cpp_lib_polymorphic_allocatoris in the wrong header- We define feature-test macros in
<yvals_core.h>so they're available in all headers.
- We define feature-test macros in
- LWG-3455 Incorrect Postconditions on
unique_ptrmove assignment - LWG-3477 Simplify constraints for
semiregular-box
- LWG-2731 Existence of
🩹 Patches an unimplemented feature
We should record 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.
- Recorded in issue P0645R10 <format> Text Formatting #30:
- LWG-3473 Normative encouragement in non-normative note
- Recorded in issue P1614R2 Adding Spaceship <=> To The Library #62:
- Recorded in issue P0896R4 <ranges> #39 and PR Implement ranges::join_view #1436:
- LWG-3474 Nesting
join_views is broken because of CTAD
- LWG-3474 Nesting
🪲 Not yet implemented
We should file a GitHub issue labeled LWG; see those existing examples.
- LWG-2839 Self-move-assignment of library types, again
- Probably N/A, but created issue LWG-2839 Self-move-assignment of library types, again #1485 just in case.
- LWG-3036
polymorphic_allocator::destroyis extraneous - LWG-3117 Missing
packaged_taskdeduction guides- Created issue LWG-3117 Missing packaged_task deduction guides #1465.
- LWG-3120 Unclear behavior of
monotonic_buffer_resource::release() - LWG-3170
is_always_equaladded tostd::allocatormakes the standard library treat derived types as always equal - LWG-3171 LWG-2989 breaks
directory_entrystream insertion - LWG-3211
std::tuple<>should be trivially constructible - LWG-3448
transform_view'ssentinel<false>not comparable withiterator<true> - LWG-3449
take_viewandtake_while_view'ssentinel<false>not comparable with their const iterator- Created issue LWG-3449 take_view and take_while_view's sentinel<false> not comparable with their const iterator #1463 and PR Implement resolution of LWG-3449 for take_view #1457 for
take_view. - It was implemented for
take_while_view, with comments removed by PR Remove comments for resolved LWG issues #1456.
- Created issue LWG-3449 take_view and take_while_view's sentinel<false> not comparable with their const iterator #1463 and PR Implement resolution of LWG-3449 for take_view #1457 for
- LWG-3460 Unimplementable
noop_coroutine_handleguarantees - LWG-3464
istream::gcount()can overflow- Created issue LWG-3464 istream::gcount() can overflow #1480.
- LWG-3466 Specify the requirements for
promise/future/shared_futureconsistently
Metadata
Metadata
Assignees
Labels
Type
Projects
Status