bool flag
同じタスクを最初にtrue、2番目にfalseで2回実行したいと思います。それを行うためのエレガントな方法はありますか(おそらくループを使用して)?
私の考えは次のようなことをすることでしたが、これはあまりにも複雑です。
bool flag = true;
for(int i = 0; i < 2; ++i, flag = !flag)
{
// ...
}
bool flag
同じタスクを最初にtrue、2番目にfalseで2回実行したいと思います。それを行うためのエレガントな方法はありますか(おそらくループを使用して)?
私の考えは次のようなことをすることでしたが、これはあまりにも複雑です。
bool flag = true;
for(int i = 0; i < 2; ++i, flag = !flag)
{
// ...
}
Thomasの回答で関数に多くのパラメーターを渡す必要があると言ったので、ラムダを考えてみましょう。
int param1;
bool param2;
...
auto doWork = [&](bool flag){ //<- capture all local variables by reference
... do work with params ...
};
doWork(true);
doWork(false);
このようにして、作業コードをカプセル化し、面倒なパラメーターを渡す必要がなく、コードを2回呼び出していることを明確にできます。