also:
- removes default constructors from predefined iterators
- makes span and string_view views
Partially implements P2325.
Partially resolves LWG3326.
Paths
| Differential D102468
[libcxx][ranges] removes default_initializable from weakly_incrementable and view ClosedPublic Authored by cjdb on May 13 2021, 11:22 PM.
Details
Summary also:
Partially implements P2325.
Diff Detail
Event Timeline
Comment Actions What part of the LWG issue are we missing? Is it only the split_view part? If so, I think it's fine to mark it as done since it'll be handled when we implement split_view (http://eel.is/c++draft/range.split.view has the LWG issue applied).
This revision is now accepted and ready to land.Jun 10 2021, 7:54 AM Comment Actions LGTM % comments.
cjdb retitled this revision from [libcxx][ranges] makes `basic_string_view` and `span` satisfy concept view to [libcxx][ranges] removes default_initializable from weakly_incrementable and view. Comment Actions[ http://wg21.link/P2325 | P2325 ] was approved by plenary and made the original version of this patch semi-wrong, so I repurposed the entire patch to deal with P2325 as well. Due to the excessive changes, existing LGTMs need to be reapproved. Comment Actions If we're doing p2325 here now, then this patch should include changes to ostream_iterator and so on. (I think it would have been better to ship the LGTM'ed patch and then work on p2325 in a new PR; is that still an option, or is the old code lost now?) Comment Actions We'll also need to remember to bump the __cpp_lib_ranges feature-test macro to the right version when we do that (which I assume is when we'll have finished Ranges since we haven't discussed it). Also, as discussed offline, please make the enable_view.h move in a separate NFC commit to reduce noise.
The patch I'm looking at right now does include the required changes to ostream_iterator, unless you're talking about other changes I'm not seeing?
This revision now requires changes to proceed.Jun 10 2021, 9:24 AM Comment Actions LGTM modulo comments.
Comment Actions
Not sure what you mean here. I transformed this patch in one step. If there's something I've missed, it's always been missed, so please let me know if that's the case.
Comment Actions Let's land this to unblock the other patches.
zoecarver added a child revision: D102006: [libcxx][ranges] Add range.subrange..Jun 10 2021, 12:56 PM Comment Actions I missed that un-applied comment in my LGTM a second ago. Still LGTM, but why not fix the FIXME now?
Comment Actions Ship-it. I'll be looking forward to a patch that makes insert_iterator up-to-spec for C++20.
Closed by commit rG462f8f061136: [libcxx][ranges] removes default_initializable from weakly_incrementable and… (authored by cjdb). · Explain Why This revision was automatically updated to reflect the committed changes. zoecarver removed a child revision: D102006: [libcxx][ranges] Add range.subrange..Jun 10 2021, 5:58 PM
Revision Contents
Diff 351239 libcxx/docs/Cxx2aStatusIssuesStatus.csv
libcxx/docs/Cxx2aStatusPaperStatus.csv
libcxx/include/__iterator/concepts.h
libcxx/include/__ranges/concepts.h
libcxx/include/__ranges/enable_view.h
libcxx/include/iterator
libcxx/include/span
libcxx/include/string_view
libcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/subsumption.compile.pass.cpp
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/weakly_incrementable.compile.pass.cpp
libcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/default.pass.cpp
libcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/default.pass.cpp
libcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/default.pass.cpp
libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/default.pass.cpp
libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/ostreambuf.iter.cons/default.pass.cpp
libcxx/test/std/ranges/range.req/range.view/view.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.view/view.subsumption.compile.pass.cpp
libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
|
@ldionne: What is the process by which papers get added here? Can we get someone to add all the papers that were adopted in this week's plenary? (Then I could check whether D97742 is finally unblocked! ;))