Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 程序选项:如何忽略未知参数?_C++_Boost_Boost Program Options - Fatal编程技术网

C++ 程序选项:如何忽略未知参数?

C++ 程序选项:如何忽略未知参数?,c++,boost,boost-program-options,C++,Boost,Boost Program Options,在boost::program\u options库中,我无法理解如何允许用户通过add\u options() 我希望它被忽略,而不是终止程序。来自boost::program\u options文档 今晚我遇到了完全相同的问题@TAS的回答让我走上了正确的道路,但我还是花了20分钟的时间才弄清楚我特定用例的确切语法 要忽略未知选项,请执行以下操作: po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc)

boost::program\u options
库中,我无法理解如何允许用户通过
add\u options()


我希望它被忽略,而不是终止程序。

来自boost::program\u options文档


今晚我遇到了完全相同的问题@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\u parser()
而不是
parse\u commandline()

po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(desc).allow_unregistered().run(), vm);
po::notify(vm);