Hi Austin,
I'm wondering if program_options supports the notion of two command-line tokens forming a single value, and, if so, how. For example, one of the values I'd like to pass on via the command-line is `a position in lat-lon. For consistency with other programs my users know, I'd like to use something like this:
--position 10:11:12:N 13:14:15:W
During parsing, I'd like program_options to recognize that --position requires two associated tokens.
I tried to use the multitoken() method, but this didn't seem to do what I wanted. The operator>> I wrote for parsing the tokens was still only being passed a single token. Either multitoken doesn't do what I expect, or I'm missing something. Any ideas? Thanks.
Something strange. What is the type of the 'position' option? Unless it's std::vector of something, I'd expect an exception to be thrown. The solution to your problem is the overload the 'validate' function for your class. Like this: void validate(boost::any& v, const std::vectorstd::string& xs, your_type*, int) You can look at boost/program_options/detail/value_semantic.hpp to learn how to implement this. I intend to document and probably improve the mechanisms really soon now. - Volodya