私は現在プロジェクトに取り組んでおり、次の問題があります。
私は2つの異なる方法で働きたいC ++メソッドを持っています:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
実際の関数ははるかに長いので、コードを複製したくありません。問題は、MyFunctionWithABonusの代わりにMyFunctionが呼び出されたときに、いかなる状況でもプログラムに実行時間を追加してはならないということです。そのため、C ++の比較でチェックするブールパラメータだけを使用することはできません。
私の考えは、C ++テンプレートを使用してコードを仮想的に複製することでしたが、追加の実行時間がなく、コードを複製する必要がない方法を考えることはできません。
私はテンプレートの専門家ではないので、何かが足りないかもしれません。
誰かアイデアがありますか?それとも、C ++ 11ではそれは不可能ですか?