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 ActionsAddressed some more comments
H-G-Hristov marked an inline comment as done. Comment ActionsUpdated test
Revision Contents
Diff 557942 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/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/iterator_robust_against_adl.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/iterator/types.compile.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).