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

Valid to use future after corresponding promise leaves scope

本文关键字:有效 未来 范围 离开 承诺      更新时间:2023-10-16

如果从promise中提取future,在promise离开作用域后调用future::get_value是否有效?

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

我无法使用承诺和未来的文档找到答案。

承诺和未来具有共享状态。

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

但是,一个承诺被实现然后承诺被摧毁的未来是完全可以的。 共享状态保持不变。

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