- auto task = std::make_shared<boost::packaged_task<result_type>>(std::forward<Func>(func)); \r
+ auto task = std::make_shared<boost::packaged_task<result_type>>(std::forward<Func>(func)); // boost::packaged_task cannot be moved, need to used shared_ptr.\r
auto future = task->get_future();\r
\r
task->set_wait_callback(std::function<void(decltype(*task)& task)>([=](decltype(*task)& task) // The std::function wrapper is required in order to add ::result_type to functor class.\r