我正在设置一个成员函数作为我正在使用的 C 库的回调。C 库像这样设置回调:
typedef int (*functionPointer_t)(myType1_t*, myType2_t*, myType3_t*);
setCallback(param1, param2, functionPointer, param4)
我想使用 boost::bind (如果可能的话)来传递函数指针。我希望指向的函数是实例化类的成员,而不是静态成员。例如
Class A {
public:
A();
protected:
int myCallback(myType1_t*, myType2_t*, myType3_t*); //aka functionPointer_t
}
这可以使用 boost::bind 和 boost::function 来完成吗?Per如何将类成员函数作为回调传递?(第三个答案)看来我可以声明以下内容(某处,或作为 typedef):
boost::function<int (A*, myType1_t*, myType2_t*, myType3*> myCallbackFunction
然后在 A(ctor)中的某个地方调用该类型的 boost::bind,并将其传递给 C-library 调用。
这是可能的,还是我不在基地?非常感谢。