Я пытаюсь обернуть packaged_task в лямбду, чтобы поместить их в контейнер. Я написал тестовый код ниже для имитации обтекания и вызова лямбда-функции. Мой код выглядит следующим образом:
int test()
{
return 10;
}
int main()
{
auto task = std::make_shared<std::packaged_task<int()>>(test);
auto result = task->get_future();
auto wrapper = [=]() { (*task)(); };
wrapper();
}
Программа была прервана со следующим исключением:
прекращение вызова после выброса экземпляра 'std :: system_error'
what (): неизвестная ошибка -1
Прервано (ядро сброшено)
Может ли кто-нибудь объяснить мне, почему выбрасывается исключение?