[libc++][ranges] Implement `views::drop`.The view itself has been implemented previously -- this patch only addsthe ability to pipe it.Also finishes the implementation of [P1739](https://wg21.li
[libc++][ranges] Implement `views::drop`.The view itself has been implemented previously -- this patch only addsthe ability to pipe it.Also finishes the implementation of [P1739](https://wg21.link/p1739) and[LWG3407](https://wg21.link/lwg3407).Differential Revision: https://reviews.llvm.org/D125156
show more ...
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.All supported compilers that support C++20 now support concepts. So, remove`_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBC
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.All supported compilers that support C++20 now support concepts. So, remove`_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBCPP_STD_VER > 17`. Similarly inthe tests, remove `// UNSUPPORTED: libcpp-no-concepts`.Differential Revision: https://reviews.llvm.org/D121528
[libc++] Granularize <utility> includesReviewed By: ldionne, #libcSpies: EricWF, libcxx-commits, arphamanDifferential Revision: https://reviews.llvm.org/D120466
[libc++] Removes base member from tests.Change the tests to use the base friend function instead of members.Also changed some types to have a base friends instead of members.Reviewed By: #libc,
[libc++] Removes base member from tests.Change the tests to use the base friend function instead of members.Also changed some types to have a base friends instead of members.Reviewed By: #libc, ldionne, QuuxplusoneDifferential Revision: https://reviews.llvm.org/D120742
[libcxx][test] tests for strengthened `noexcept` are non-portableDifferential Revision: https://reviews.llvm.org/D117966
[libc++] Refactor stride_counting_iteratorInstead of storing the wrapped iterator inside the stride_counting_iterator,store its base so we can have e.g. a stride_counting_iterator of aninput_iter
[libc++] Refactor stride_counting_iteratorInstead of storing the wrapped iterator inside the stride_counting_iterator,store its base so we can have e.g. a stride_counting_iterator of aninput_iterator (which was previously impossible because input_iteratorsare not copyable). Also a few other simplifications in stride_counting_iterator.As a fly-by fix, remove the member base() functions, which are superconfusing.Differential Revision: https://reviews.llvm.org/D116613
[libc++] Fix __simple_view concept in std::rangesDifferential Revision: https://reviews.llvm.org/D116808
[libc++] [ranges] Implement P2415R2 owning_view."What is a view?"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2415r2.htmlhttps://github.com/cplusplus/draft/pull/5010/filesThis was a
[libc++] [ranges] Implement P2415R2 owning_view."What is a view?"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2415r2.htmlhttps://github.com/cplusplus/draft/pull/5010/filesThis was a late-breaking (Oct 2021) change to C++20.The only thing missing from this patch is that we're supposedto bump the feature-test macro from #define __cpp_lib_ranges 202106Lto #define __cpp_lib_ranges 202110Lbut we can't do that because we don't implement all of 202106 Ranges yet.Differential Revision: https://reviews.llvm.org/D116894
[libc++] [test] s/ContiguousView/MoveOnlyView/g. NFCI.The unique (ha!) thing about this range type is that it's move-only.Its contiguity is unsurprising (most of our test ranges are contiguous).D
[libc++] [test] s/ContiguousView/MoveOnlyView/g. NFCI.The unique (ha!) thing about this range type is that it's move-only.Its contiguity is unsurprising (most of our test ranges are contiguous).Discussed in D111231 but committed separately for clarity.
[libc++] [test] Change a lot of free begin/end pairs to members. NFCI.If you have a `begin() const` member, you don't need a `begin()` memberunless you want it to do something different (e.g. have
[libc++] [test] Change a lot of free begin/end pairs to members. NFCI.If you have a `begin() const` member, you don't need a `begin()` memberunless you want it to do something different (e.g. have a different returntype). So in general, //view// types don't need `begin()` non-const members.Also, static_assert some things about the types in "types.h", so that wedon't accidentally break those properties under refactoring.Differential Revision: https://reviews.llvm.org/D111231
[libc++] Various cleanups in the ranges tests- Rename test files to follow conventions better- Split constructor tests that were in a single file- Add missing tests for take_view and transform_vi
[libc++] Various cleanups in the ranges tests- Rename test files to follow conventions better- Split constructor tests that were in a single file- Add missing tests for take_view and transform_view's default constructors- Add missing tests for transform_view's view/function constructor- Fix include guards- Mark some tests as being specific to libc++Differential Revision: https://reviews.llvm.org/D108829
[libc++] Remove Lit annotations for unsupported GCC versions from the test suiteSince we officially don't support several older compilers now, we candrop a lot of the markup in the test suite. Thi
[libc++] Remove Lit annotations for unsupported GCC versions from the test suiteSince we officially don't support several older compilers now, we candrop a lot of the markup in the test suite. This helps keep the testsuite simple and makes sure that UNSUPPORTED annotations don't rot.This is the first patch of a series that will remove annotations forcompilers that are now unsupported.Differential Revision: https://reviews.llvm.org/D107787
[libc++] Disable incomplete library features.Adds a new CMake option to disable the usage of incomplete headers.These incomplete headers are not guaranteed to be ABI stable. Thisoption is intende
[libc++] Disable incomplete library features.Adds a new CMake option to disable the usage of incomplete headers.These incomplete headers are not guaranteed to be ABI stable. Thisoption is intended to be used by vendors so they can avoid their usersfrom code that's not ready for production usage.The option is enabled by default.Differential Revision: https://reviews.llvm.org/D106763
[libcxx][nfc] Global `constexpr friend` -> `friend constexpr`.
[libcxx][modularisation] adds several headers to the module map* <__algorithm/iter_swap.h>* <__algorithm/swap_ranges.h>* <__functional/is_transparent.h>* <__memory/uses_allocator.h>* <__ranges/
[libcxx][modularisation] adds several headers to the module map* <__algorithm/iter_swap.h>* <__algorithm/swap_ranges.h>* <__functional/is_transparent.h>* <__memory/uses_allocator.h>* <__ranges/drop_view.h>* <__ranges/transform_view.h>* <shared_mutex>* <span>Also updates header inclusions that were affected.**NOTE:** This is a proper subset of D105932. Since the content hasalready been LGTM'd, I intend to merge this patch without review,pending green CI. I decided it would be better to move these changesinto their own commit since the former patch has undergone furtherchanges and will need yet another light review. In the event any ofthat gets rolled back (for whatever reason), the changes in this patchwon't be affected.Differential Revision: https://reviews.llvm.org/D106040
[libcxx][ranges] Enable borrowed range for drop view when T has borrowing enabled.
[libcxx][views] Add drop_view.The first view in the libc++ ranges library Differential Revision: https://reviews.llvm.org/D102037