[[fallthrough]]属性用于提示编译器,当某个case没有对应的break时,其行为是有意为之,不用对此予以告警:
#include <iostream>
using namespace std;
int main()
{
int i = 0;
switch(i)
{
case 0:
cout<<"is 0"<<endl; //case穿透时,没有[[fallthrough]]属性,编译器会对此进行告警
case 1:
cout<<"is 1"<<endl;
[[fallthrough]]; //case穿透时,有[[fallthrough]]属性,编译器不会对此进行告警
case 2:
cout<<"is 2"<<endl;
break;
}
return 0;
}