在 python 中,我可以构建我的 optparse实例这样它会自动将选项和非选项/标志过滤到两个不同的桶中:
(options, args) = parser.parse_args()
使用 boost::program_options,我如何检索 token 列表,这些 token 是剩余的非选项和非标志 token ?
例如如果我的程序有标志
--foo
--bar BAR
然后我传入命令行:
--foo hey --bar BAR you
我怎样才能得到一个仅由标记“嘿”和“你”组成的列表
最佳答案
这是一个例子:
namespace po = boost::program_options;
po::positional_options_description m_positional;
po::options_description m_cmdLine;
po::variables_map m_variables;
m_cmdLine.add_options()
(/*stuff*/)
("input", po::value<vector<string> >()->composing(), "")
;
m_positional.add("input", -1);
po::parsed_options parsed = po::command_line_parser(argc, argv)
.options(m_cmdLine)
.positional(m_positional)
.allow_unregistered()
.run();
// store, notify, etc
然后只需将“输入”命名选项作为字符串 vector ,一切就绪。
关于c++ - 在 boost::program_options 解析我的命令行参数后,如何获取非标志和非选项标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314717/