Hoo*_*och 1 c++ conditional shortest-path conditional-statements
如果有阻止那样的话
if(foo() || foo2() || foo3())
{
//do some things
}
Run Code Online (Sandbox Code Playgroud)
我只需要一个foo函数来返回true来执行该代码.但我必须打电话给所有人.当第一个foo返回true时问题开始.这样就不会调用其余的foos(foo2和foo3)了.
我知道我可以这样做:
bool foo1 = foo1();
bool foo2 = foo2();
bool foo3 = foo3();
if(foo1 || foo2 || foo3) {}
Run Code Online (Sandbox Code Playgroud)
但我有18个foo函数,这是我的代码的一小部分.有什么技巧可以简单易行吗?
该||运营商短路.你可以|改用:
if (foo1() | foo2() | foo3()) {}
Run Code Online (Sandbox Code Playgroud)
但是你也应该考虑创建一个函数指针数组并在循环中调用它们.
这是我的代码的一小部分
您应该重构代码,以便可以重用它,而不是在许多地方复制和粘贴相同的代码.