【发布时间】:2017-05-30 15:57:40
【问题描述】:
我刚刚在cppreference 上阅读了一些关于 C++ 中的属性的内容。他们在那里提到了可能(真实)属性,现在我想知道它有什么好处。不幸的是,我在网上找不到更多信息。
这是处理器在执行期间使用的某种分支预测吗?
【问题讨论】:
-
这正是它的本质——查看硬件分支预测
-
这只是一个仅适用于条件分支的属性的示例,它实际上并不以这种形式存在(据我所知)
-
我不确定我是否理解正确,但我只是用这种语法编译了一些代码:
[[probably(true)]] if (...) ... else ...我没有检查生成的代码,但它至少编译了(使用 msc 和 c ++14) -
@Timo 正如您链接到的 cppreference 页面所说,“实现未知的所有属性都将被忽略而不会导致错误”(该规则是为 C++17 添加的,但它只是强制执行先前的意图和实践)
-
另外,这是一个添加这些的早期提议:ctrychta.github.io/branch_hints_proposal.html - 它只是提议
[[likely]]和[[unlikely]]
标签: c++ attributes