[[fallthrough]]属性は、case文に1行も処理を書いていない部分だと意味はない。
switch(param){
case 0:
a = b;
break;
case 1:
[[fallthrough]] // case文に処理が1行も書かれていないので、コンパイラによって無視されるの意味なし。
default:
b = c;
break;
}
switch(param){
case 0:
a = b;
break;
case 1:
a = c;
[[fallthrough]] // こういう形ならbreak文を設定していないのは意図的という意味がある。
default:
b = c;
break;
}
fallthrough属性は、2つのケース文をつなげるという意味があるので、何も書いていないケース文はfallthroughとはいわないらしい。
まだ、理解が浅いので、わかったら追記する。
コメントを残す