[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
show more ...
[libc++] Guard much of std::ranges under _LIBCPP_HAS_NO_INCOMPLETE_RANGES.The logic here is that we are disabling *only* things in `std::ranges::`.Everything in `std::` is permitted, including `de
[libc++] Guard much of std::ranges under _LIBCPP_HAS_NO_INCOMPLETE_RANGES.The logic here is that we are disabling *only* things in `std::ranges::`.Everything in `std::` is permitted, including `default_sentinel`, `contiguous_iterator`,`common_iterator`, `projected`, `swappable`, and so on. Then, we includeanything from `std::ranges::` that is required in order to make those thingswork: `ranges::swap`, `ranges::swap_ranges`, `input_range`, `ranges::begin`,`ranges::iter_move`, and so on. But then that's all. Everything else (includingnotably all of the "views" and the `std::views` namespace itself) is stilllocked up behind `_LIBCPP_HAS_NO_INCOMPLETE_RANGES`.Differential Revision: https://reviews.llvm.org/D118736
[libc++] [ranges] ADL-proof the [range.access] CPOs.For example, `std::ranges::range<Holder<Incomplete>*>` should bewell-formed false, not a hard error at compile time.Differential Revision: htt
[libc++] [ranges] ADL-proof the [range.access] CPOs.For example, `std::ranges::range<Holder<Incomplete>*>` should bewell-formed false, not a hard error at compile time.Differential Revision: https://reviews.llvm.org/D116239
[libc++] Remove incorrect default constructor in cpp17_input_iteratorAFAICT, Cpp17InputIterators are not required to be default constructible,since that requirement is added in Cpp17ForwardIterato
[libc++] Remove incorrect default constructor in cpp17_input_iteratorAFAICT, Cpp17InputIterators are not required to be default constructible,since that requirement is added in Cpp17ForwardIterator. Hence, ourarchetype for Cpp17InputIterator should not be default constructible.Removing that constructor has a ripple effect on a couple of tests thatwere making incorrect assumptions. Notably:- Some tests were using cpp17_input_iterator as a sentinel for itself. That is not valid, because a cpp17_input_iterator is not semiregular anymore after the change (and hence it doesn't satisfy sentinel_for).- Some tests were using a stride-counted cpp17_input_iterator as the sentinel for a range. This doesn't work anymore because of the problem above, so these tests were changed not to check stride counts for input iterators.- Some tests were default constructing cpp17_input_iterator when a simple alternative was available -- those have been changed to use that alternative.Differential Revision: https://reviews.llvm.org/D115806
[libc++][NFC] Replace uses of stdr:: by just std::ranges::Differential Revision: https://reviews.llvm.org/D109121
[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
[libc++] Add range_size_tDifferential Revision: https://reviews.llvm.org/D106708
[libcxx][ranges] adds concept `sized_range` and cleans up `ranges::size`* adds `sized_range` and conformance tests* moves `disable_sized_range` into namespace `std::ranges`* removes explicit type
[libcxx][ranges] adds concept `sized_range` and cleans up `ranges::size`* adds `sized_range` and conformance tests* moves `disable_sized_range` into namespace `std::ranges`* removes explicit type parameterImplements part of P0896 'The One Ranges Proposal'.Differential Revision: https://reviews.llvm.org/D102434