"no matching function for call to ‘async(std::launch, <unresolved overloaded function type>, std::string&)’"
"no matching function for call to ‘async(std::launch, <unresolved overloaded function type>, std::string&)’"
我正在尝试使用 std::async
创建线程,但我一直收到错误消息
"no matching function for call to ‘async(std::launch, <unresolved overloaded function type>, std::string&)
’"上线
ConnectFuture = std::async(std::launch::async, Connect_T,ip);
这是产生这种行为的代码:
#include <future>
class libWrapper
{
public:
void Connect(std::string ip);
void Connect_T(std::string ip);
private:
std::future<void> ConnectFuture;
};
void libWrapper::Connect(std::string ip){
auto status = ConnectFuture.wait_for(std::chrono::seconds(0));
if (status != std::future_status::timeout)
{
ConnectFuture = std::async(std::launch::async, Connect_T,ip);
}
}
void libWrapper::Connect_T(std::string ip)
{
}
int main(int argc, char** argv) {
libWrapper lW;
lW.Connect("192.168.3.1");
return 0;
}
它是一个成员函数,所以它需要一个被调用的对象和一个参数。也许它应该是静态的,或者你应该将它绑定到 this
:
std::async(std::launch::async, &libWrapper::Connect_T, this, ip)
我正在尝试使用 std::async
创建线程,但我一直收到错误消息
"no matching function for call to ‘async(std::launch, <unresolved overloaded function type>, std::string&)
’"上线
ConnectFuture = std::async(std::launch::async, Connect_T,ip);
这是产生这种行为的代码:
#include <future>
class libWrapper
{
public:
void Connect(std::string ip);
void Connect_T(std::string ip);
private:
std::future<void> ConnectFuture;
};
void libWrapper::Connect(std::string ip){
auto status = ConnectFuture.wait_for(std::chrono::seconds(0));
if (status != std::future_status::timeout)
{
ConnectFuture = std::async(std::launch::async, Connect_T,ip);
}
}
void libWrapper::Connect_T(std::string ip)
{
}
int main(int argc, char** argv) {
libWrapper lW;
lW.Connect("192.168.3.1");
return 0;
}
它是一个成员函数,所以它需要一个被调用的对象和一个参数。也许它应该是静态的,或者你应该将它绑定到 this
:
std::async(std::launch::async, &libWrapper::Connect_T, this, ip)