阿神2017-04-17 15:38:26
C 11
님의 attribute specifier sequence
( http://en.cppreference.com/w/... )
[[noreturn]]
에 대한 공식적인 설명은
함수가 반환되지 않음을 나타냅니다.
이 속성은 함수 선언에만 적용됩니다. 이 속성이 있는 함수가 실제로 반환되는 경우에는 동작이 정의되지 않습니다.
specifier
은 指示函数永不返回
에 사용되며,
은 컴파일러가 编译优化
(예: 꼬리 재귀 등)을 수행하는 데 도움이 되며,
은 抑制编译器给出不必要的警告
(예: int f(); f();
, [[noreturn]]
을 추가하지 않으면 컴파일러는 f()
의 반환 값이 무시된다는 경고를 표시합니다)
그러나 함수에 반환 값이 있고 [[noreturn]]
을 지정하면 이는 정의되지 않은 동작입니다