c++ - 如何在 if-else 语句中使用 C++20 的可能/不太可能属性
问题描述
这个问题是关于 C++20 的[[likely]]
/[[unlikely]]
特性,而不是编译器定义的宏。
本文档 ( cppreference ) 仅给出了将它们应用于 switch-case 语句的示例。这个 switch-case 示例与我的编译器 (g++-7.2) 完美编译,所以我假设编译器已经实现了这个特性,尽管它还没有在当前的 C++ 标准中正式引入。
但是当我像这样使用它们时:if (condition) [[likely]] { ... } else { ... }
,我收到了一个警告:
“警告:语句开头的属性被忽略 [-Wattributes]”。
那么我应该如何在 if-else 语句中使用这些属性呢?
解决方案
根据Jacksonville'18 ISO C++ Report中的示例,语法是正确的,但似乎尚未实现:
if (a>b) [[likely]] {
推荐阅读
- azure-web-app-service - 什么 Rbac 操作/权限将允许 Azure 应用服务网络访问限制
- apache-spark - spark RangeBetween 如何与降序一起使用?
- python - 用 BS 美化的 Python 正则表达式替换缩进 HTML 的问题
- javascript - Issues accessing Array for a column chart in Javascript
- c++ - 从函数参数复制整数数组 [C++]
- node.js - nodejs 或 express 如何在 Angular 框架中工作?
- jquery - 如何在 Bootstrap v4 中制作两个相邻的带有垂直按钮的表格
- python - 在 Azure 上按计划执行 Python 脚本
- python - 通过 () 之间的文本拆分 pandas 数据框句子
- html - 每 x% 生成更多行时,CSS 渐变开始褪色