다음 코드에서는 [[fallthrough]]
C ++ 1z 의 표준 속성을 사용하여 폴스 루가 필요함을 문서화합니다.
#include <iostream>
int main() {
switch (0) {
case 0:
std::cout << "a\n";
[[fallthrough]]
case 1:
std::cout << "b\n";
break;
}
}
GCC 7.1에서는 코드가 오류없이 컴파일됩니다. 그러나 컴파일러는 여전히 오류에 대해 경고합니다.
warning: this statement may fall through [-Wimplicit-fallthrough=]
std::cout << "a\n";
~~~~~~~~~~^~~~~~~~
왜?