84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
走同样的路,发现不同的人生
这是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]]
的话,这就是未定义行为了