我目前正在开展一个项目,我有以下问题.
我有一个C++方法,我想以两种不同的方式工作:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
Run Code Online (Sandbox Code Playgroud)
我不想复制我的代码,因为实际的功能要长得多.问题是,在调用MyFunction而不是MyFunctionWithABonus时,我不能在任何情况下向程序添加执行时间.这就是为什么我不能只有一个布尔参数,我用C++比较检查.
我的想法是使用C++模板来虚拟复制我的代码,但我想不出一种方法,我没有额外的执行时间,我不必复制代码.
我不是模板专家,所以我可能会遗漏一些东西.
你们有没有想法?或者这在C++ 11中是不可能的?