结果出乎我的意料,这个库的设计初衷应该是用来处理命令行参数的,处理配置文件可能只是一个衍生物。对命令行参数处理是不错,对配置文件的支持则让人沮丧。别的不说,单是看一看其配置文件的实例 multiple_sources.cfg,唉!连section都没有!
此文件在 BOOST_ROOT\libs\program_options\example\目录下,内容如下:
#
# Comment out this line to use hard-coded default value of 10
#
optimization = 1
include-path = /opt
如果是要处理命令行,这个类是比较好的。除去一些正常的支持外,还支持UNICODE,支持winmain参数等不少功能。但我想要的是一个处理配置文件的类,只得放手了。
不过这个库有些小技巧感觉还是不错的,下面这段代码如果是C++的初学者可能会很吃惊,因为这个集合加项的语法比较特别,让人感觉清晰明快。
怎么做到这样的效果?我简化了Program_options.add_options()相关的类和代码,有兴趣的朋友可以看一下。
测试代码
结果: