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;
}
相关推荐
KiefaC6 小时前
【C++11】包装器及其应用
开发语言·c++
福楠7 小时前
C++ STL | vector
开发语言·c++·算法
阿猿收手吧!8 小时前
【C++】JSON核心数据结构解析及JSONCPP使用
数据结构·c++·json
报错小能手8 小时前
线程池学习(二)线程池详解
c++·线程池
w-w0w-w8 小时前
C++泛型编程
开发语言·c++·算法
-西门吹雪8 小时前
C++线程之内存模型
c++
梵尔纳多8 小时前
绘制一个三角形
c++·图形渲染·opengl
汉克老师9 小时前
GESP2025年12月认证C++六级真题与解析(单选题8-15)
c++·算法·二叉树·动态规划·哈夫曼编码·gesp6级·gesp六级
郝学胜-神的一滴9 小时前
线程同步:并行世界的秩序守护者
java·linux·开发语言·c++·程序人生
im_AMBER9 小时前
Leetcode 95 分割链表
数据结构·c++·笔记·学习·算法·leetcode·链表