C++ 这个c++;函数是什么意思? 模板 延迟延迟(常量PID和PID,未来(T:::*方法)() { 返回延迟([=](){返回调度(pid,方法);}); } (T::*方法)是什么意思?我知道这里是什么。但从未见过类似于*方法的东西。前面的*把我弄糊涂了 功能体似乎相当复杂。我很想通过分解每个部分来理解它的语法。但在我看来像兰姆达 (T::*方法)是什么意思?我知道这里没有什么。但从未见过类似的方法。前面的*把我弄糊涂了 未来(T::*方法)()
是名为C++ 这个c++;函数是什么意思? 模板 延迟延迟(常量PID和PID,未来(T:::*方法)() { 返回延迟([=](){返回调度(pid,方法);}); } (T::*方法)是什么意思?我知道这里是什么。但从未见过类似于*方法的东西。前面的*把我弄糊涂了 功能体似乎相当复杂。我很想通过分解每个部分来理解它的语法。但在我看来像兰姆达 (T::*方法)是什么意思?我知道这里没有什么。但从未见过类似的方法。前面的*把我弄糊涂了 未来(T::*方法)(),c++,c++11,c++14,C++,C++11,C++14,是名为method的成员函数指针参数。它需要获得签名为Future func()的T成员函数的地址 功能体似乎相当复杂。我很想通过分解每个部分来理解它的语法。但在我看来像兰姆达 这是一个lambda函数调用,是的。lambda主体调用dispatch()并传递pid和方法参数。成员函数指针和lambda函数,该函数将其延迟到dispatch()调用。OK。但是[=]()是什么意思呢?正如所解释的,这是默认的拷贝捕获。请花更多的精力阅读可用的文档(这是告诉您RTFM的一个非常好的方法)。顺便说一句
method
的成员函数指针参数。它需要获得签名为Future func()的T
成员函数的地址代码>
功能体似乎相当复杂。我很想通过分解每个部分来理解它的语法。但在我看来像兰姆达
这是一个lambda函数调用,是的。lambda主体调用dispatch()
并传递pid
和方法
参数。成员函数指针和lambda函数,该函数将其延迟到dispatch()
调用。OK。但是[=]()是什么意思呢?正如所解释的,这是默认的拷贝捕获。请花更多的精力阅读可用的文档(这是告诉您RTFM的一个非常好的方法)。顺便说一句,我没有回答你的问题。
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); });
}
Future<R> (T::*method)()