走同样的路,发现不同的人生
这是C++11的attribute specifier sequence( http://en.cppreference.com/w/... )
C++11
attribute specifier sequence
关于[[noreturn]],官方解释是
[[noreturn]]
Indicates that the function does not return. This attribute applies to function declarations only. The behavior is undefined if the function with this attribute actually returns.
该specifier用来指示函数永不返回,有助于编译器进行编译优化(如尾递归等),也可以用于抑制编译器给出不必要的警告(如int f(); f();,不加[[noreturn]]的话,编译器会警告f()的返回值被忽略)
specifier
指示函数永不返回
编译优化
抑制编译器给出不必要的警告
int f(); f();
f()
但是,若函数的确有返回值,而你却指定[[noreturn]]的话,这就是未定义行为了
这是
C++11
的attribute specifier sequence
( http://en.cppreference.com/w/... )关于
[[noreturn]]
,官方解释是该
specifier
用来指示函数永不返回
,有助于编译器进行
编译优化
(如尾递归等),也可以用于
抑制编译器给出不必要的警告
(如int f(); f();
,不加[[noreturn]]
的话,编译器会警告f()
的返回值被忽略)但是,若函数的确有返回值,而你却指定
[[noreturn]]
的话,这就是未定义行为了