boost::bind : memberfunktion an objekt binden und funktionspointer zurückgeben
-
Servus,
ich möchte aus einer Memberfunktion eine "freie" Funktion machen und in einem funktionspointer speichern. Folgender minimalcode:
class Foo { public: float bar(float, float, int, void*) {// mach was;} void setup() { float (*mycallback)(float,float,int, void*); mycallback = boost::bind(&Foo::bar,this); } }kompiliert nicht mit folgender Meldung
error: cannot convert ‘boost::_bi::bind_t<float (&)(float, float, int, void*), boost::_mfi::dm<float ()(float, float, int, void*), Foo>, boost::_bi::list1<boost::_bi::value<Foo*> > >’ to ‘float (*)(float, float, int, void*)’ in assignmentWas läuft hier falsch?
-
Ganz einfach: du hast bind nicht verstanden.
Bind spuckt dir einen Funktor aus, ein Funktionszeiger wird da nimmer draus.