c++ - 为什么我不能用异步初始化向量?
问题描述
这是一个例子:
#include <vector>
#include <future>
using namespace std;
int f(){ return 3; }
int main(){
vector<future<int>> works;
works.push_back(async(f));
vector<int> works2{f()};
vector<future<int>> fails{async(f)};
}
除非我注释掉我得到的最后一行:
use of deleted function ‘std::future<_Res>::future(const std::future<_Res>&) [with _Res = int]’
{ ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
使用 gcc 7。如果我理解它,它说它不能从对未来的引用构建未来。但是我无法构建自己对这一点的理解,这与它与 push_back 一起工作是一致的。
解决方案
推荐阅读
- python - 带有 mpi4py 的 Openmpi 不能在多个节点上工作
- javascript - d3.js 使用 Class 和 Attr 为文本添加颜色
- javascript - 将 html 表单发送到 Django 项目中的电子邮件地址的最佳方式?
- image - 尝试在空对象引用上调用接口方法 java.lang.String com.facebook.react.bridge.ReadableMap 等
- reactjs - Meteor + React - 错误:目标容器不是 DOM 元素
- python - Tensorflow- 两个二维张量的笛卡尔积
- python - 由于“环境错误:[错误 13]:权限被拒绝:'usr/local/bin/f2py'”而无法安装软件包
- coldfusion - 无法确定 MIME 类型的文件错误仅适用于 post calll
- python - Kafka python消费者在并行线程中运行
- angularjs - Angularjs 允许为每个帖子的子评论更新单个(第一)行