这个C ++ 11语法是什么意思?
[[ noreturn ]] void f () {
throw "error";
}
C ++标准工作草案n3797指出,
如果该函数的任何声明指定了noreturn属性,则该函数的第一个声明应指定noreturn属性。如果
noreturn
在一个翻译单元中声明了带有属性的函数,而在另一翻译单元中声明了具有noreturn属性的同一个函数,则程序格式错误;无需诊断。
函数的属性是什么意思?
函数由其名称,返回类型,形式参数列表及其类型定义。这些项构成函数的“接口”:它们对函数的调用者很重要,因为它们定义了调用函数的方式。
另一方面,属性提供了一种方法,可以告诉编译器有关该函数的其他信息,而这些信息不会改变其接口。当编译器知道一个函数是
fork
)的函数,或者编译器可以更好地优化代码,并提供其他警告/使不必要的警告静音。
例如,如果您写
main() {
f();
g();
}
并f()
标记为noreturn
,编译器将发出有关g()
无法访问的警告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句