【发布时间】:2016-06-06 02:45:09
【问题描述】:
有什么解决方法可以让这段代码运行?该代码导致“尝试引用已删除的函数”。 unique_ptr 在循环中分配,然后传递给线程,后来又被删除了。
boost::thread_group threads;
std::unique_ptr<ScenarioResult> scenario_result;
while ((scenario_result = scenarioStock.getNextScenario()) != nullptr)
{
threads.create_thread(boost::bind(&Simulation::RunSimulation, boost::ref(grid_sim), std::move(scenario_result)));
}
【问题讨论】:
-
minimal reproducible example 不仅可以将实际的错误消息复制到问题中,而且还可以提供很多帮助,而不仅仅是您目前添加的缩写版本。
标签: c++ multithreading c++11 boost unique-ptr