Note that this class was called just split_view in the original One
Ranges Proposal and was renamed to lazy_split_view by
P2210.
Original patch by @zoecarver.
Paths
| Differential D107500
[libc++][ranges] Implement `lazy_split_view`. ClosedPublic Authored by var-const on Aug 4 2021, 2:43 PM.
Details
Summary Note that this class was called just split_view in the original One Original patch by @zoecarver.
Diff Detail
Unit TestsFailed Event TimelineThere are a very large number of changes, so older changes are hidden. Show Older Changes Comment Actions Thanks a lot for working on this! This is a monster of a view. It generally looks really good, but I do have a few comments and questions.
This revision now requires changes to proceed.Mar 22 2022, 12:17 PM var-const marked 23 inline comments as done. Comment ActionsAddress feedback, use sentinel_wrapper and outer-iterator::value_type to
Comment Actions I think this looks good to me once all my comments have been addressed! Thanks a lot for the extreme thoroughness of the tests, you're really raising the bar. I'll have a last look once everything is addressed, but I think we should be really close to merging this now. Thanks!
This revision now requires changes to proceed.Mar 25 2022, 1:11 PM
Comment Actions Thanks a lot! This LGTM with my comments applied and CI passing.
Comment Actions Thanks a lot for the review!
Comment Actions Other than moving the libc++-specific tests in the libcxx/ subdirectory all the comments are very nit-picky, so this LGTM!
This revision is now accepted and ready to land.Apr 7 2022, 2:06 AM
Closed by commit rGe53c461bf3f0: [libc++][ranges] Implement `lazy_split_view`. (authored by var-const). · Explain WhyApr 12 2022, 10:30 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 422376 libcxx/docs/Status/RangesPaper.csv
libcxx/include/CMakeLists.txt
libcxx/include/__ranges/lazy_split_view.h
libcxx/include/module.modulemap
libcxx/include/ranges
libcxx/test/libcxx/private_headers.verify.cpp
libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/assert.equal.pass.cpp
libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/assert.equal.pass.cpp
libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/types.h
libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/adaptor.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/base.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/begin.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/constraints.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctad.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.copy_move.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.range.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/ctor.view.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/end.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/general.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/base.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/ctor.outer_iterator.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/deref.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/equal.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/increment.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/iter_move.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/iter_swap.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/types.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/begin.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/ctor.iter.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/end.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/view_interface.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/ctor.copy.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/ctor.parent.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/ctor.parent_base.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/deref.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/equal.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/increment.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer/types.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/small_string.h
libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h
libcxx/test/std/ranges/range.adaptors/range.lazy.split/view_interface.pass.cpp
libcxx/test/support/test_iterators.h
|
clang-format not found in user’s local PATH; not linting file.