template <typename R, typename T>
Deferred<Future<R>()> defer(const PID<T>& pid, Future<R> (T::*method)())
{
return Deferred<Future<R>()>([=]() { return dispatch(pid, method); });
}
(T::*method)
是什么意思?我知道这里是T
。但从未见过类似*method
的东西。前面的*
让我感到困惑。- 函数体看起来很复杂。我希望通过分解每个部分来在语法上理解它。虽然看起来像lambda。
成员函数指针和一个将其推迟到dispatch()调用的lambda函数。 –