我目前正在从事一个项目,但遇到以下问题。
我有一个C ++方法,希望以两种不同的方式工作:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
而且我不想重复我的代码,因为实际功能要长得多。问题是在任何情况下都不能在调用MyFunction而不是MyFunctionWithABonus时增加程序的执行时间。这就是为什么我不能只具有通过C ++比较检查的布尔参数。
我的想法是使用C ++模板虚拟地复制我的代码,但是我无法想到一种无需额外执行时间且无需复制代码的方法。
我不是模板专家,所以我可能会缺少一些东西。
你们有什么主意吗?还是在C ++ 11中这是不可能的?