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;
}
相关推荐
liulilittle1 小时前
XTCP简述
网络·c++·tcp/ip·ip·tcp·通信
一只旭宝1 小时前
预约系统版本2(基于第一版改良)
服务器·数据库·c++
被怪兽吃掉了1 小时前
5.2.1一维组数定义方式
开发语言·c++·算法
旖旎夜光2 小时前
LeetCode 69:x 的平方根(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
j7~2 小时前
【C++】《C++二叉搜索树(BST)从入门到精通:概念、实现与Key/Value模型全解析》
开发语言·c++·学习·二叉搜索树
hehelm2 小时前
仿muduo库实现高并发服务器—Channel类
linux·服务器·开发语言·网络·c++
余额瞒着我当琳2 小时前
C++ list第二讲数据结构修炼:迭代器源码 + 栈队列适配器 + LeetCode 三道高频题
数据结构·c++·list
hehelm2 小时前
仿muduo库实现高并发服务器—EventLoop
linux·服务器·网络·c++
_Narcissus_2 小时前
常见数论算法笔记
数据结构·c++·算法·高精度·数论·快速幂·质数筛
余额瞒着我当琳2 小时前
C++STL--list底层实现,迭代器分类,模拟list的迭代器封装、实现
java·开发语言·c++