我试图让我的头脑异步,但尚未找到传递指针的方法。目的是将指针传递给指针,以便线程readTable将指针初始化为PostgreSQL连接,如下所示。
PGconn *conn = NULL;
future<int> resultFuture;
void init
{
resultFuture = async(launch::async, readTable(&conn));
}
However the compiler complains with:
error: no matching function for call to ‘async(std::launch, int)'
像async一样传递指针不允许使用async吗?
感谢您的帮助。
答案 0 :(得分:0)
我想
void init
{
resultFuture = async(launch::async, readTable,&conn);
}
第二个参数是Callable
(它是指针的函数,或者是具有重载operator()
或lambda函数的对象)。所有其余的都是传递给callable的参数。
请在此处阅读std::async
文档:
http://en.cppreference.com/w/cpp/thread/async
和约perfect forwarding
在这里:
Advantages of using forward