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;
}
相关推荐
啦啦啦!11 小时前
c++AI大模型接入SDK项目
开发语言·数据结构·c++·人工智能·算法
cmpxr_11 小时前
【C】隐式类型转换
c语言·c++·算法
大江东去浪淘尽千古风流人物12 小时前
【Basalt】nfr_mapper 中的“小 SfM/BA 后端”
c++·人工智能·计算机视觉·oracle·augmented reality
Magic--12 小时前
C++ STL中vector与list的核心区别
c++·windows·list
初願致夕霞12 小时前
Linux_线程
linux·运维·服务器·c++
2401_8920709812 小时前
【Linux C++ 后端实战】异步日志系统 AsyncLogging 完整设计与源码解析
linux·c++·高并发·异步日志
梓䈑12 小时前
gtest实战入门:从安装到TEST宏的单元测试指南
c++·单元测试
郝学胜-神的一滴12 小时前
墨韵技术|CMake:现代项目构建的「行云流水」之道
c++·程序人生·软件工程·软件构建·cmake
雪域迷影12 小时前
Hazel游戏引擎结构分析
c++·游戏引擎·hazel
“愿你如星辰如月”12 小时前
从零构建高性能 Reactor 服务器:
linux·服务器·c++·websocket·tcp/ip