c++ - 在相应的 promise 离开范围后有效使用 future

标签 c++ c++11 asynchronous

如果你提取一个future来自promise , 调用 future::get_value 是否有效在promise之后离开范围?

std::future<void> future;
{
    std::promise<void> promise;
    future = promise.get_future();
    promise.set_value();
}
future.wait();

我无法使用 promise 找到答案的和future的文档。

最佳答案

Promises 和 Future 具有共享状态。

一个 promise 没有实现并被摧毁的 future 是一个违背的 promise 。共享状态被赋予异常并准备就绪。

但是一个 promise 被实现然后又被破坏的 future 是完全可以的。共享状态持续存在。

~promise以及关于共享状态的讨论 main doc page .

关于c++ - 在相应的 promise 离开范围后有效使用 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117797/

相关文章:

c++ - 模板和专用模板如何

c++ - 使用 QAtomicInt 作为内存栅栏

c++ - clang_complete vim 扩展不适用于 STL

c++ - 在 C++14 编译器中使用 Boost

c++11 - C++11 是否允许更好的方法在没有非匿名帮助函数的情况下对相似数据重复相同的操作?

c# - 此 MSDN 示例中 Lazy<T> 的用途

javascript - 异步ajax请求锁定浏览器

c++ - 您将如何实现黑白棋游戏? (奥赛罗)

c++ - 谁能解释一下这个 C++ 程序。结果很奇怪 :(

javascript - 使用 EventEmitter 编写异步函数