Я работаю над настройкой функции-члена в качестве обратного вызова для 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? На Как я могу передать функцию-член класса в качестве обратного вызова? (3-й ответ) кажется, что я мог бы объявить следующее (где-нибудь, или как typedef):
boost::function<int (A*, myType1_t*, myType2_t*, myType3*> myCallbackFunction
И затем где-нибудь в A (ctor) вызову boost :: bind для этого типа и передать его в вызов C-библиотеки.
Это возможно, или я с базы? Большое спасибо.