Compiler reporting value.
The spy::compiler object can be compared to any other compiler related value to verify if the code being compiled with a specific compiler.
Any compiler related value can be checked for equality or ordering for a given version. The targeted version is then specified using a compiler-dependent literal.
Additionally, any of the compiler related value are convertible to bool. They evaluates to true if they matches the correct compiler currently used.
| Name | Compiler |
spy::clang | Clang |
spy::dpcpp | Intel DPC++/ICPX |
spy::emscripten | Emscripten |
spy::gcc | G++ |
spy::intel | Intel ICC |
spy::msvc | Microsoft Visual Studio |
spy::nvcc | NVIDIA NVCC |
spy::mingw32 | MINGW32 |
spy::mingw64 | MINGW64 |
#include <iostream>
#include <spy/spy.hpp>
int main()
{
if constexpr(
spy::compiler == spy::gcc_) std::cout <<
"This code compiled with g++.\n";
else if constexpr(
spy::compiler == spy::clang_) std::cout <<
"This code compiled with clang.\n";
else if constexpr(
spy::compiler == spy::dpcpp_) std::cout <<
"This code compiled with ICPX.\n";
if constexpr(spy::gcc_) std::cout << "This code compiled with g++.\n";
else if constexpr(spy::clang_) std::cout << "This code compiled with clang.\n";
else if constexpr(spy::dpcpp_) std::cout << "This code compiled with ICPX.\n";
using namespace spy::literal;
if constexpr(
spy::compiler == 16'0_clang) std::cout <<
"This code compiled with clang 16.\n";
std::cout << "This code compiled with clang 15 or ulterior.\n";
}
constexpr compiler_type compiler
Compiler reporting value.
Definition compiler.hpp:171