diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 52b23d9d..cad37487 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -257,8 +257,10 @@ #endif #if !__has_feature(__cxx_decltype_auto__) +#if (__clang_major__ > 3) # define BOOST_NO_CXX14_DECLTYPE_AUTO #endif +#endif #if !__has_feature(__cxx_aggregate_nsdmi__) # define BOOST_NO_CXX14_AGGREGATE_NSDMI diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index e5e5c349..0181369c 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -106,7 +106,7 @@ #define BOOST_NO_CXX17_ITERATOR_TRAITS #define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result) -#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +#if ((_LIBCPP_VERSION <= 1101) || (_LIBCPP_VERSION == 7000)) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) // This is a bit of a sledgehammer, because really it's just libc++abi that has no // support for thread_local, leading to linker errors such as // "undefined reference to `__cxa_thread_atexit'". It is fixed in the diff --git a/test/boost_no_unicode_literals.ipp b/test/boost_no_unicode_literals.ipp index bbf865ec..84721c52 100644 --- a/test/boost_no_unicode_literals.ipp +++ b/test/boost_no_unicode_literals.ipp @@ -17,7 +17,7 @@ void quiet_warning(const CharT*){} int test() { -#ifdef _­_­cpp_­char8_­t +#ifdef __cpp_char8_type // The change to char8_t in C++20 is a breaking change to the std: const char8_t* c8 = u8""; #else