[libcxx-commits] [PATCH] D136268: [libc++][ranges] implement `std::views::elements_view`

Hui via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Oct 26 02:10:21 PDT 2022


huixie90 created this revision.
Herald added a project: All.
huixie90 updated this revision to Diff 468963.
huixie90 added a comment.
huixie90 updated this revision to Diff 468995.
huixie90 edited the summary of this revision.
huixie90 updated this revision to Diff 469279.
huixie90 updated this revision to Diff 469311.
huixie90 updated this revision to Diff 469475.
huixie90 updated this revision to Diff 469505.
huixie90 updated this revision to Diff 470409.
huixie90 updated this revision to Diff 470745.
huixie90 edited the summary of this revision.
huixie90 edited the summary of this revision.
huixie90 edited the summary of this revision.
huixie90 edited the summary of this revision.
huixie90 added reviewers: philnik, var-const, ldionne.
huixie90 published this revision for review.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

ci


huixie90 added a comment.

ci


huixie90 added a comment.

subrange forward declaration


huixie90 added a comment.

CI


huixie90 added a comment.

CI


huixie90 added a comment.

CI


huixie90 added a comment.

more tests


huixie90 added a comment.

fix CI


`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/`


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D136268

Files:
  libcxx/docs/Status/Cxx20Issues.csv
  libcxx/docs/Status/Cxx20Papers.csv
  libcxx/docs/Status/Cxx2bIssues.csv
  libcxx/include/CMakeLists.txt
  libcxx/include/__fwd/get.h
  libcxx/include/__fwd/subrange.h
  libcxx/include/__iterator/concepts.h
  libcxx/include/__iterator/concepts/can_reference.h
  libcxx/include/__iterator/concepts/input_or_output_iterator.h
  libcxx/include/__iterator/concepts/sentinel_for.h
  libcxx/include/__iterator/concepts/sized_sentinel_for.h
  libcxx/include/__iterator/concepts/weakly_incrementable.h
  libcxx/include/__iterator/incrementable_traits.h
  libcxx/include/__iterator/iter_move.h
  libcxx/include/__iterator/iterator_traits.h
  libcxx/include/__ranges/elements_view.h
  libcxx/include/__ranges/subrange.h
  libcxx/include/__tuple/make_tuple_types.h
  libcxx/include/__tuple/tuple_like.h
  libcxx/include/module.modulemap.in
  libcxx/include/ranges
  libcxx/test/libcxx/private_headers.verify.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/adaptor.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/base.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/begin.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/borrowed.compile.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/ctor.default.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/ctor.view.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/end.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/general.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/arithmetic.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/base.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/compare.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.base.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.default.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.other.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/decrement.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/deref.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/increment.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/member_types.compile.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/iterator/subscript.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/range.concept.compile.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/base.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.base.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.convert.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.default.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/equality.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/minus.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/size.pass.cpp
  libcxx/test/std/ranges/range.adaptors/range.elements/types.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136268.470745.patch
Type: text/x-patch
Size: 136080 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20221026/9199670a/attachment-0001.bin>


More information about the libcxx-commits mailing list