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;
}
相关推荐
来一碗刘肉面2 小时前
队列的链式实现
数据结构·c++·算法·链表
naturerun2 小时前
逐步插入回路法构造欧拉回路的算法
c++·算法
LJHclasstore_luo4 小时前
【C++题解】112354.平行时空
数据结构·c++·算法
YYYing.5 小时前
【C++大型项目之高性能服务器框架 (九) 】协议抽象与Http服务器模块
服务器·c++·http·高性能·c/c++·后端框架
ch0sen1pm5 小时前
不太懂 atomic?我花了一下午从 freelist 写到 CAS 无锁栈
c++
红豆诗人6 小时前
C++ string 和 vector 基础:从常用接口到模拟实现
c++·stl
良木生香6 小时前
【C++初阶】STL—— Stack & Queue 从入门到精通:容器适配器、迭代器与经典面试题
java·开发语言·c++·算法·zookeeper
小小晓.6 小时前
C++小白记:vector
开发语言·c++·算法
脱胎换骨-军哥6 小时前
C++ 嵌入式编程实例:从寄存器操作到底层驱动开发
开发语言·c++·驱动开发
鱼子星_7 小时前
【C++】vector
开发语言·c++·笔记·stl