Namespaces
Variants

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

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void operator ( ) ( ArgTypes... args ) ;
(начиная с C++11)

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

Содержание

Параметры

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

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

(нет)

Исключения

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

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

Пример

Отчёты о дефектах

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

DR Applied to Behavior as published Correct behavior
LWG 2142 C++11 a successful call to operator ( ) synchronized with
a call to any member function of a std::future or
std::shared_future that share their shared state with * this
no additional synchronization
guarantees other than what is
already provided by shared state

Смотрите также

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