[dcl.attr.noreturn]可以用来标记一个函数不返回任何值。
[[ noreturn ]] void f() {
throw "error";
}
[[noreturn]]是函数标识/签名的一部分吗?在编译时能否检测到函数是否为[[noreturn]]呢?
例如,
static_assert(is_noreturn(f));
如果不是这样的话,我应该采用一个约定并定义一个标签结构吗?
struct noreturn_{noreturn_()=delete;};
...
[[noreturn]] noreturn_ f(){throw "error";}