std::packaged_task::reset
STD::包装[医]任务::重置
void reset( | | (since C++11) |
---|
重置国家放弃以前执行死刑的结果。构造了新的共享状态。
相当于*this = packaged_task(std::move(f))
,在哪里f
是存储的任务。
参数
%280%29
返回值
%280%29
例外
std::future_error
如果*this
没有共享状态。错误条件设置为no_state
...
std::bad_alloc
如果没有足够的内存用于新的共享状态。
- 类引发的任何异常。移动构造函数新的
packaged_task
例
二次
#include <iostream>
#include <cmath>
#include <thread>
#include <future>
int main()
{
std::packaged_task<int(int,int)> task([](int a, int b) {
return std::pow(a, b
}
std::future<int> result = task.get_future(
task(2, 9
std::cout << "2^9 = " << result.get() << '\n';
task.reset(
result = task.get_future(
std::thread task_td(std::move(task), 2, 10
task_td.join(
std::cout << "2^10 = " << result.get() << '\n';
}
二次
产出:
二次
2^9 = 512
2^10 = 1024
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。