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 420695 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/lint/lint_headers.sh.py
 
 libcxx/test/libcxx/private_headers.verify.cpp
 libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
 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/assert.equal.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/assert.equal.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.