我想从配置文件中重新加载一些值。我知道 po::store
不会更改存在于 variables_map
中的值。有没有替代方案可以替换值,即使它们已经存在?
我尝试删除即将从 variables_map
重新加载的值,但是 po::store
无论如何都不会添加新值(即使旧值不能都可以访问)。
最佳答案
P3trus 的解决方案涉及向下转换。这是必要的,因为 variables_map
重载了 std::map::operator[]
返回一个 const variable_value &
(const 防止重新分配)。
但是在 C++11 中我们有 std::map::at()
没有重载,所以可以这样做:
vm.at(option).value() = val;
直接在需要的地方。
关于c++ - boost::program_options 如何重新加载一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371435/