From: Pavol Droba (droba_at_[hidden])
Date: 2003-05-22 11:28:32
I have tried to use program_options library. I have compiled the library, ran the examples and then
incorporated the library into one of my projects.
All worked quite fine.
I have few remarks.
First and in my opinion the most important one is the matter of documentation.
I find it very hard to use. Examples are quite good to give a nice overview of the library
and that's sufficient for a decent start. But searching for the details is quite difficult.
I would prefer a few chapters explaining various components of the library, each followed by
a reference. Right now I find the documentation rather hard to use. Actuay it is very close to
browsing through header files and in my opinion this is not what the documentation should
Besides this issue, I think the library is quite nice and easy to use.
There are few goodies I'd like to see:
As it was already mentioned here, arguments should have the same support as options. Validation
and format checking would be appretiated
Library allows to supports validation and parsing of option parameters, but I thinks it is rather limited.
It is possible to define user-specific behaviour, but it would be helpful, if some common formats
would be suported.
* Various integer types ( not just int ) with boundary checking.
paramter<int>( "count", 1, 4, &count ) // 1-Min and 4-Max value
* Format specification and checking for string. Regex specification of something like scanf would be nice.
This can be useful for example to check if the parameter is a filename.
* Maybe some more ....
* Environment & Others
The library tries to unify the access to program options from command line and from ini files. This is very
nice feature because it is removing the need for doing generaly the same thing twice.
It would be nice if some other sources of paramers could be incorporated as well. Particulary the enviromnmet
is often used to exchange arguments. Given the fact that it consist of a set of pairs "variable=value"
it is very similar to the ini file and so it souldn't be hard to implement.
For windows platform the registry comes to play as another source of options.
I think that this library should be ACCEPTED to Boost. However I would strongly suggest to put some effort to make
the documentation more usable.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk