3

我正在尝试boost::process从字符串参数向量创建一个:

void runProcess( const std::string& exe, const std::vector<std::string>& args )
{
    bp::ipstream out;
    bp::child c(exe, args, std_out > out);
    ...
}

这显然有效,但我收到以下警告:

警告 C4503:'boost::fusion::detail::for_each_linear':超出修饰名称长度,名称被截断

如果一一传递参数,它就会消失bp::child c(exe, "param1", "param2", std_out > out);

在这种情况下调用child构造函数的正确方法是什么?

4

1 回答 1

5

您将按预期使用:

bp::child c(bp::search_path("ls"), bp::args({"-1", "-l"})/*, ...*/);

在你的情况下,也许像

void runProcess( const std::string& exe, const std::vector<std::string>& args )
{
    bp::ipstream out;
    bp::child c(exe, bp::args(args), std_out > out);
    ...
}
于 2017-12-04T12:52:22.690 回答