【发布时间】:2020-10-05 06:47:33
【问题描述】:
我正在尝试使用 Boost::program_options 读取配置文件。配置文件如下所示:
hier.arch.y.option_name = 0x5
another.hier.archy.setting_name = 0x1E
我希望能够仅通过“option_name”或“setting_name”进行搜索。我不太担心重复,但如果有一种方法可以选择匹配 2 个子字符串(即“another”+“setting_name”),那也很棒。
有没有办法让 program_options 根据子字符串进行匹配?
代码示例:
namespace po = boost::program_options;
po::options_description cmd_opts{"Options"};
po::options_description config_file_opts;
cmd_opts.add_options()
("help,h", "Help message")
("config_help", "List of configurations available in config file");
po::variables_map vm;
po::store(parse_command_line(argc, argv, combined_opts), vm);
auto parsed_opts = po::parse_config_file<char>(vm.["config_file"].as<std::string>);
po::store(parsed_opts, vm);
配置文件:
foo.bar.setting0 = 0x5
foo.notbar.setting1 = 0x6
bar.notfoo.setting2 = 0x5E
我想指定以下选项:
int setting0;
int setting1;
int setting2;
【问题讨论】:
-
是的,只需枚举解析的选项。如果您添加代码,我们可以显示
-
添加了一些代码。枚举解析的选项是什么意思?
标签: c++ boost boost-program-options