gpt4 book ai didi

c++ - 检查我的头文件中的命令行选项

转载 作者:行者123 更新时间:2023-11-28 02:03:33 28 4
gpt4 key购买 nike

当且仅当程序是使用选项 -mpopcnt 编译时,我想在我的程序中使用 gcc 内置 __builtin_popcount()。

这是因为我发现当程序使用选项 -mpopcnt 编译时调用 __builtin_popcount() 实际上比自己进行 popcnt() 计算要慢。

所以我希望有一种方法可以测试预处理器中是否存在编译选项。有人知道答案吗?

最佳答案

osmith@osmith-VirtualBox:~$ diff <(g++ -E -dM test.cpp) <(g++ -E -dM -mpopcnt test.cpp)
39a40
> #define __POPCNT__ 1
osmith@osmith-VirtualBox:~$ g++ --version
g++ (Ubuntu 5.3.1-14ubuntu2.1) 5.3.1 20160413

当指定 -mpopcnt 时,Clang 还定义了 __POPCNT__

osmith@WOTSIT:~$ diff <(clang++ -E -dM test.cpp) <(clang++ -E -dM -mpopcnt test.cpp)
157a158
> #define __POPCNT__ 1
osmith@WOTSIT:~$ clang++ --version
Ubuntu clang version 3.6.0-2ubuntu1~trusty1 (tags/RELEASE_360/final) (based on LLVM 3.6.0)

关于c++ - 检查我的头文件中的命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38426478/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com