使用参数C ++调用std :: thread函数时出现编译器错误

时间:2015-08-14 17:59:20

标签: c++ stdthread

我正在尝试从新线程调用一个函数。该函数需要一堆参数。

std::thread signingThread(curlWrapper->SendDataToServer,username, password, serverURL, data);

这是函数原型

int LibCurlWrapper::SendDataToServer(const std::string& username, const std::string& password, const std::string& serverURL, const std::vector<unsigned char> &vData)

编译器错误

  

错误:没有匹配函数来调用&#39; std :: thread :: thread(,std :: string&amp;,std :: string&amp;,std :: string&amp;,std :: vector&amp;)&# 39;                    std :: thread signingThread(curlWrapper-&gt; SendDataToServer,用户名,密码,serverURL,数据);

1 个答案:

答案 0 :(得分:2)

您需要为std::thread指定一个功能,而curlWrapper->SendDataToServer则不能。 (虽然curlWrapper->SendDataToServer()表示在SendDataToServer()上致电curlWrapper。)

将其更改为:

std::thread signingThread(&LibCurlWrapper::SendDataToServer, curlWrapper, username, password, serverURL, data);