| | |
| | |
| | |
| |
|
| | |
| | #define THRUST_CPP11_REQUIRED_NO_ERROR |
| | #define THRUST_CPP14_REQUIRED_NO_ERROR |
| | #define THRUST_MODERN_GCC_REQUIRED_NO_ERROR |
| |
|
| | #ifndef THRUST_IGNORE_MACRO_CHECKS |
| |
|
| | |
| | |
| | |
| | |
| | #define THRUST_MACRO_CHECK(MACRO, HEADER) \ |
| | THRUST_MACRO_CHECK_IMPL(Identifier MACRO should not be used from Thrust \ |
| | headers due to conflicts with HEADER macros.) |
| |
|
| | |
| | |
| | |
| | |
| | #if defined(_MSC_VER) // MSVC |
| |
|
| | |
| | #define THRUST_MACRO_CHECK_IMPL(msg) \ |
| | \ |
| | __pragma(message(__FILE__ ":" THRUST_MACRO_CHECK_IMPL0(__LINE__) \ |
| | ": error: " #msg)) \ |
| | \ |
| | static_assert(false, #msg); |
| | #define THRUST_MACRO_CHECK_IMPL0(x) THRUST_MACRO_CHECK_IMPL1(x) |
| | #define THRUST_MACRO_CHECK_IMPL1(x) #x |
| |
|
| | #elif defined(__clang__) || defined(__GNUC__) |
| |
|
| | |
| | #define THRUST_MACRO_CHECK_IMPL(msg) THRUST_MACRO_CHECK_IMPL0(GCC error #msg) |
| | #define THRUST_MACRO_CHECK_IMPL0(expr) _Pragma(#expr) |
| |
|
| | #endif |
| |
|
| | |
| | #define I THRUST_MACRO_CHECK('I', complex.h) |
| |
|
| | |
| | #define small THRUST_MACRO_CHECK('small', windows.h) |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | #define B0 THRUST_MACRO_CHECK("B0", termios.h) |
| |
|
| | #endif // THRUST_IGNORE_MACRO_CHECKS |
| |
|
| | #include <thrust/${header}> |
| |
|