Klasse member-Funktion als callback mit boost::bind und boost::function

Ich bin arbeiten durch die Einrichtung einer member-Funktion als callback für eine C-library, die ich verwende. Die C-Bibliothek stellt Rückrufe wie diese:

typedef int (*functionPointer_t)(myType1_t*, myType2_t*, myType3_t*);

setCallback(param1, param2, functionPointer, param4)

Möchte ich die Verwendung von boost::bind (wenn möglich) zu übergeben, in der Funktion Zeiger. Ich würde es vorziehen, dass die Funktion hinwies, war ein Mitglied des instanziierten Klasse, nicht ein statisches Element. E. g.

Class A {
 public: 
  A();
 protected:
  int myCallback(myType1_t*, myType2_t*, myType3_t*); //aka functionPointer_t
}

Kann das getan werden, mit boost::bind und boost::function? Pro Wie kann ich das übergeben einer Klasse member-Funktion als callback? (die 3. Antwort) es scheint, dass ich könnte, deklarieren Sie die folgenden (irgendwo, oder eine Typdefinition):

boost::function<int (A*, myType1_t*, myType2_t*, myType3*> myCallbackFunction

Und dann irgendwo in Ein (das Tor) - Aufruf von boost::bind an, die geben, und pass es in der C-library-Aufruf zu.

Ist das möglich, oder bin ich aus der base? Vielen Dank.

InformationsquelleAutor jdt141 | 2010-01-04
Schreibe einen Kommentar