-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
(Previous meta-issue: #1965)
At the October 2021 virtual plenary meeting, the following LWG issues were resolved in the C++ Working Paper.
❔ Not yet analyzed
- Analyzed all issues! 😸
✖️ 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-2191 Incorrect specification of
match_results(match_results&&) - LWG-3123
durationconstructor from representation shouldn't be effectively non-throwing - LWG-3152
common_typeandcommon_referencehave flaws in common - LWG-3361
safe_range<SomeRange&>case - LWG-3559 Semantic requirements of
sized_rangeare circular - LWG-3573 Missing Throws element for
basic_string_view(It begin, End end)
- LWG-2191 Incorrect specification of
- 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
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 need to be removed and messages need to cite the Standard
- Implemented without comments
- LWG-2762
unique_ptroperator*()should benoexcept(implemented in implemented the proposed resolution for LWG-2762 #2376) - LWG-3293
move_iteratoroperator+()has incorrect constraints (comments removed by Remove LWG comments #2269) - LWG-3407 Some problems with the wording changes of P1739R4 (comments removed by Remove LWG comments #2269)
- LWG-3422 Issues of
seed_seq's constructors (implemented in LWG-3422: Issues of seed_seq's constructors #2260) - LWG-3480
directory_iteratorandrecursive_directory_iteratorare not C++20 ranges (implemented in Implement LWG-3480,directory_iteratorandrecursive_directory_iteratorare ranges #2340) - LWG-3498 Inconsistent
noexcept-specifiers forbasic_syncbuf(comments removed by Remove LWG comments #2269) - LWG-3535
join_view::iterator::iterator_categoryand::iterator_conceptlie (comments removed by Remove LWG comments #2269) - LWG-3554
chrono::parseneedsconst charT*andbasic_string_view<charT>overloads (implemented by LWG-3554 Addconst charT*overloads forchrono::parse#2261) - LWG-3560
ranges::equalandranges::is_permutationshould short-circuit forsized_ranges (implemented in the original PRs Several range algorithms #565 and Implement ranges::is_permutation #892) - LWG-3566 Constraint recursion for
operator<=>(optional<T>, U)(comments removed by Remove LWG comments #2269) - LWG-3567 Formatting move-only iterators, take two (implemented in original PR Merging format #1821)
- LWG-3568
basic_istream_viewneeds to initializevalue_(comments removed by Remove LWG comments #2269) - LWG-3572
copyable-boxshould be fullyconstexpr(implemented in Implement P2325R3 Views Should Not Be Required To Be Default Constructible #2012) - LWG-3581 The range constructor makes
basic_string_viewnot trivially move constructible (comments removed by Remove LWG comments #2269) - LWG-3585
variantconverting assignment with immovable alternative
- LWG-2762
🩹 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.
🐞 Not yet implemented
- Filed a GitHub issue labeled LWG
- LWG-2381 Inconsistency in parsing floating-point numbers (filed LWG-2381 Inconsistency in parsing floating point numbers #2388)
- LWG-3121
tupleconstructor constraints forUTypes&&...overloads (filed LWG-3121tupleconstructor constraints forUTypes&&...overloads #2390) - LWG-3146 Excessive unwrapping in
std::ref/cref(filed LWG-3146 Excessive unwrapping instd::ref/cref#2391) - LWG-3392
ranges::distance()cannot be used on a move-only iterator with a sized sentinel (filed LWG-3392ranges::distance()cannot be used on a move-only iterator with a sized sentinel #2392) - LWG-3470
convertible-to-non-slicingseems to reject valid case (filed LWG-3470convertible-to-non-slicingseems to reject valid case #2393) - LWG-3557 The
static_castexpression inconvertible_tohas the wrong operand (filed LWG-3557 Thestatic_castexpression inconvertible_tohas the wrong operand #2394) - LWG-3561 Issue with internal counter in
discard_block_engine(filed LWG-3561 Issue with internal counter indiscard_block_engine#2250) - LWG-3563
keys_viewexample is broken (filed LWG-3563keys_viewexample is broken #2389) - LWG-3570
basic_osyncstream::emitshould be an unformatted output function (filed LWG-3570basic_osyncstream::emitshould be an unformatted output function #2395) - LWG-3571
flush_emitshould setbadbitif theemitcall fails (filed LWG-3571flush_emitshould setbadbitif theemitcall fails #2396) - LWG-3574
common_iteratorshould be completelyconstexpr-able (filed LWG-3574common_iteratorshould be completelyconstexpr-able #2397) - LWG-3580
iota_view'siterator's binaryoperator+should be improved (filed LWG-3580iota_view'siterator's binaryoperator+should be improved #2398) - LWG-3589 The
constlvalue reference overload ofgetforsubrangedoes not constrainIto becopyablewhenN == 0(filed LWG-3589 Theconstlvalue reference overload ofgetforsubrangedoes not constrainIto becopyablewhenN == 0#2399) - LWG-3590
split_view::base() const &is overconstrained (filed LWG-3590split_view::base() const &is overconstrained #2400) - LWG-3591
lazy_split_view<input_view>::inner-iterator::base() &&invalidates outer iterators (filed LWG-3591lazy_split_view<input_view>::inner-iterator::base() &&invalidates outer iterators #2401) - LWG-3592
lazy_split_viewneeds to check the simpleness ofPattern(filed LWG-3592lazy_split_viewneeds to check the simpleness ofPattern#2402) - LWG-3593 Several iterators'
base() const &andlazy_split_view::outer-iterator::value_type::end()missingnoexcept(filed LWG-3593 Several iterators'base() const &andlazy_split_view::outer-iterator::value_type::end()missingnoexcept#2403) - LWG-3595 Exposition-only classes
proxyandpostfix-proxyforcommon_iteratorshould be fullyconstexpr(filed LWG-3595 Exposition-only classes proxy and postfix-proxy forcommon_iteratorshould be fullyconstexpr#2264)
- PR out for review
Metadata
Metadata
Assignees
Labels
Type
Projects
Status