[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 ...
[libcxx][test] array and basic_string_view iterators are not portably pointersFixup tests that believe them to be so. Most notably including some heavy refactoring in `std/iterators/iterator.primit
[libcxx][test] array and basic_string_view iterators are not portably pointersFixup tests that believe them to be so. Most notably including some heavy refactoring in `std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp`, which now detects pointers and validates that `iterator_concept` is present only for pointers.Differential Revision: https://reviews.llvm.org/D117368
[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++] Implement P1989R2: range constructor for string_viewImplement P1989R2 which adds a range constructor for `string_view`.Adjust `operator/=` in `path` to avoid atomic constraints caching i
[libc++] Implement P1989R2: range constructor for string_viewImplement P1989R2 which adds a range constructor for `string_view`.Adjust `operator/=` in `path` to avoid atomic constraints caching issuegetting provoked from this PR.Add defaulted template argument to `string_view`'s "sufficientoverloads" to avoid mangling issues in `clang-cl` builds. It is aMSVC mangling bug that this works around.Differential Revision: https://reviews.llvm.org/D113161