-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
(Previous meta-issue: #1679)
At the June 2021 virtual plenary meeting, the following LWG issues were resolved in the C++ Working Paper.
❔ Not yet analyzed
- All done! 😺
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)
- 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
- LWG-3481
viewable_rangemishandles lvalue move-only views (Removal in<ranges>: Remove "per LWG" comments #1967) - LWG-3517
join_view::iterator'siter_swapis underconstrained (Removal in<ranges>: Remove "per LWG" comments #1967) - LWG-3523
iota_view::sentinelis not alwaysiota_view's sentinel (Removal in<ranges>: Remove "per LWG" comments #1967) - LWG-3530
BUILTIN-PTR-MEOWshould not opt the type out of syntactic checks (Removal in cleared comment TRANSITION #2186) - LWG-3532
split_view<V, P>::inner-iterator<true>::operator++(int)should depend onBase(Removal in<ranges>: Remove "per LWG" comments #1967) - LWG-3543 Definition of when
counted_iterators refer to the same sequence isn't quite right (Filed as LWG-3543 Definition of whencounted_iterators refer to the same sequence isn't quite right #2184)
- LWG-3481
-
Implemented without comments
- LWG-3410
lexicographical_compare_three_wayis overspecified - LWG-3430
std::fstream& co. should be constructible fromstring_view(Implemented in<fstream>: Implement LWG-3430 #1968) - LWG-3506 Missing allocator-extended constructors for
priority_queue(Implemented in Implement P1425 iterator range constructors for stack and queue #1994) - LWG-3518 Exception requirements on char trait operations unclear (Implemented in Use LWG-3518 to add
noexcept#2080) - LWG-3522 Missing requirement on
InputIteratortemplate parameter forpriority_queueconstructors (Implemented in Implement P1425 iterator range constructors for stack and queue #1994) - LWG-3527
uses_allocator_construction_argshandles rvalue pairs of rvalue references incorrectly (Implemented in implement LWG-3527 #2194) - LWG-3528
make_from_tuplecan perform (the equivalent of) a C-style cast (Implemented in<tuple>: LWG-3528make_from_tuplecan perform (the equivalent of) a C-style cast #2160) - LWG-3529
priority_queue(first, last)should constructcwith(first, last) - LWG-3533 Make
base() const &consistent across iterator wrappers that supportinput_iterators (Implemented in Adopt LWG-3533 Makebase() const &consistent across iterator wrappers that supportinput_iterators #1993) - LWG-3536 Should
chrono::from_stream()assign zero todurationfor failure? (Implemented in<chrono>LWG-3536: leave duration unchanged on failed parse #2037) - LWG-3539
format_tomust not copy models ofoutput_iterator<const charT&> - LWG-3540 There should be no
constinbasic_format_arg(const T* p) - LWG-3541
indirectly_readable_traitsshould be SFINAE-friendly for all types (Implemented in Adopt LWG-3541indirectly_readable_traitsshould be SFINAE-friendly for all types #1992) - LWG-3542
basic_format_argmis-handlesbasic_string_viewwith custom traits - LWG-3544
format-arg-store::argsis unintentionally not exposition-only - LWG-3548
shared_ptrconstruction fromunique_ptrshould move (not copy) the deleter (Implemented in Implement LWG-3548 shared_ptr construction from unique_ptr should move (not copy) the deleter #2007) - LWG-3553 Useless constraint in
split_view::outer-iterator::value_type::begin()(Implemented in Adopt LWG-3553 Useless constraint insplit_view::outer-iterator::value_type::begin()#1990) - LWG-3555
{transform,elements}_view::iterator::iterator_conceptshould considerconst-qualification of the underlying range (Implemented in Adopt LWG-3555{transform,elements}_view::iterator::iterator_conceptshould considerconst-qualification of the underlying range #1989)
- LWG-3410
🩹 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.
- LWG-3552 Parallel specialized memory algorithms should require forward iterators (Mentioned in <memory>: Missing C++17 ExecutionPolicy overloads #525)
🐞 Not yet implemented
- PRs out for review:
- LWG-2774
std::functionconstruction vs assignment (Implemented in LWG-2774std::functionconstruction vs assignment #2098) - LWG-3546
common_iterator'spostfix-proxyis not quite right (Implemented in Adopt LWG-3546common_iterator'spostfix-proxyis not quite right #1991)
- LWG-2774
- We should file a GitHub issue labeled LWG; see those existing examples.
- LWG-3519 Incomplete synopses for
<random>classes (Filed as LWG-3519 Incomplete synopses for<random>classes #2179) - LWG-3520
iter_moveanditer_swapare inconsistent fortransform_view::iterator(Filed as LWG-3520iter_moveanditer_swapare inconsistent fortransform_view::iterator#2180) - LWG-3549
view_interfaceis overspecified to derive fromview_base(Filed as LWG-3549view_interfaceis overspecified to derive fromview_base#2178)
- LWG-3519 Incomplete synopses for
Metadata
Metadata
Assignees
Labels
Type
Projects
Status