| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #if defined(_MSC_VER) // MSVC |
| |
|
| | |
| | #define CUB_MACRO_CHECK_IMPL(msg) \ |
| | \ |
| | __pragma(message(__FILE__ ":" CUB_MACRO_CHECK_IMPL0(__LINE__) \ |
| | ": error: " #msg)) \ |
| | \ |
| | static_assert(false, #msg); |
| | #define CUB_MACRO_CHECK_IMPL0(x) CUB_MACRO_CHECK_IMPL1(x) |
| | #define CUB_MACRO_CHECK_IMPL1(x) #x |
| |
|
| | #elif defined(__clang__) || defined(__GNUC__) |
| |
|
| | |
| | #define CUB_MACRO_CHECK_IMPL(msg) CUB_MACRO_CHECK_IMPL0(GCC error #msg) |
| | #define CUB_MACRO_CHECK_IMPL0(expr) _Pragma(#expr) |
| |
|
| | #endif |
| |
|
| | |
| | #define CUB_MACRO_CHECK(MACRO, HEADER) \ |
| | CUB_MACRO_CHECK_IMPL(Identifier MACRO should not be used from CUB \ |
| | headers due to conflicts with HEADER macros.) |
| |
|
| | |
| | #define I CUB_MACRO_CHECK('I', complex.h) |
| |
|
| | |
| | #define small CUB_MACRO_CHECK('small', windows.h) |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | #define B0 CUB_MACRO_CHECK("B0", termios.h) |
| |
|
| | #include <cub/${header}> |
| |
|
| | #if defined(CUB_DISABLE_BF16_SUPPORT) |
| | #if defined(__CUDA_BF16_TYPES_EXIST__) |
| | #error CUB should not include cuda_bf16.h when BF16 support is disabled |
| | #endif |
| | #endif |
| |
|