C++ 在源代码端检测-mavx编译器参数

C++ 在源代码端检测-mavx编译器参数,c++,clang,avx,C++,Clang,Avx,当我使用GCC并设置命令行参数-mavx时,编译器将在源代码中自动定义\uuuuuavx\uuuuu 通过这种方式,我可以检测项目是否使用AVX指令构建,如果没有,则返回到另一个代码路径 有没有办法用叮当声做同样的事情 谢谢, Christophe正确的测试是在\uuuu AVX\uuuu上,它与clang和gcc一样有效。它甚至可以与Visual Studio一起使用…llvm/tools/lib/Basic/Targets.cpp中的源代码: switch (SSELevel) { ....

当我使用GCC并设置命令行参数-mavx时,编译器将在源代码中自动定义
\uuuuuavx\uuuuu

通过这种方式,我可以检测项目是否使用AVX指令构建,如果没有,则返回到另一个代码路径

有没有办法用叮当声做同样的事情

谢谢,
Christophe

正确的测试是在
\uuuu AVX\uuuu
上,它与clang和gcc一样有效。它甚至可以与Visual Studio一起使用…

llvm/tools/lib/Basic/Targets.cpp中的源代码:

switch (SSELevel) {
....
  case AVX:
    Builder.defineMacro("__AVX__");
...

用Visual C++定义的是<代码> AVXG<<代码>不是<代码>p> 我实际上是在检查

\uuuu AVX\uuuu
,但没有成功。我的项目生成器(CMake)在正确设置使用AVX的标志时可能遇到问题

编辑:更正,是两个下划线,不是一个,我错了! 因此,是的,
\uuuuu AVX\uuuuu
正在为VC、GCC和Clang工作\o/

谢谢! 克里斯托夫