在boost::program_options
库中,我无法理解如何让用户传递一个未通过add_options()
添加的参数。
我希望它被忽略,而不是终止程序。boost :: program_options:如何忽略未知参数?
4
A
回答
2
我就遇到了这个确切的同样的问题在今晚。 @ TAS的回答让我走上了正确的道路,但仍花了20分钟的时间来弄清楚我的特定用例的确切语法。
要忽略未知的选项,而不是写这个:
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
我写了这个:
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(desc).allow_unregistered().run(), vm);
po::notify(vm);
请注意,只有中间线是不同的。
简而言之,使用commandline_parser()
而非parse_commandline()
,用一些“垂吊比特”(即,.options(desc).allow_unregistered().run()
)调用之后上涨了。
7
从升压:: program_options文档How To: Allowing Unknown Options
parsed_options parsed =
command_line_parser(argc, argv).options(desc).allow_unregistered().run();
相关问题
- 1. 如何处理boost :: program_options中的未经请求的参数
- 2. boost :: log :: sources :: basic_logger :: open_record_unlocked忽略参数
- 3. boost :: program_options忽略配置文件中的选项
- 4. BOOST program_options:解析多个参数列表
- 5. 如何构建Boost :: program_options
- 6. boost :: program_options中带参数和不带参数的参数
- 7. Boost Program Options默默忽略未知值标记。为什么?
- 8. 子串后忽略未知
- 9. boost :: program_options undefined reference
- 10. setprecision for boost :: program_options
- 11. extractin/building boost program_options
- 12. 未定义参考的boost :: program_options :: abstract_variables_map :: operator []的
- 13. 忽略参数NULL
- 14. LayoutInflater忽略参数?
- 15. 如何接受boost :: program_options中的空值
- 16. 如何忽略可选参数在c#
- 17. 如何忽略不必要的参数?
- 18. 忽略大小写boost :: regexp
- 19. 忽略参数的函数?
- 20. Howto使用DataContractSerializer忽略未知类型
- 21. 忽略树枝中的未知标签
- 22. tcpdump - 忽略未知的主机错误
- 23. 忽略“证书未知”警报
- 24. 忽略追加的未知值
- 25. Internet Explorer中:忽略未知ES6语法
- 26. CLI解析完成后,可以添加boost program_options和参数吗?
- 27. 解析LPTSTR *命令行参数与boost :: program_options
- 28. 的boost :: program_options :: positional_options_description终止
- 29. boost :: program_options :: notify()是什么?
- 30. 复制的boost :: program_options :: parsed_options