C++23在头文件 "><utility>
定义了std::unreachable(),用于指示编译器,该段代码不应该被允许,因此编译器可以对该位置进行优化,如果一旦允许了该位置的代码,行为未定义:
#include <utility>
#include <iostream>using namespace std;int func(int data)
{switch (data){case 0:data += 1;break;default:cout<<"unreachable"<<endl;std::unreachable();data += 10;}return data;
}int main()
{int r = func(0);cout<<"1 func return:"<<r<<endl;r = func(1);cout<<"2 func return:"<<r<<endl;cout