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;
}
相关推荐
抓饼先生26 分钟前
iceoryx编译和验证
linux·c++·零拷贝·iceoryx
王老师青少年编程33 分钟前
2020年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第2题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
你的冰西瓜1 小时前
C++ STL算法——排序和相关操作
开发语言·c++·算法·stl
今儿敲了吗2 小时前
29| 高考志愿
c++·笔记·学习·算法
浅念-2 小时前
C++ 模板进阶
开发语言·数据结构·c++·经验分享·笔记·学习·模版
紫陌涵光3 小时前
77. 组合
c++·算法·leetcode·深度优先
肆忆_5 小时前
Day 04|线程安全引用计数:让 SharedPtr 支持并发拷贝/析构
c++
三水彡彡彡彡5 小时前
C++拷贝函数:const与引用的高效实践
开发语言·c++
D_evil__6 小时前
【Effective Modern C++】第七章 并发API:35. 优先考虑基于任务的编程而非基于线程的编程
c++