Pie*_*tro 6 c++ boost boost-program-options
在boost::program_options库中,我无法理解如何允许用户传递尚未添加的参数add_options().
我希望它被忽略,而不是终止程序.
来自boost :: program_options文档如何:允许未知选项
parsed_options parsed =
command_line_parser(argc, argv).options(desc).allow_unregistered().run();
Run Code Online (Sandbox Code Playgroud)
今晚我遇到了同样的问题。@TAS的答案使我走上了正确的道路,但是仍然花了20分钟的时间来弄清楚我特定用例的确切语法。
要忽略未知选项,而不是编写以下代码:
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
Run Code Online (Sandbox Code Playgroud)
我这样写:
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(desc).allow_unregistered().run(), vm);
po::notify(vm);
Run Code Online (Sandbox Code Playgroud)
请注意,只有中线不同。
简而言之,使用commandline_parser()而不是parse_commandline(),.options(desc).allow_unregistered().run()在调用之后加上一些“悬挂位”(即)。
| 归档时间: |
|
| 查看次数: |
2092 次 |
| 最近记录: |