boost::program_options 解析我的命令行参数后如何获取非标志和非选项标记
在python中,我可以构造我的 optparse 实例,这样它就会自动过滤掉选项和非选项/标志放入两个不同的桶中:
(options, args) = parser.parse_args()
使用 boost::program_options,如何检索剩余的非选项和非标志令牌的令牌列表?
例如,如果我的程序有标志
--foo
--bar BAR
,然后我传入命令行:
--foo hey --bar BAR you
我怎样才能获得仅由标记“hey”和“you”组成的列表
In python, I can construct my optparse instance such that it will automatically filter out the options and non-option/flags into two different buckets:
(options, args) = parser.parse_args()
With boost::program_options, how do I retrieve a list of tokens which are the remaining non-option and non-flag tokens?
e.g. If my program has flags
--foo
--bar BAR
and I then pass in the command line:
--foo hey --bar BAR you
how can I get a list comprised solely of tokens "hey" and "you"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个示例:
然后只需将“输入”命名选项作为字符串向量获取即可。
Here is an example:
Then just get "input" named options as vector of strings and you are all set.
IIRC,您必须使用 < 的组合代码>positional_options_description和隐藏选项。这个想法是(1)添加一个普通选项并给它一个名称,可能类似于
--positional=ARG
,(2)不要在帮助描述中包含该选项,(3)配置command_line_parser
以将所有位置参数视为指定了--positional
,并且 (4) 使用vm["positional"].as< 检索位置参数std::向量>()
。源代码树中可能有一个示例,但我现在这台机器上没有它。
IIRC, you have to use a combination of
positional_options_description
and hidden options. The idea is to (1) add a normal option and give it a name, maybe something like--positional=ARG
, (2) don't include that option in the help description, (3) configurecommand_line_parser
to treat all positional arguments as if--positional
was specified, and (4) retrieve the positional arguments usingvm["positional"].as< std::vector<std::string> >()
.There is probably an example somewhere in the source tree but I don't have it on this machine right now.