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
のようなものは見たことがありません。前の*
は私を混乱させてしまった。- 関数の本体がかなり複雑に見えます。私はそれを構文的に理解するのが大好きです。しかし、ラムダのように私に見える。
メンバ関数ポインタとそれを 'dispatch()'呼び出しに委ねるラムダ関数。 –