【问题标题】:Iterate on a vector of promise in C++在 C++ 中迭代一个 promise 向量
【发布时间】:2015-08-14 17:07:46
【问题描述】:

我对 C++ 多线程很陌生,我正在尝试处理一个 promise 向量,但是当我在 main 结束时执行此操作时:

  for (promise<bool> pr : vect){
        pr.get_future().get();
    }

编译器给了我一个错误。 我应该如何迭代这个向量?

【问题讨论】:

  • 您能否提供更多背景信息?最好是Minimal, Complete, and Verifiable Example。另外,什么错误?请在您的问题中包括实际(完整且未经编辑的)错误日志。
  • “编译器给我一个错误”?那么这意味着你必须查看第 46 行,这就是问题所在。
  • “编译器给我一个错误” 什么样的思考过程让你相信这足以描述你的问题?

标签: c++ multithreading promise


【解决方案1】:

std::promise 不可复制,您的基于范围的 for 正在尝试复制向量成员。以这种方式迭代时需要使用引用:

for (promise<bool>& pr : vect) { ... }

【讨论】:

    猜你喜欢
    • 2012-11-19
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 2013-01-02
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多