[all-commits] [llvm/llvm-project] 944618: [libc++][ranges] implement `std::views::elements_v...
Hui via All-commits
all-commits at lists.llvm.org
Sun Jan 15 09:36:49 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 94461822c75d5080bf648f86552f7a59b76905c9
https://github.com/llvm/llvm-project/commit/94461822c75d5080bf648f86552f7a59b76905c9
Author: Hui Xie <hui.xie1990 at gmail.com>
Date: 2023-01-15 (Sun, 15 Jan 2023)
Changed paths:
M libcxx/docs/ReleaseNotes.rst
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/docs/Status/Cxx20Papers.csv
M libcxx/docs/Status/Cxx2bIssues.csv
M libcxx/docs/Status/SpaceshipProjects.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__fwd/get.h
A libcxx/include/__fwd/subrange.h
A libcxx/include/__ranges/elements_view.h
M libcxx/include/__ranges/subrange.h
A libcxx/include/__tuple_dir/pair_like.h
M libcxx/include/__tuple_dir/sfinae_helpers.h
M libcxx/include/__tuple_dir/tuple_like.h
A libcxx/include/__tuple_dir/tuple_like_ext.h
M libcxx/include/module.modulemap.in
M libcxx/include/ranges
M libcxx/include/tuple
M libcxx/test/libcxx/private_headers.verify.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.elements/elements_view.no_unique_address.compile.pass.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.elements/sentinel.no_unique_address.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/adaptor.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/base.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/begin.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/borrowed.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/ctor.view.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/end.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/arithmetic.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/compare.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.base.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.other.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/decrement.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/increment.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/iterator/subscript.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/range.concept.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.base.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.convert.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/equality.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/minus.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/size.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.elements/types.h
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[libc++][ranges] implement `std::views::elements_view`
`subrange` is also a `tuple-like`. To avoid the add entire `subrange` dependencies to `tuple-like`, we need forward declaration of `subrange`. However, the class template constraints of `subrange` currently requires `__iterator/concepts.h`, which requires `<concepts>`. The problem is that currently `tuple-like` is used in several different places, including libc++ extension for pair constructors. we don't want to add `<concepts>` to pair and other stuff. So this change also created several small headers that `subrange`'s declaration needed inside `__iterator/concepts/`
Differential Revision: https://reviews.llvm.org/D136268
More information about the All-commits
mailing list