diff --git a/libcxx/include/format b/libcxx/include/format index 0ec4b85ca0a58..cfd851aa9a3d4 100644 --- a/libcxx/include/format +++ b/libcxx/include/format @@ -55,14 +55,14 @@ namespace std { */ +// Make sure all feature tests macros are always available. +#include +// Only enable the contents of the header when libc++ was build with LIBCXX_ENABLE_INCOMPLETE_FEATURES enabled +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT) + #include <__config> #include <__format/format_error.h> #include <__format/format_parse_context.h> -#include - -#if defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT) -# error "The Format library is not supported since libc++ has been configured with LIBCXX_ENABLE_INCOMPLETE_FEATURES disabled" -#endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -81,4 +81,6 @@ _LIBCPP_END_NAMESPACE_STD _LIBCPP_POP_MACROS +#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT) + #endif // _LIBCPP_FORMAT diff --git a/libcxx/include/ranges b/libcxx/include/ranges index 47f66fd3f622c..5feaf4c322fcc 100644 --- a/libcxx/include/ranges +++ b/libcxx/include/ranges @@ -160,6 +160,11 @@ namespace std::ranges { */ +// Make sure all feature tests macros are always available. +#include +// Only enable the contents of the header when libc++ was build with LIBCXX_ENABLE_INCOMPLETE_FEATURES enabled +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) + #include <__config> #include <__ranges/access.h> #include <__ranges/all.h> @@ -181,11 +186,6 @@ namespace std::ranges { #include // Required by the standard. #include // Required by the standard. #include -#include - -#if defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) -# error "The Ranges library is not supported since libc++ has been configured with LIBCXX_ENABLE_INCOMPLETE_FEATURES disabled" -#endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header @@ -204,4 +204,6 @@ _LIBCPP_END_NAMESPACE_STD _LIBCPP_POP_MACROS +#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) + #endif // _LIBCPP_RANGES