C++ 增压程序选项:相同值的多个选项
我正在尝试使用C++ 增压程序选项:相同值的多个选项,c++,boost,boost-program-options,C++,Boost,Boost Program Options,我正在尝试使用boost::program\u options获取输入选项 我希望有两个选项源,一个来自命令行,另一个来自文件,但我也希望同一个值有不同的选项名称 commandLine.add_options() ("dim,d", po::value<int>(&dimension), "Problem dimension") ("adv", po::value<bool>(&adv_enabled), "Enable/Disable advect
boost::program\u 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")
commandLine.add_options()
(“尺寸,d”,采购订单::价值和尺寸,“问题尺寸”)
(“adv”,po::value(&adv_enabled),“启用/禁用平流项{1 | 0}”)
(“div”,po::value(&div_enabled),“Enable/Disable diviance term{1 | 0}”)
文件\u选项。添加\u选项()
(“维度”,采购订单::值(&维度),“设置问题维度”)
(“启用.平流”,po::value(&adv_enabled),“启用/禁用平流”)
(“启用.divergance”,po::value(&div_enabled),“启用/禁用divergance”)
在这里,我想在命令行中使用较短的版本,在文件中使用分组的版本
有没有一种方法可以将变量传递给这两个变量,或者我应该用代码解析它们?文档中的答案非常简单: 当然,需要将命令行和配置文件中的值组合起来。例如,命令行上指定的优化级别应覆盖配置文件中的值。另一方面,应该组合include路径 。。。如果在命令行和配置文件中都指定了相同的值,会发生什么情况?通常,首选先存储的值。这就是“-optimization”选项所发生的情况。对于“合成”选项,如“包含文件”,将合并这些值。
您可以添加在命令行和配置中重复的选项,如果它是非合并选项,则首选使用
po::store()
首先调用的选项看起来命令行选项值将被文件选项值覆盖。这就是你想要的吗?您尝试执行了吗?我想用命令行选项覆盖文件选项,但它没有执行我想要的操作。我测试运行代码,如果我用命令行更改了dimension,它将不会更新该值。