【发布时间】:2020-06-16 00:17:51
【问题描述】:
我正在尝试解析命令行提供的任意数量文件中的未注册选项。假设我有文件:
configs0.ini
configs1.ini
configs2.ini
我想支持任意数量的这些。
我的代码(简化):
namespace po = boost::program_options;
po::options_description cmd_opts{"Options"};
po::options_description config_file_opts;
po::variables_map vm;
cmd_opts.add_options()
("help,h", "Help message")
("config_files", po::value<std::vector<std::string>>()->multitoken(), "Configuration files to get settings from")
po::parser.options(reg_config_file_opts).allow_unregistered();
po::store(parse_command_line(argc, argv, cmd_opts), vm);
config_files = vm["config_files"].as<std::vector<std::string>>();
po::parsed_options parsed_opts;
for(auto file : config_files) {
std::ifstream ifs(file, std::ifstream::in);
if(ifs.fail()) {
std::cerr << "Error opening config file: " << file << std::endl;
return false;
}
ifs.close();
<NEED HELP HERE>
parsed_opt.add(parse_config_file(ifs, reg_config_file_opts));
}
po::store(parsed_opts, vm);
parsed_options 是否有某种 .add 能力?
【问题讨论】: