这个问题是关于 C++20 的 [[likely]]
/[[unlikely]]
功能,而不是编译器定义的宏。
本文档 (cppreference) 仅给出了将它们应用于 switch-case 语句的示例。 此 switch-case 示例与我的编译器 (g++-7.2) 完美编译,因此我假设编译器已实现此功能,尽管它尚未在当前 C++ 标准中正式引入。
但是当我像这样使用它们时:if (condition) [[likely]] { ... } else { ... }
,我得到了一个警告:
"warning: attributes at the beginning of statement are ignored [-Wattributes]".
那么我应该如何在 if-else 语句中使用这些属性呢?
最佳答案
基于 Jacksonville’18 ISO C++ Report 中的示例语法是正确的,但是好像还没有实现:
if (a>b) [[likely]] {
关于c++ - 如何在 if-else 语句中使用 C++20 的可能/不太可能属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51797959/