我正在使用仅接受无效回调函数的API:



我想使用参数调用回调函数,而不是针对不同的输入参数编写具有相同功能的多个回调函数。
假设我需要一个像



UPDATE :更多信息:基于事件调用回调函数应类似于:



事件的数量是有限的,并且MAX是预先定义的(如果有帮助),但是我不想复制功能(实际上,在实际情况下,有多个输入值,并且为不同的函数复制函数调用)组合并非易事)

附言:我也可以使用C++ 11。有什么建议么?。

最佳答案

那这个解决方案呢?您无需手动定义新功能即可设置不同的状态。

#include <iostream>

void setState(int s) {

    std::cout << "Set state to " << s << std::endl;

}

template <int n>
void myWrapper() {
    setState(n);
}


void myLogic(void(*CALLBACK)(void)) {

    CALLBACK();
}


int main(int argc, char* argv[]) {


    myLogic(myWrapper<50>);
    myLogic(myWrapper<100>);

}

07-24 17:29
查看更多