boost program_options 接受最后一个标志之后的所有值
有没有办法使用 boost::program_options 收集指定参数后的所有值?不过,我需要注意两个警告,我需要接受无法识别的参数,并且我需要接受可能包含破折号的值。我尝试使用 command_line_parser 与 parse_command_line 进行比较,我可以得到无法识别的值或包含破折号的值,但不能同时得到两者。
例子: ./myprog Ignore1 Ignore2 --Accept 1 --AlsoAccept 2 --AcceptAll 1 2 -3 4
我并不真正关心验证 --AcceptAll 是最后通过的标志;我只是在寻找为该标志之后的所有内容返回字符串向量的逻辑。
Is there a way to collect all of the values after a specified argument with boost::program_options? There are two caveats that I need to take care of though, I need to accept unrecognized arguments, and I need to accept values that could contain dashes. I've tried playing around with command_line_parser vs parse_command_line and I can get either unrecognized or values that contain dashes, but not both.
Example:
./myprog Ignore1 Ignore2 --Accept 1 --AlsoAccept 2 --AcceptAll 1 2 -3 4
I'm not really concerned with verifying that --AcceptAll is the last flag passed; I'm just looking for logic that returns a vector of strings for everything after that flag.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您尝试过 位置选项?
示例会话
have you tried positional options?
sample session
您的问题的答案实际上与我关于正确处理选项结束选项
--
的问题的答案相同:使用“--”作为 boost::program_options 的选项结束标记。您唯一需要更改的就是将extra_style_parser
中的--
替换为--AcceptAll
。The answer to your question is virtually the same as the answer to my question about handling the end-of-options option
--
properly: Using '--' as end-of-options marker with boost::program_options. The only thing you need to change is to substitute--AcceptAll
for--
in theextra_style_parser
.