从 void 函数返回另一个 void 函数在 C++ 中是否合法?

时间:2021-03-08 05:35:05

标签: c++ recursion

C 标准 prohibit 这个。但我不确定 C++ 标准对此有何评论。

#include <iostream>

void bar() {
    std::cout << "From Bar" << "\n";
}

void foo() {
    std::cout << "From Foo" << "\n";
    
    return bar();
}

int main()
{
    foo();
    
    return 0;
}

程序编译并运行良好。我喜欢return bar();的风格而不是bar(); return;

这在 C++11 中合法吗?

下面的答案提到它在最新草案中是合法的。

1 个答案:

答案 0 :(得分:4)

是的,这在 C++ 中是允许的。标准说(引自最新草案):

<块引用>

[stmt.return]

... 操作数为 void 类型的 return 语句只能用在返回类型为 cv void 的函数中。 ...