[[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とはいわないらしい。
まだ、理解が浅いので、わかったら追記する。
コメントを残す