c++ - 是否可以在 CLI 解析完成后添加 boost program_options 和参数?

标签 c++ boost boost-program-options

boost.program_options 库存储并允许以编程方式访问程序运行时在命令行上提供的参数。

一旦程序运行并且已经解析了所有 CLI 参数,调用一些库函数(我不知道,或者易于编码)来实例化选项/参数,还更改选项上的值参数是否可行?换句话说,是否可以简单地启动(即添加)源代码中已配置但在调用时未提及的现有选项?

为什么?假设该程序有一个 GUI,并且用户想要更新在命令行设置的一些设置。

最佳答案

您将不得不重新解析。

动态添加 program_options_descriptions 更适用于您有一个插件可以添加额外选项的情况,而不是用于更改已经解析的内容。或者用于获取几组选项(基本、高级、环境变量和配置文件来源)并填充 variables_map。

options_description 有一个 add() 重载采用另一个 options_description 实例并将该实例的选项添加到此。但是,这样的添加不会导致 variable_map 中已经解析的项目发生变化。

关于c++ - 是否可以在 CLI 解析完成后添加 boost program_options 和参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613782/

相关文章:

c++ - 为什么在 C++ 中可以在头文件中定义成员函数而不是自由函数?

c++ - 标签中的继承反射

c++ - 如何复制结构(这是结构中的结构)并将其填充到C++中的结构数组中

C++ Boost.serialization 与简单加载/保存

c++ - boost::program_options 配置文件格式

c++ - boost::program_options 的链接错误

C++ 共享库

C++ boost asio : bind: Address already in use

c++ - Boost 程序选项添加选项语法

c++ - 使用 boost::program_options 作为类的静态成员