Implements P2116R9 views::enumerate
https://wg21.link/P2164R9
https://wg21.link/range.enumerate / https://eel.is/c++draft/range.enumerate
| Paths 
 |  Differential  D157193  
[libc++][ranges] P2116R9: Implements `views::enumerate` AbandonedPublic Authored by H-G-Hristov on Aug 5 2023, 7:33 AM. 
Details 
 Summary Implements P2116R9 views::enumerate https://wg21.link/P2164R9 
Diff Detail 
 Event TimelineThere are a very large number of changes, so older changes are hidden. Show Older Changes Comment Actions Thanks for working on this! 
 Comment Actions Just a note to me. Adjust modules according to this: https://reviews.llvm.org/D158358 Comment Actions Thank you for the comments! 
 Comment Actions Thank you for the patch! All in all it looks pretty good already. I have only started going through tests but wanted to share the feedback I already have. 
 This revision now requires changes to proceed.Sep 8 2023, 9:19 PM Comment Actions 
 Thank you for the review! H-G-Hristov added inline comments. 
 Comment Actions Finished going through the tests -- some more feedback! 
 
 
 Comment Actions 
 @var-const Thank you for the review! Comment Actions @H-G-Hristov Hi, do you need any help to make progress on this? We're trying to clear up our Phabricator review queue and it would be great to land this :-) Comment Actions 
 @ldionne I'm sorry for the delayed answer. I don't mind if any one better than me takes over to complete this patch otherwise I'll try to update the patch before the end of the month. I'll definitely need some help with a few a the comments though.  H-G-Hristov marked 8 inline comments as done.Comment Actions Addressed some more comments 
 
 H-G-Hristov marked an inline comment as done.Comment Actions Updated test 
 
 
Revision Contents 
 
 
Diff 556109 libcxx/docs/FeatureTestMacroTable.rst
 libcxx/docs/Status/Cxx23Papers.csv
 libcxx/docs/Status/Cxx2cIssues.csvlibcxx/docs/Status/RangesViews.csv
 libcxx/include/CMakeLists.txt
 libcxx/include/__ranges/concepts.h
 libcxx/include/__ranges/enumerate_view.h
 libcxx/include/module.modulemap.in
 libcxx/include/ranges
 libcxx/include/version
 libcxx/modules/std/ranges.inc
 libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
 libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
 libcxx/test/std/ranges/range.adaptors/range.enumerate/adaptor.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/base.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/begin.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/ctad.compile.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.base.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.default.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/enable_borrowed_range.compile.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/end.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/arithmetic.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/base.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/compare.three_way.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.convert.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.default.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/deref.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/equal.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/index.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/iter_move.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/subscript.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/base.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.convert.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.default.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/equal.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/minus.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
 
 libcxx/test/std/ranges/range.adaptors/range.enumerate/types.h
 
 libcxx/utils/generate_feature_test_macro_components.py
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IMO this should be Complete as well (I think Nothing To Do is for things like semantic requirements that are not enforceable in code).