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;
}