| /* | |
| * Detect used C++ Standard Library | |
| * | |
| * This file is compiled and run via try_run in download_test_data.cmake. | |
| */ | |
| #include <cstdio> | |
| // see https://en.cppreference.com/w/cpp/header/ciso646 | |
| #if __cplusplus >= 202002L | |
| #include <version> | |
| #else | |
| #include <ciso646> | |
| #endif | |
| int main() | |
| { | |
| #if defined(_LIBCPP_VERSION) | |
| std::printf("LLVM C++ Standard Library (libc++), _LIBCPP_VERSION=%d", _LIBCPP_VERSION); | |
| #elif defined(__GLIBCXX__) | |
| std::printf("GNU C++ Standard Library (libstdc++), __GLIBCXX__=%d", __GLIBCXX__); | |
| #elif defined(_MSVC_STL_VERSION) | |
| std::printf("Microsoft C++ Standard Library (MSVC STL), _MSVC_STL_VERSION=%d", _MSVC_STL_VERSION); | |
| #elif defined(_LIBCUDACXX_VERSION) | |
| std::printf("NVIDIA C++ Standard Library (libcudacxx), _LIBCUDACXX_VERSION=%d", _LIBCUDACXX_VERSION); | |
| #elif defined(EASTL_VERSION) | |
| std::printf("Electronic Arts Standard Template Library (EASTL), EASTL_VERSION=%d", EASTL_VERSION); | |
| #else | |
| std::printf("unknown"); | |
| #endif | |
| } |