我对函数声明中 [[]] 属性的位置感到有点困惑。
此网站(http://en.cppreference.com/w/cpp/language/function)表示将属性放在最后..
引用:
noptr-declarator(parameter-list)cv(可选)ref(可选) 除(可选)attr(可选)
但是对于功能定义,请将属性放在前面..
引用:
attr(可选)decl-specifier-seq(可选)声明符 virt-specifier-seq(可选)函数体
如果我忽略声明的建议,并在前面放置属性(根据定义),那么编译器提示更有意义(它警告我的函数 返回)。
这就是我的尝试:
//警告:'noreturn'函数确实返回[默认启用]
[[noreturn]] void no_return();
// [[不返回的]
void no_return(){};
感谢任何帮助,更好地理解这一点,谢谢。