gpt4 book ai didi

c++ - 将 future 存储在列表中

转载 作者:可可西里 更新时间:2023-11-01 16:31:03 25 4
gpt4 key购买 nike

我想将使用异步生成的多个线程的 future 存储在一个列表中,以便稍后检索它们的结果。

future<int> f = async(doLater, parameter);
list<future<int>> l;
l.push_back(f);

但是编译器打印出如下错误信息

/usr/include/c++/4.7/bits/stl_list.h:115:71: error: use of deleted function 'std::future<_Res>::future(const std::future<_Res>&) [with _Res = int; std::future<_Res> = std::future]'

我是做错了什么还是列表不应该存储 future ?如果不是,应该使用什么?

最佳答案

std::future 不可复制 - 您需要移动到列表中。要么:

future<int> f = async(doLater, parameter);
list<future<int>> l;
l.push_back(std::move(f));

或:

list<future<int>> l;
l.push_back(async(doLater, parameter));

会工作,后者更可取,因为它不会留下一个被移出的对象乱扔在范围内。

关于c++ - 将 future 存储在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20126551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com