C++(20):通过[[likely]]和[[unlikely]]优化编译switch

C++20可以通过\[likely]和\[unlikely]告诉编译器,绝大部分情况会进入哪个case,很少情况会进入哪个case,从而帮助编译器进行优化:

cpp 复制代码
#include <iostream>
using namespace std;

int f(int a)
{
	int ret = 0;
	switch(a)
	{
	[[likely]] case 0:
		break;
	[[unlikely]] case 1:
		ret = 1;
		break;
	}
	return ret;
}

int main()
{
    cout<<f(0)<<endl;
    return 0;
}
相关推荐
Frank学习路上3 小时前
【C++】面试:关键字与语法特性
c++·面试
Irissgwe4 小时前
数据结构-栈和队列
数据结构·c++·c·栈和队列
点云侠4 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法
.道阻且长.5 小时前
C++ string 操作指南:接口解析
java·c语言·开发语言·c++
laplaya5 小时前
使用 vcpkg 管理 C++ 项目中的依赖
开发语言·c++
blueman88887 小时前
VS2022 切换定义(F12 / Go to Definition)反应慢
c++·visual studio
凡人叶枫7 小时前
Effective C++ 条款35:考虑 virtual 函数以外的其他选择
java·c++·spring
郝学胜-神的一滴7 小时前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake
桀人7 小时前
C++——string类的详细介绍
开发语言·c++
插件开发8 小时前
vs2015 cuda c++ cdpSimplePrint范例,递归功能实现演示
linux·c++·算法