promise::set_value 方法

存储一个值作为 promise 对象的结果将“关联异步状态” 设置为“已就绪” .

void promise::set_value(const Ty& Val);
void promise::set_value(Ty&& Val);
void promise<Ty&>::set_value(Ty& Val);
void promise<void>::set_value();

参数

  • Val
    作为结果要存储的值。

备注

如果 promise 对象没有异步关联状态, 此方法将抛出 future_error 的错误代码 no_state.

如果set_exceptionset_exception_at_thread_exitset_valueset_value_at_thread_exit调用 promise 对象具有相同的关联的异步状态,这个方法抛出一个 future_error 错误代码 promise_already_satisfied

作为此方法的结果,关联异步状态下阻塞的所有线程变成未阻塞。

第一个方法当Val 复制到异步关联状态时会抛出异常。 在这种情况下,该关联的异步状态未设置为就绪状态。

第一个方法当Val 复制到异步关联状态时会抛出异常。 在这种情况下,该关联的异步状态未设置为就绪状态。

对于部分专用化 promise<Ty&>,存储的值实际上是对 Val的引用。

对专用化 promise<void>,存储的值不存在。

要求

标头: future

命名空间: std

请参见

参考

promise 类

<future>