C++ 修复此std::async调用

C++ 修复此std::async调用,c++,asynchronous,c++14,C++,Asynchronous,C++14,由于std::async有问题,我写它的每一种方式都被证明是非法的。有人有什么建议吗 PS:这是一个异步IP范围扫描器 bool PortCheck(std::string ip, int port) { } std::vector<std::pair<std::string, std::future<bool>>> JobPool; std::future<bool > f = PortCheck(argStartAddress, argP

由于std::async有问题,我写它的每一种方式都被证明是非法的。有人有什么建议吗

PS:这是一个异步IP范围扫描器

bool PortCheck(std::string ip, int port)
{

}

std::vector<std::pair<std::string, std::future<bool>>> JobPool;

std::future<bool > f = PortCheck(argStartAddress, argPort);


JobPool.push_back(std::make_pair(
    argStartAddress,
    f
));
bool-PortCheck(std::string-ip,int-port)
{
}
病媒作业池;
std::future f=端口检查(argStartAddress,argPort);
作业池。推回(标准::生成作业对(
argStartAddress,
F
));
std::future f=std::async(端口检查,argStartAddress,argPort);
作业池。推回(标准::生成作业对(
argStartAddress,
std::move(f)//注意std::move
));

StackOverflow有这些要求是有原因的。这里有很多与你的问题无关的代码;这使得回答起来更加困难。请给出一个最小、完整且可验证的示例(再现问题的最小示例)。
std::future f=std::async(std::launch::async,PortCheck,argStartAddress,argPort)不起作用,“std::future f=std::async(PortCheck,argStartAddress,argPort);”在您的真实代码中是非法的,
PortCheck
是某个类的成员函数吗?我忍不住注意到你忽略了这个重要的事实。因此,提供So-then的重要性在于,显示它所属的类,以及希望在其上调用
PortCheck
的该类的实例。换句话说,准备一个MCVE。
std::future<bool> f = std::async(PortCheck, argStartAddress, argPort);

JobPool.push_back(std::make_pair(
    argStartAddress,
    std::move(f)  // note std::move
));