C++(23):unreachable
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