2013-03-21 80 views

回答

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())调用之后上涨了。

相关问题