【发布时间】:2014-02-20 12:31:49
【问题描述】:
我正在尝试使用 boost::program_options 获取输入选项。
我想有两个选项来源,一个来自命令行,另一个来自文件,但我也想为相同的值设置不同的选项名称。
commandLine.add_options()
("dim,d", po::value<int>(&dimension), "Problem dimension")
("adv", po::value<bool>(&adv_enabled), "Enable/Disable advection term {1|0}")
("div", po::value<bool>(&div_enabled), "Enable/Disable divergance term {1|0}")
file_options.add_options()
("dimension",po::value<int>(&dimension), "Set Problem dimension")
("enable.advection", po::value<bool>(&adv_enabled), "Enable/Disable advection")
("enable.divergance", po::value<bool>(&div_enabled), "Enable/Disable divergance")
这里我想在命令行中使用较短的版本,在文件中使用分组版本。
有没有办法只将变量传递给两者,或者我应该在代码中解析它们?
【问题讨论】:
-
看起来命令行选项值将被文件选项值覆盖。那是你要的吗?你试过执行吗?
-
我想用命令行选项覆盖文件选项,但它没有做我想要的。我测试运行代码,如果我用命令行更改尺寸,它不会更新值。
标签: c++ boost boost-program-options