[libc++][ranges] Implement `views::take`.
authorKonstantin Varlamov <varconst@apple.com>
Fri, 6 May 2022 20:33:33 +0000 (13:33 -0700)
committerKonstantin Varlamov <varconst@apple.com>
Fri, 6 May 2022 21:16:13 +0000 (14:16 -0700)
commit9924d8d66ae103bee09387de3bef226d745807a8
treea03d4ebd94eada020d26920b9c8b1c9c703241fe
parent1eb97481ef8b7c8923b29d80b8b018015dd3e27c
[libc++][ranges] Implement `views::take`.

The view itself has been implemented previously -- this patch only adds
the ability to pipe it.

Also implements [P1739](https://wg21.link/p1739) (partially) and [LWG3407](https://wg21.link/lwg3407).

Differential Revision: https://reviews.llvm.org/D123600
libcxx/include/CMakeLists.txt
libcxx/include/__fwd/span.h [new file with mode: 0644]
libcxx/include/__fwd/string_view.h [new file with mode: 0644]
libcxx/include/__ranges/take_view.h
libcxx/include/module.modulemap
libcxx/include/span
libcxx/include/string_view
libcxx/test/libcxx/lint/lint_modulemap.sh.py [changed mode: 0644->0755]
libcxx/test/libcxx/private_headers.verify.cpp
libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.take/adaptor.pass.cpp [new file with mode: 0644]