我目前正在一个项目上,我有以下问题。使用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