C++回调函数,什么都不做

Dro*_*ped 0 c++ callback

我有这样的代码

typedef void(_stdcall * MyProcessor)(int, int);

void FunctionProcess (MyProcessor process){
    MyProcessor myCallback;
    myCallback = (process != NULL)? process:"<functionThatDoesNothing>";
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果参数中没有任何回调函数,我想给myCallback分配一些函数,它不会做任何事情(或者什么东西),因为之后,我在循环中调用这个函数(我会喜欢避免因为管道冲洗而在循环中使用'if'.我尝试了一个没有成功的无操作lambda(不兼容).

有这样的功能吗?还有其他可能性吗?谢谢.

Dav*_*rtz 5

你的逻辑是疯了!如果if正确预测它将几乎是免费的.如果间接跳跃被错误预测,那将是可怕的.一个if更容易比间接跳转预测(只有两种可能,推测执行是可能的,也有在大多数CPU的多个预测时隙).因此,几乎没有可能的情况,这是有道理的.