C++ 如何正确使用boost::program_options::字符串向量的隐式_值?

C++ 如何正确使用boost::program_options::字符串向量的隐式_值?,c++,boost,parameters,boost-optional,C++,Boost,Parameters,Boost Optional,代码证明: boost::program_options::options_description options; Parser::Parser(): options("Allowed options") { options.add_options() ("help,h", "produce help message") ("type,t", po::value<std::string>()->required()->implicit_value(""),

代码证明:

boost::program_options::options_description options;

Parser::Parser(): options("Allowed options")
{
  options.add_options()
  ("help,h", "produce help message")
  ("type,t", po::value<std::string>()->required()->implicit_value(""), "Type")
}
boost::program\u options::options\u description options;
Parser::Parser():选项(“允许的选项”)
{
选项。添加选项()
(“帮助,h”,“生成帮助消息”)
(“类型,t”,po::value()->required()->隐式_值(“”,“类型”)
}
这行没问题:

("type,t", po::value<std::string>()->required()->implicit_value(""), "Type")
(“类型,t”,po::value()->required()->隐式_值(“”,“类型”)
如何添加此行才能正常工作

("file,f", po::value< std::vector<std::string> >()->required()->multitoken()->implicit_value(std::vector<std::string>(0,"")), "File(s)")
(“文件,f”,po::value()->required()->multitoken()->隐式_值(std::vector(0)”,“文件”)

这是字符串-s的向量。

您只需要帮助选项描述,就可以知道如何向最终用户显示默认值

也就是说,通常
implicit\u value
会使用
lexical\u cast
来获得文本表示,但这(显然)不适用于
vector
。因此,请提供您自己的文本表示:

("file,f", po::value<strings>()->required()
    ->implicit_value(strings { "santa", "claus" }, "santa,claus"), "File(s)");

您只需要帮助选项描述,就可以知道如何向最终用户显示默认值

也就是说,通常
implicit\u value
会使用
lexical\u cast
来获得文本表示,但这(显然)不适用于
vector
。因此,请提供您自己的文本表示:

("file,f", po::value<strings>()->required()
    ->implicit_value(strings { "santa", "claus" }, "santa,claus"), "File(s)");
  -h [ --help ]                      produce help message
  -f [ --file ] [=arg(=santa,claus)] File(s)

Got: santa
Got: claus