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;
}
相关推荐
「QT(C++)开发工程师」2 小时前
C++ auto 用法详解
开发语言·c++
OPEN-F2 小时前
C++STL教程:容器适配器与实用工具
开发语言·c++
OPEN-F2 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。2 小时前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN2 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
kyle~4 小时前
C++_STL---迭代器失效
开发语言·c++
wuminyu5 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
rhythm-ring6 小时前
宏定义续行符 \ 的使用与踩坑
c语言·c++
江安下小雨6 小时前
muduo网络库(十六):新增连接池模块
网络·c++
「QT(C++)开发工程师」7 小时前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt