我以前从未见过在非 void 返回函数上使用 [[ noreturn ]] 。
以下定义是否明确?
[[ noreturn ]] int function();
int function(){
while(true){/* impl */}
return 0;
}
返回类型必须是 的原因int
是因为该函数通过函数指针传递给另一个函数。
所以假设调用者看起来像这样:
//call the non-returning function
int var = (*fptr)();
//use var some way (even though the function will never actually return)
std::cout << var;
这会表现出任何未定义的行为吗?