在相应的承诺离开范围后使用未来有效

Aar*_*man 3 c++ asynchronous c++11

如果future从 a 中提取 a promisefuture::get_valuepromise叶子范围之后调用是否有效?

std::future<void> future;
{
    std::promise<void> promise;
    future = promise.get_future();
    promise.set_value();
}
future.wait();
Run Code Online (Sandbox Code Playgroud)

我无法使用promisefuture的文档找到答案。

Yak*_*ont 5

Promises 和 future 具有共享状态。

一个没有兑现并被摧毁的承诺的未来是一个破碎的承诺。共享状态被赋予异常并准备就绪。

但是一个未来的承诺已经实现然后又被破坏了是完全可以的。共享状态持续存在。

查看~promise和讨论主文档页面上的共享状态。