2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Improve check for incomplete <execution> header

All versions of libc++ currently include a useless <execution> header by
default, not just the version shipped with Apple Clang. For example, IBM
Open XL C/C++ 17.1.3 on AIX is affected as well.
This commit is contained in:
Moritz Baumann
2025-12-09 11:26:41 +01:00
parent 9eba9d7e87
commit 9267c0ae49

View File

@@ -84,6 +84,8 @@
#else // Things from boost/config that are required, and easy to replicate
#include <version>
#define BOOST_MATH_PREVENT_MACRO_SUBSTITUTION
#define BOOST_MATH_NO_REAL_CONCEPT_TESTS
#define BOOST_MATH_NO_DISTRIBUTION_CONCEPT_TESTS
@@ -102,9 +104,9 @@
#if ((__cplusplus > 201700L) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700L)))
#define BOOST_MATH_IF_CONSTEXPR if constexpr
// Clang on mac provides the execution header with none of the functionality. TODO: Check back on this
// libc++ currently provides the execution header with none of the functionality.
// https://en.cppreference.com/w/cpp/compiler_support "Standardization of Parallelism TS"
# if !__has_include(<execution>) || (defined(__APPLE__) && defined(__clang__))
# if !__has_include(<execution>) || !defined(__cpp_lib_execution) || (__cpp_lib_execution < 201603L)
# define BOOST_MATH_NO_CXX17_HDR_EXECUTION
# endif
#else