【发布时间】:2022-11-22 00:27:49
【问题描述】:
我在经常使用的 ifs 上使用 [[likely]] / [[unlikely]]。我最近有一个很少满足条件的循环,即很少进入或重复循环。
是否可以在循环中使用[[unlikely]]?在 en.cppreference.com 上,我什么也没找到。
【问题讨论】:
-
您可以使用
if语句重写循环
我在经常使用的 ifs 上使用 [[likely]] / [[unlikely]]。我最近有一个很少满足条件的循环,即很少进入或重复循环。
是否可以在循环中使用[[unlikely]]?在 en.cppreference.com 上,我什么也没找到。
【问题讨论】:
if 语句重写循环
是的。甚至还有an example of it on 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;
}
您将该属性应用于循环体的开头。
【讨论】: