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;
}
相关推荐
cui_ruicheng10 分钟前
C++ 继承(下):多继承、菱形继承与虚继承
开发语言·c++
wangjialelele16 分钟前
万字整理计算机网络知识点
linux·c语言·网络·c++·计算机网络·php
草莓熊Lotso17 分钟前
Qt文件操作:QFile读写全解析
运维·开发语言·c++·人工智能·qt
D_evil__23 分钟前
【Effective Modern C++】第六章 lambda表达式:34. 考虑lambda而非bind
c++
水木姚姚28 分钟前
string类(C++)
开发语言·c++·windows·vscode·开发工具
方便面不加香菜29 分钟前
C++ 类和对象(一)
开发语言·c++
浅念-35 分钟前
C++ STL list 容器
开发语言·数据结构·c++·经验分享·笔记·算法·list
WW_千谷山4_sch1 小时前
MYOJ_7788:(洛谷P3387)【模板】缩点(有关强连通分量)
c++·算法·深度优先·动态规划·图论·拓扑学
枫叶丹41 小时前
【Qt开发】Qt界面优化(六)-> Qt样式表(QSS) 伪类选择器
c语言·开发语言·c++·qt
0 0 01 小时前
CCF-CSP 34-2 矩阵重塑(其二)(reshape2)【C++】考点:矩阵转置模拟
开发语言·c++·算法·矩阵