有没有更C++优雅的实现来完成函数跳转?

kom*_*ang 4 c++ design-patterns c++17

在我的日常工作中,我的代码通常是这样写的吗?

int ret = 0;
ret = func1();
if(ret != 0) {
  return ret;
}
ret = func2();
if(ret != 0) {
  return ret;
}
Run Code Online (Sandbox Code Playgroud)

但这意味着我需要完成很多“if(ret!=0){return ret;}”,有没有更C++优雅的实现来完成函数跳转?顺便说一下,我们不允许使用异常。

Sam*_*hik 5

显示的代码似乎在逻辑上等同于:

int ret;

if ((ret=func1()) || (ret=func2()))
    return ret;
Run Code Online (Sandbox Code Playgroud)

以显而易见的方式,根据需要添加尽可能多的附加函数调用。