[libc++] Granularize some more type_traitsReviewed By: ldionne, #libcSpies: libcxx-commits, mgornyDifferential Revision: https://reviews.llvm.org/D128948
[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++] Revert "Protect users from relying on detail headers" & related changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit).
[libc++] Revert "Protect users from relying on detail headers" & related changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit). As landed, 5aaefa51 hadunintended consequences on some downstream bots and didn't have propercoverage upstream due to a few subtle things. Implementing this issomething we should do in libc++, however we'll first need to addressa few issues listed in https://reviews.llvm.org/D106124#3349710.Differential Revision: https://reviews.llvm.org/D120683
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that ou
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that outdatedand naive tooling (some of which is outside of LLVM's scope) willsuggest users include things such as <__ranges/access.h> instead of<ranges>, and Hyrum's law suggests that users will eventually begin torely on this without the help of tooling. As such, this commitintends to protect users from themselves, by making it a hard error foranyone outside of the standard library to include libc++ detail headers.Differential Revision: https://reviews.llvm.org/D106124
[libc++][ranges] Implement rbegin, rend, crbegin and crend.Differential Revision: https://reviews.llvm.org/D119057
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.Now we'll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D1188
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.Now we'll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D118800
[libc++] [NFC] s/_LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)/!defined(_LIBCPP_HAS_NO_CONCEPTS)/Per Discord discussion, we're normalizing on a simple `!defined(_LIBCPP_HAS_NO_CONCEPTS)
[libc++] [NFC] s/_LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)/!defined(_LIBCPP_HAS_NO_CONCEPTS)/Per Discord discussion, we're normalizing on a simple `!defined(_LIBCPP_HAS_NO_CONCEPTS)`so that we can do a big search-and-replace for `!defined(_LIBCPP_HAS_NO_CONCEPTS)`back into `_LIBCPP_STD_VER > 17` when we're ready to abandon support for concept-syntax-lesscompilers.Differential Revision: https://reviews.llvm.org/D118748
[libc++] Fix the last instances of `namespace ranges::inline...`. NFC.Make these look the same as everywhere else.
[libc++] Fix LWG3557 "static_cast expression in convertible_to has the wrong operand"https://cplusplus.github.io/LWG/issue3557I think the code change is unobservable, so we could just close this a
[libc++] Fix LWG3557 "static_cast expression in convertible_to has the wrong operand"https://cplusplus.github.io/LWG/issue3557I think the code change is unobservable, so we could just close this as"Nothing To Do" instead; but it seems appropriate to follow the Standard'swording here as closely as possible.Differential Revision: https://reviews.llvm.org/D117964
[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 an unused internal concept.Removed as suggested by @Quuxplusone during the review of D109075.
[libc++][NFC] Move concepts to a subheader.D103357 added some new concepts. Since the header `<concepts>` has movedall its concepts to a separate header these new concepts feel out ofplace. Move
[libc++][NFC] Move concepts to a subheader.D103357 added some new concepts. Since the header `<concepts>` has movedall its concepts to a separate header these new concepts feel out ofplace. Move them to the appropriate header.Reviewed By: #libc, Quuxplusone, ldionneDifferential Revision: https://reviews.llvm.org/D109075
[libc++] Revert a use of `static_cast` for `_VSTD::forward`. NFCI.As requested in D107584.Differential Revision: https://reviews.llvm.org/D108743
[libc++][modularisation] Split up <concepts> into granular headers.This is the complete split of <concepts>, with nothing left in the main header.Differential Revision: https://reviews.llvm.org/D
[libc++][modularisation] Split up <concepts> into granular headers.This is the complete split of <concepts>, with nothing left in the main header.Differential Revision: https://reviews.llvm.org/D107584