【发布时间】:2019-11-27 09:08:10
【问题描述】:
初步信息:根据最近的ISO C++ Committee Trip Report,[[ unlikely ]] 条件分支的[[ likely ]] 和[[ unlikely ]] 属性将被添加到C++20 并且在最新版本的 GNU GCC 中可用(您可以在在线编译器wandbox.org)。
问题:是下面的构造
if (cond) [[ likely ]] { ... }
相当于下面的一个?
if (__builtin_expect(bool(cond), 1)) { ... }
为了有效地使用不同的编译器,是否有任何性能差异或实现上的细微差别?
【问题讨论】:
标签: c++ c++20 branch-prediction