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
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to