我对C ++多线程很陌生,我试图处理一个承诺的向量,但是当我在main的末尾做这件事时:
for (promise<bool> pr : vect){
pr.get_future().get();
}
编译器给我一个错误。 我应该如何迭代这个向量?
答案 0 :(得分:6)
std::promise
不可复制,而基于范围的for正在尝试制作矢量成员的副本。在以这种方式迭代时,您需要使用引用:
for (promise<bool>& pr : vect) { ... }