Partilhar via


Método promise::set_value

Armazena de maneira atômica um valor como resultado desse objeto promise e define o estado assíncrono associado para pronto.

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();

Parâmetros

  • Val
    O valor a ser armazenado como o resultado.

Comentários

Se o objeto de promise não tem estado assíncrono associado, esse método gerará future_error que tem um código de erro de no_state.

Se set_exception, set_exception_at_thread_exit, set_value, ou set_value_at_thread_exit já tiver sido chamado para um objeto de promise que tem o mesmo estado assíncrono associado, esse método gerará um future_error que tem um código de erro de promise_already_satisfied.

Como resultado desse método, todos os threads que estão bloqueados no estado assíncrono associado são desbloqueados.

O primeiro método também dá origem a uma exceção que é gerada quando Val é copiado para o estado assíncrono associado. Nesta situação, o estado assíncrono associado não está definido para "pronto".

O segundo método também lança qualquer exceção que é lançada quando Val é movido para o estado assíncrono associado. Nesta situação, o estado assíncrono associado não está definido para "pronto".

Para a especialização parcial promise<Ty&>, o valor armazenado é efetivamente uma referência a Val.

Para a especialização promise<void>, nenhum valor armazenado existe.

Requisitos

Cabeçalho: futuro

std de Namespace:

Consulte também

Referência

Classe promise

<future>