我目前正在一個項目上,我有以下問題。使用c + +重複的代碼11
我有一個C++的方法,我想在兩種不同的方式工作:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
而且我想不要重複我的代碼,因爲實際的功能是更長的時間。 問題是我不能在任何情況下調用MyFunction而不是MyFunctionWithABonus來爲程序添加執行時間。這就是爲什麼我不能只用一個C++比較來檢查布爾參數。
我的想法本來是使用C++模板來虛擬複製我的代碼,但我想不到一種做法,我沒有額外的執行時間,我不必複製代碼。
我不是模板專家,所以我可能會錯過一些東西。
你們有沒有想法?或者,這在C++ 11中是不可能的?
我可以問*爲什麼*你不能簡單地添加一個布爾檢查?如果那裏有很多代碼,那麼簡單布爾檢查的開銷就會忽略不計。 – Joris
這個函數會在性能非常重要的上下文中多次調用。基本上,doBonusStuff()方法必須在調試環境中調用,目標不是在非調試環境中添加任何運行時。 – plougue
@plougue現在分支預測非常好,直到布爾檢查通常需要執行0個處理器週期。 – Dan