STD::PACKAGED_TASK::VALID
Проверяет, ассоциированы ли с *this
bool valid() const noexcept;
true
*this
ассоциированы задача и асинхронный результат, иначе false
.Нет.
STD::PACKAGED_TASK::OPERATOR()
Вызывает задачу, ассоциированную с экземпляром std::packaged_task
void operator()(ArgTypes... args);
С *this
Вызывает ассоциированную задачу, как если бы было выполнено предложение INVOKE(func, args...)
*this
. Если задача возбуждает исключение, то сохраняет это исключение в асинхронном результате, ассоциированном с *this
.Асинхронный результат, ассоциированный с *this
Исключение типа std::future_error
std::future_errc::promise_already_satisfied
, если в асинхронном результате уже находится значение или исключение.Успешное обращение к оператору вызова синхронизируется-с обращением к std::future
std::shared_future::get()
, которое извлекает хранимое значение или исключение.STD::PACKAGED_TASK::MAKE_READY_AT_THREAD_EXIT
Вызывает задачу, ассоциированную с экземпляром std::packaged_task
void make_ready_at_thread_exit(ArgTypes... args);
С *this
Вызывает ассоциированную задачу, как если бы было выполнено предложение INVOKE(func, args...)
*this
. Если задача возбуждает исключение, то сохраняет это исключение в асинхронном результате, ассоциированном с *this
. Планирует перевод ассоциированного асинхронного результата в состояние готовности в момент завершения потока.Асинхронный результат, ассоциированный с *this
Исключение типа std::future_error
std::future_errc::promise_already_satisfied
, если в асинхронном результате уже находится значение или исключение. Исключение типа std::future_error
с кодом ошибки std::future_errc::no_state
, если с *this
не ассоциировано асинхронное состояние. Завершение потока, в котором была успешно вызвала функция make_ready_at_thread_exit()
std::future::get()
или std::shared_future::get()
, которое извлекает хранимое значение или исключение.D.4.4. Шаблон класса std::promise
Шаблон класса std::promise
std::future
.Параметр ResultType
Объект std::future
std::promise
, можно получить путем обращения к функции-члену get_future()
. В асинхронный результат записывается либо значение типа ResultType
функцией-членом set_value()
, либо исключение функцией-членом set_exception()
.Экземпляры std::promise
MoveConstructible
и MoveAssignable
, но не CopyConstructible
или CopyAssignable
.template
class promise {
public:
promise();
promise(promise&&) noexcept;
~promise();