본문 바로가기

프로그래밍

[[fallthrough]];

int main()
{
    int n = 5;
    switch (n)
    {
    case 1:
        a();
        break;
    case 2:
        b();
        d();
        [[fallthrough]]; // I meant to do this!
    case 3:
        c();
        break;
    default:
        d();
        break;
    }
    return 0;
}

 

다음 케이스 구문을 실행하고자 할 때 사용함

  • c++ 17에서 사용 가능함
  • 다음 case/default 바로 직전에 사용
  • 마지막 case/default 사용 불가
  • break 와 같이 사용 불가

c++은 이미 switch문에서 break를 생략하면서 fallthrough 를 사용 가능하지만 명시적으로 컴파일러에게 알려주는 컴파일 경고를 제거함

(실수인지 의도한 부분인지 명확해짐)