Boost logo

Boost Users :

Subject: Re: [Boost-users] Unknown number of multitoken lists?
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-04-15 01:30:39


David Doria wrote:

> I want to do something like this:
> --NumLists 2 --List0 a.txt b.txt --List1 c.txt d.txt
>
> vector<vector<string> > Lists(2);
>
> po::options_description desc("Allowed options");
> desc.add_options()
> ("help", "produce help message")
> ("List0", po::value<vector<string> >(&Lists[0])->multitoken(),
> "List0.")
> ("List1", po::value<vector<string> >(&Lists[1])->multitoken(),
> "List1.")
> ;
>
> But if I wanted to handle --NumLists 10, I would have to manually add List0,
> List1, ... List10 as parameters. That seems a bit silly, but maybe this is a
> very odd usage?

Well, it's somewhat odd :-)

> Please let me know if you can think of a better way to
> handle this.

Well, as a remark, your command line interface will make users cry:

- Do you really want users to type uppercase letters? (Use can use
  case-insensitive mode, of course, and allow any spelling, but upper
  case in your example seems strange.
- Do you really want users to count lists and pass 0, 1, 2, etc explicitly?
- Why do you need explicit specification of the number of lists?

I'd use:

        --list a.txt b.txt --list c.txt d.txt

You might find the recent thread useful for handling such command lines:

        http://permalink.gmane.org/gmane.comp.lib.boost.user/46405

- Volodya


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net