int my_func(int var)
{
cout << var << endl;
return 5;
}
int main()
{
std::packaged_task<int(int)> mypt(my_func);
mypt(10);
std::future<int> result = mypt.get_future();
cout << result.get() << endl;
vector<std::packaged_task<int(int)>> my_task;
my_task.push_back(std::move(mypt));// 移动语义,进去后mypt为空
auto iter = my_task.begin();
std::packaged_task<int(int)> mypt2;
mypt2 = std::move(*iter);
my_task.erase(iter);
mypt2(15);
std::future<int> result2 = mypt2.get_future();
cout << result2.get() << endl;
return 0;
}
上述代码为什么在 mypt2(15);报错?