有没有任何写法如果作为c ++中的函数? 我不确定我的问题是否正确。
int sum(int a, int b)
int total;
total = a + b;
return total;
所以这是sum函数,我怎么能以这种方式写出来?
答案 0 :(得分:1)
那样的东西?
void if_else(bool cond, std::function<void()> if_, std::function<void()> else_) {
cond ? if_() : else_();
}
即使到了三元运算符的形式仍然存在if / else语句......
这可能是另一种解决方案:
void if_else(bool cond, std::function<void()> if_, std::function<void()> else_) {
(cond && ([&]() { if_(); return true; })()) || else_();
}
我不确定第二个,主要是因为函数的定义立即执行,但我想这个想法很清楚。