我可以返回void函数吗?

sky*_*oor 45 c++

我必须返回上一级递归.是下面的语法吗?

void f()
{
   // some code here
   //
   return;
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*der 86

是的,您可以从void函数返回.

有趣的是,您也可以从void函数返回void.例如:

void foo()
{
  return void();
}
Run Code Online (Sandbox Code Playgroud)

正如所料,这与平原相同return;.它可能看起来很深奥,但原因是模板的一致性:

template<class T>
T default_value()
{
  return T();
}
Run Code Online (Sandbox Code Playgroud)

这里,default_value返回一个类型为T的默认构造对象,由于能够返回void,它甚至在T= 时也能工作void.

  • 哦等等,所以这个构造函数有 void( void ) 签名?所以 `return void( void() )` 也是有效的。代码混淆比赛有人吗? (2认同)
  • 如果我有一个“void foo();”,并且在“void bar()”中,我“return foo()”,这是否也适用? (2认同)

Ign*_*ams 10

当然.你不应该返回一个实际值.


ick*_*fay 7

是的,您可以使用该代码从函数返回。(为了让 Stack Overflow 不说我的回答太短,这里我必须非常冗长)

  • IIRC你曾经能够用空格填充它:-) (3认同)