Spec-Zone.ru › C++

std::packaged_task<R(Args...)>::operator()

void operator()( ArgTypes... args );
(с C++11)

Вызывает сохранённую задачу так, как если бы это было сделано INVOKE<R>(f, args...), где f — сохранённая задача. Возвращаемое значение задачи или любые возникающие исключения сохраняются в общем состоянии. Общее состояние подготавливается, и все потоки, ожидающие этого, разблокируются.

Параметры

args - параметры для передачи при вызове сохранённой задачи

Возвращаемое значение

(нет)

Исключения

std::future_error при следующих ошибках:

  • Сохранённая задача уже была вызвана. Категория ошибки установлена в promise_already_satisfied.
  • *this не имеет общего состояния. Категория ошибки установлена в no_state.

Пример

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

Отчёт об ошибке Применимо к Поведение, как опубликовано Корректное поведение
LWG 2142 C++11 успешный вызов оператора () синхронизирован с
вызовом любого метода класса std::future или
std::shared_future , которые делят своё общее состояние с *this
никаких дополнительных гарантий синхронизации, кроме тех, которые уже предоставляются общим состоянием

См. также

make_ready_at_thread_exit
выполняет функцию, гарантируя, что результат готов только после завершения текущего потока
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/packaged_task/operator()

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API