首先,我想为冗长的帖子道歉.我希望尽可能彻底.
我已经在这个问题上坚持了几天,并且关于正确使用boost::packaged_task具有输入参数的函数的信息很少令人惊讶.
boost::asio::io_service::strand由于各种原因偶尔会排队等候.在查看boost :: futures之后,我们决定使用boost :: packaged_task完全符合我们的需要.但是,打包任务的实现似乎存在错误.
似乎packaged_task有几个不同的模板可供选择:
packaged_task<R>packaged_task<R()>packaged_task<R(ArgTypes)>为了确保我正确使用该功能,我开始很简单; 使用boost :: futures页面上的简单示例作为起点.从那里,我创建了四个简单的函数:
std::string 返回,没有参数.std::string 返回,带参数.std::string ans("forty two");
int int_no_params()
{
return 42;
}
int int_with_params(int param)
{
return param;
}
std::string string_no_params()
{
return std::string("forty two");
}
std::string string_with_params(std::string & param) // Have tried both with and without …Run Code Online (Sandbox Code Playgroud)