Я хочу создать функциональный объект, который может быть вызван позже (обратный вызов) из
объект и функция-член этого объекта.
class A
{
public:
void AnyMethod() { cout << "Hello" << endl; }
};
int main()
{
A a;
function<???>f1(&A::AnyFunc, &a); // ?????
...
f1();
}
Я немного запутался, потому что создать поток очень просто:
thread t1 ( &A::AnyFunc, &a);
...
t1.join();
Это просто, если я использую его с функцией lamba, но это немного накладные расходы, которых я хочу избежать.
function<void(void)> f2( [&a](){ a.AnyFunc(); } ); // works fine
Может быть, есть лучший способ получить вызываемый объект?