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
这样的东西。前面的*
让我很困惑。答案 0 :(得分:1)
- (T :: *方法)是什么意思?我知道这里有什么。但从未见过类似*方法的东西。前面的*让我感到困惑。
醇>
method
是名为T
的成员函数指针参数。预计会使用签名Future<R> func();
获取dispatch()
成员函数的地址。
- 功能体似乎很复杂。我希望通过分解每个部分来理解它。看起来像是lambda。
醇>
这是一个lambda函数调用,是的。 lambda主体调用pid
并传递method
和class A:
def __init__(self):
self.listFoo = [1, 2]
self.listBar = [3, 4]
def get_list(self, which):
if which == "Foo":
return self.listFoo
return self.listBar
a = A()
other_list = [5, 6]
a.get_list("Foo").extend(other_list)
a.get_list("Foo") += other_list #SyntaxError: can't assign to function call
个参数。