我有一堆静态函数,我在异步调用中使用它并将字符串x传递给函数。
f1.get(); f2.get(); f3.get();
然后在每个上面调用get。
std::vector<void (*) (std::string)> funs;
funs.push_back(foo1);
funs.push_back(foo2);
funs.push_back(foo3);
std::vector<std::future<void>> tasks
for(auto& t : temp ){
task.push_back(std::async(std::launch::async, t, x);)
}
for(auto task : tasks){
task.get();
}
如果我们认为我有十个功能,那么看起来重复我。
我尝试创建函数指针列表并调用上面的函数,如下所示。
80
但它给了我删除功能和类似的错误。
有更好的方法吗?
谢谢
答案 0 :(得分:2)
您必须通过引用来完成任务:
for(auto& task : tasks){
task.get();
}
您应该在错误消息中看到与future(const future&) = delete;
相关的内容。