Oto kod:std :: funkcja -> funkcja wskaźnik
#include <functional>
using namespace std::tr1;
typedef void(*fp)(void);
void foo(void)
{
}
void f(fp)
{
}
int main()
{
function<void(void)> fun = foo;
f(fun); // error
f(foo); // ok
}
Pierwotnie muszę zrobić wskaźnik funkcji z non-statycznej metody klasy, bo trzeba zapisać dane między powołaniach funkcyjnych. Próbowałem std::tr1::bind
i boost::bind
, ale zwracają obiekt funkcjonalny, a nie wskaźnik, który, jak widzę, nie może zostać "wyrzucony" do czystego wskaźnika funkcyjnego. Podczas gdy podpis funkcji (SetupIterateCabinet
) wymaga dokładnie czystego wskaźnika funkcyjnego.
Potrzebuję porady, jak rozwiązać problem. Dziękuję Ci.
To działa, dziękuję! – fogbit