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 적용 대상 게시된 동작 올바른 동작
LWG 2142 C++11 operator ( ) 의 성공적인 호출이
자신의 공유 상태를 공유하는 std::future 또는
std::shared_future 의 멤버 함수 호출과
동기화됨
공유 상태가 이미 제공하는
동기화 보장 외에 추가적인
동기화 보장이 없음

참고 항목

함수를 실행하며 결과가 현재 스레드가 종료된 후에만 준비되도록 보장합니다
(public member function)