
Hi,
When writing an application, how do I use boost::program_options to parse a std::vector< std::string >? At least I have not found any overloaded version of parse_command_line(). Maybe I have just not seen it.
The tutorial explains this. Also, see main_tutorial_3.cpp.
I see, thanks. I don't like it, though I don't have an alternative solution at hand. Somehow this feels very clumsy with that init() method. As example of a pure OO approach you could have a look at Qts QApplication. That one gets argc and argv as constructor parameters. Yet I do like the idea of using a vector< string > instead of the C like argc and argv construct. Another approach would be to better integrate the Application and program_options. E.g. the Application could be initialized with an options object and a container object to hold the parsed options. Then the main() method (or, what I'd prefer the call operator) would simply get the already parsed parameters. Of course there is also the option to extend program_options so that it can parse not only from argc and argv, but from a range of string like objects. Then you could use begin() and end() to create a range from the vector< string >, you could use argv[0] and argv[argc], or any other kind of range. That might also be usefull for situations where application is not used. Personally I'd prefer the last option, because it opens up new possibilities for other situations as well and keeps application flexible as well. Integrating program_options in application would take away the liberty from the user to not use program_options for whatever reasons. The idea with init() is clumsy and passing argc and argv to the constructor is just like passing them to the main method itsself. Christof -- okunah gmbh Software nach Maß Werner-Haas-Str. 8 www.okunah.de 86153 Augsburg cd@okunah.de Registergericht Augsburg Geschäftsführer Augsburg HRB 21896 Christof Donat UStID: DE 248 815 055