【发布时间】:2018-04-11 12:14:07
【问题描述】:
我希望每个函数都执行两次。参数在数组中,所以它是这样的:
fun1(A[0]);
fun1(A[1]);
fun2(A[0]);
fun2(A[1]);
fun3(A[0]);
fun3(A[1]);
有没有办法自动完成?我无法使用
for(int i=0; i<2; i++)
因为它会是:
fun1(A[0]);
fun2(A[0]);
fun3(A[0]);
fun1(A[1]);
fun2(A[1]);
fun3(A[1]);
在这种情况下,顺序很重要。
【问题讨论】:
-
不,无法自动执行此操作。但也许你的代码需要重构。
-
你喜欢哪种语法?
foo({&fun1, &fun2, &fun3}, {A[0], A[1]});之类的东西? -
for (auto f : {&func1, &func2, &func3}) { for (auto& a : {A[0], A[1]}) { f(a); } }? -
函数的签名是否相同?
-
@MichaelWalz 隐式转换可能正在发生。