2010-08-10 62 views
6

我使用的代码由一组模块组成,编译为各个库。 反过来,库以不同的组合链接来构建不同的二进制文件。在模块化程序中使用Boost.Program_options

因此,这是相当有序的。

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

由于组命令行参数取决于什么库链接在一起,我不可能提前知道的所有参数,因此也无法将它们添加到program_options :: options_description。

你如何让每一个模块来增加它的命令行参数,并在以后读?

谢谢

回答

6

例如,通过使用options_description小号成员函数add(const options_description & desc)收集从你的模块的选项一起在一个描述:

options_description & add(const options_description & desc) ;
添加一组选项描述的。这与单独添加desc中的所有option_descriptions具有相同的效果,但输出操作员将显示​​单独的组。返回*this

提取选项可以通过传递例如简单地做模块周围的variables_map