我使用的代码由一组模块组成,编译成单独的库。反过来,库以不同的组合链接以构建不同的二进制文件。
所以,这是相当有序的。
不同的模块使用不同的命令行参数,我想使用 Boost.Program_options 进行解析。
由于命令行参数集取决于链接在一起的库,我事先不知道所有参数,因此无法将它们添加到 program_options::options_description。
您如何启用每个模块以添加它的命令行参数并稍后阅读它们?
谢谢
我使用的代码由一组模块组成,编译成单独的库。反过来,库以不同的组合链接以构建不同的二进制文件。
所以,这是相当有序的。
不同的模块使用不同的命令行参数,我想使用 Boost.Program_options 进行解析。
由于命令行参数集取决于链接在一起的库,我事先不知道所有参数,因此无法将它们添加到 program_options::options_description。
您如何启用每个模块以添加它的命令行参数并稍后阅读它们?
谢谢
例如,通过使用options_description
s 成员函数add(const options_description & desc)
将模块中的选项收集到一个描述中:
options_description & add(const options_description & desc) ;
添加一组选项描述。option_descriptions
这与单独添加所有的效果相同desc
,只是输出运算符将显示一个单独的组。退货*this
。
提取选项可以简单地通过例如传递variables_map
给模块来完成。