std::packaged_task<R(Args...)>::operator()
来自 cppreference.cn
< cpp | thread | packaged task
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 的任何成员函数的调用同步,它们与 *this 共享其共享状态 |
没有额外的同步 保证,除了已经是 由共享状态提供的 |
[编辑] 参见
执行函数,确保结果仅在当前线程退出后才就绪 (公共成员函数) |