Problem mit std::function
-
Hallo,
ich habe zwei Klassen, die etwa so aussehen:class A { public: A(std::function<void()> func) : function(func) {}; private: std::function<void()> function; } class B { public: void MyFunc(){}; B () : a(&MyFunc) {}; private: A a; }Nun bekomm ich immer den Fehler
error C2064: Ausdruck ergibt keine Funktion, die 0 Argumente übernimmtIrgendwo habe ich mal gelesen, da Funktion in Klassen automatisch immer noch den this Zeiger als Argument haben, und deshalb sowas nicht funktioniert.
Auch habe ich gelesen, dass man sowas mitstd::bind()beheben kann, jedoch habe ich jetyt keine Ahnung wie das bei einer Argumentlosen Funktion gehen soll.
-
B() : a(std::bind(&B::MyFunc, this)) {}