我在频繁使用的 if 上使用[[likely]]/ 。[[unlikely]]我最近有一个循环,其中条件很少满足,即循环很少进入或重复。
是否可以[[unlikely]]循环播放?在 en.cppreference.com 上我没有找到任何相关内容。
是的。cppreference 上甚至有一个例子:
constexpr double cos(double x) noexcept {
constexpr long long precision{16LL};
double y{};
for (auto n{0LL}; n < precision; n += 2LL) [[likely]]
y += pow(x, n) / (n & 2LL ? -fact(n) : fact(n));
return y;
}
Run Code Online (Sandbox Code Playgroud)
您将该属性应用于循环体的开头。