Boost logo

Boost :

From: Pavol Droba (droba_at_[hidden])
Date: 2003-05-22 11:28:32


Hi,

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
be about.

Besides this issue, I think the library is quite nice and easy to use.

There are few goodies I'd like to see:

* Arguments

   As it was already mentioned here, arguments should have the same support as options. Validation
   and format checking would be appretiated

* Validation
   
   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.

   For instance:
      * Various integer types ( not just int ) with boundary checking.
        Something like
               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.

Conclusion:

   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.

   
Pavol


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk