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;
}
相关推荐
承渊政道9 分钟前
【动态规划算法】(简单多状态dp问题入门与经典题型解析)
数据结构·c++·学习·算法·leetcode·macos·动态规划
南境十里·墨染春水10 分钟前
C++笔记——STL map
开发语言·c++·笔记
南境十里·墨染春水23 分钟前
C++笔记·-- STL unordered_map
开发语言·c++·笔记
珹洺26 分钟前
C++远程调用组件库JsonRpc(一)项目背景、核心概念与环境搭建
开发语言·c++·rpc
王老师青少年编程28 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【部分背包问题】:部分背包问题
c++·算法·贪心·csp·信奥赛·部分背包问题
handler0129 分钟前
【Linux 笔记】GDB 调试速查手册
linux·运维·c语言·c++·笔记
无忧.芙桃32 分钟前
现代C++讲解之enum class,static_assert,tuple的使用
开发语言·c++
6Hzlia34 分钟前
【Hot 100 刷题计划】 LeetCode 142. 环形链表 II | C++ 哈希表直觉解法
c++·leetcode·链表
fish_xk37 分钟前
c++中的继承
开发语言·c++
Brilliantwxx43 分钟前
【算法题】日期类算法题
开发语言·c++·笔记·程序人生·算法