如何用`[[likely]]`注释三元表达式?

Vog*_*ang 9 c++ c++20

在 C++20 中,有没有办法用[[likely]]/注释三元表达式[[unlikely]]以提示编译器两种结果中的哪一种更有可能?

以下语法似乎不起作用

condition ? [[likely]] function1() : function2()
Run Code Online (Sandbox Code Playgroud)

是否有不同的语法来注释三元表达式?或者我必须使用一个if代替?

eer*_*ika 7

是否有不同的语法来注释三元表达式?

不,无法使用 [[likely]] 属性注释三元条件表达式。

或者我必须使用 if 来代替?

是的。或者,您可以省略该属性。


就其价值而言,可以使用 GNU 扩展:

__builtin_expect(!!condition, 1) ? function1() : function2()
Run Code Online (Sandbox Code Playgroud)