【问题标题】:Is [[unlikely]] possible with loops?[[unlikely]] 可以用循环吗?
【发布时间】:2022-11-22 00:27:49
【问题描述】:

我在经常使用的 ifs 上使用 [[likely]] / [[unlikely]]。我最近有一个很少满足条件的循环,即很少进入或重复循环。
是否可以在循环中使用[[unlikely]]?在 en.cppreference.com 上,我什么也没找到。

【问题讨论】:

  • 您可以使用 if 语句重写循环

标签: c++ c++20


【解决方案1】:

是的。甚至还有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;
}

您将该属性应用于循环体的开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多