是否可以使用一些关键字来编译两个或多个C++函数内容的变体,这些关键字指示根据函数调用者执行的内容,而不需要为每个调用者创建多个完整函数副本?基于调用者的C++函数内容
到目前为止,解决方案一直使用函数和语句的参数来执行,具体取决于调用者。
V sol::compare(uchar start_lev, V *a , V *b){
solMutex.lock(); // not needed by all callers
for(auto lev:solVec){
switch (lev.group){
case a:
dontRemove=0;
val++; // not used by all callers
return something;
case b:
val++; //not used by all callers
return something;
case c:
etc...
}
#ifdef QT_DEBUG // not needed by all callers
如果可以编写一个函数,并添加一些关键字,所以编译其他一些变化,而不依赖于不同的来电功能的未使用部分的开销。
这就是参数的用途:函数根据函数调用做不同的事情。否则,函数无法以某种方式神奇地确定是谁调用它。 –
您是否在寻找模板?给我们一个你想写的代码的简要示例。 –
它对于程序的性能密集部分,并且会根据调用者使用4个功能改变的版本。 – Flow