[libc++][ranges] Implement P2474R2(`views::repeat`).
authoryrong <yronglin777@gmail.com>
Thu, 20 Jul 2023 12:00:10 +0000 (20:00 +0800)
committeryronglin <yronglin777@gmail.com>
Thu, 20 Jul 2023 12:03:01 +0000 (20:03 +0800)
commita2160dd34d56ea5440cbb805657bfee0e2228073
treedf2dee2911c70dfd505d5e4602e51c35c85bb662
parent836dbb8522abcf27f10bcf0134872b93676d9064
[libc++][ranges] Implement P2474R2(`views::repeat`).

- Implement https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2474r2.html
- Implement LWG3875(https://cplusplus.github.io/LWG/issue3875).

Depends on D151629

Reviewed By: #libc, Mordante, philnik, var-const

Differential Revision: https://reviews.llvm.org/D141699
39 files changed:
libcxx/docs/FeatureTestMacroTable.rst
libcxx/docs/ReleaseNotes/17.rst
libcxx/docs/Status/Cxx23Issues.csv
libcxx/docs/Status/Cxx23Papers.csv
libcxx/docs/Status/RangesViews.csv
libcxx/include/CMakeLists.txt
libcxx/include/__ranges/drop_view.h
libcxx/include/__ranges/repeat_view.h [new file with mode: 0644]
libcxx/include/__ranges/take_view.h
libcxx/include/module.modulemap.in
libcxx/include/ranges
libcxx/include/version
libcxx/modules/std/ranges.cppm
libcxx/test/libcxx/ranges/range.factories/range.repeat.view/ctor.piecewise.pass.cpp [new file with mode: 0644]
libcxx/test/libcxx/ranges/range.factories/range.repeat.view/ctor.value.bound.pass.cpp [new file with mode: 0644]
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.drop/adaptor.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.take/adaptor.pass.cpp
libcxx/test/std/ranges/range.factories/range.repeat.view/begin.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/ctad.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/ctor.default.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/ctor.piecewise.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/ctor.value.bound.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/end.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/compare.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/ctor.default.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/decrement.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/increment.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/member_typedefs.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/minus.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/minus_eq.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/star.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/subscript.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/size.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.repeat.view/views_repeat.pass.cpp [new file with mode: 0644]
libcxx/utils/generate_feature_test_macro_components.py