如果在使用boost::program_options的时候传递了未注册的参数,则会throw exception,要想无视我们不需要的参数,可以通过使用basic_command_line_parser类来分析 (而不是parse_command_line) ,并且调用该类的 allow_unregistered 方法:

1
2
3
parsed_options = 
    command_line_parser(argv, argc).
    options(desc).allow_unregistered().run();

如果使用配置文件,则在调用parse_config_file的时候第三个参数传递true:

1
parse_config_file<char>(cfgfilename, desc, true)