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函數。 –