[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++] [ranges] Permit std::mergeable and std::sortable with HAS_NO_INCOMPLETE_RANGES.This follows the general direction of D118736 that`_LIBCPP_HAS_NO_INCOMPLETE_RANGES` does *not* guard anythi
[libc++] [ranges] Permit std::mergeable and std::sortable with HAS_NO_INCOMPLETE_RANGES.This follows the general direction of D118736 that`_LIBCPP_HAS_NO_INCOMPLETE_RANGES` does *not* guard anything outsideof the `std::ranges::` namespace itself. This means we must permit`ranges::less` etc. in no-ranges mode; that seems fine to me.Differential Revision: https://reviews.llvm.org/D120139
[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
[libcxx] Reenable ranges for clang-clThis reverts a224bf8ec423b42eea251407e7a6cc8398a5edf4 and fixes theunderlying issue.The underlying issue is simply that MSVC headers contains a definelike "
[libcxx] Reenable ranges for clang-clThis reverts a224bf8ec423b42eea251407e7a6cc8398a5edf4 and fixes theunderlying issue.The underlying issue is simply that MSVC headers contains a definelike "#define __in", where __in is one macro in the MSVC SourceCode Annotation Language, defined in sal.hJust use a different variable name than "__in"__indirectly_readable_impl, and add "__in" to nasty_macros.h justlike the existing __out. (Also adding a couple more potentiallyconflicting ones.)Differential Revision: https://reviews.llvm.org/D101613
[libcxx] disables ranges for clang-clclang-cl doesn't properly handle concepts right now and is failing CI.Differential Revision: https://reviews.llvm.org/D101205
[libc++][ranges] Add range.cmp: equal_to, not_equal_to, less, etc.Adds the six new concept constrained comparisons.Differential Revision: https://reviews.llvm.org/D100429