6

我使用的代码由一组模块组成,编译成单独的库。反过来,库以不同的组合链接以构建不同的二进制文件。

所以,这是相当有序的。

不同的模块使用不同的命令行参数,我想使用 Boost.Program_options 进行解析。

由于命令行参数集取决于链接在一起的库,我事先不知道所有参数,因此无法将它们添加到 program_options::options_description。

您如何启用每个模块以添加它的命令行参数并稍后阅读它们?

谢谢

4

1 回答 1

6

例如,通过使用options_descriptions 成员函数add(const options_description & desc)将模块中的选项收集到一个描述中:

options_description & add(const options_description & desc) ;
添加一组选项描述。option_descriptions这与单独添加所有的效果相同desc,只是输出运算符将显示一个单独的组。退货*this

提取选项可以简单地通过例如传递variables_map给模块来完成。

于 2010-08-10T20:28:38.403 回答