如何在 VS C++ 项目中使用“内置”函数 __builtin_ctzll?

Pau*_*aul 3 c++ gnu built-in bitcount

我发现__builtin_ctzll通过后Intrinsic 来计算 64 位整数中的尾随零位非常快地计算 64 位 int 的尾随零位?

我是 C++ 的初学者,不知道如何包含这个函数。

我尝试使用#include,但这没有任何意义。我发现这个“内置”来自 GNU,但我不知道如何处理这些信息。如何为我的项目准备合适的库/扩展?

Ted*_*gmo 9

对于unsigned类型,您可以使用标准/可移植 C++20 函数std::countr_zero

它会返回与 GCC 相同的内容__builtin_ctzll,但请注意:

0如果使用 时值为__builtin_ctzll,则结果未定义,而std::countr_zero(0ull)将返回整数的位数。


在 VS2022 中,您可以在菜单中找到语言设置Project\Properties\Configuration Properties\General C++ Language StandardC++14默认设置为。将其更改为C++20(或者Preview如果您也想尝试一些 C++23 功能)。