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

来自cppreference.com
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
原子操作的自由函数
原子标志的自由函数
内存序
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
void operator()( ArgTypes... args );
(C++11 起)

如同以 INVOKE<R>(f, args...) 调用存储的任务 f。任务返回值或任何抛出的异常被存储于共享状态。令共享状态就绪,并解除阻塞任何等待此操作的线程。

参数

args - 调用时传递给存储任务的参数

返回值

(无)

异常

在以下情况抛出 std::future_error

示例

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 2142 C++11 operator() 的成功调用会与对 *this 共享共享状态的
std::futurestd::shared_future 的任意成员函数的调用同步
不会在共享状态已提供的
内容外作任何同步保证

参阅

执行函数,并确保结果仅在一旦当前线程退出时就绪
(公开成员函数)