C++20可以通过[[likely]]和[[unlikely]]告诉编译器,绝大部分情况会进入哪个case,很少情况会进入哪个case,从而帮助编译器进行优化:
- #include
- 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)<
- return 0;
- }