As Opções do Programa Boost podem separar valores de argumentos separados por vírgula

Se minha linha de comando for:

> prog --mylist=a,b,c

As program_options do Boost podem ser configuradas para ver três valores de argumento distintos para omylist argumento? Eu configurei program_options como:

namespace po = boost::program_options;
po::options_description opts("blah")

opts.add_options()
    ("mylist", std::vector<std::string>>()->multitoken, "description");

po::variables_map vm;
po::store(po::parse_command_line(argc, argv, opts), vm);
po::notify(vm);

Quando verifico o valor domylist argumento, vejo um valor comoa,b,c. Eu gostaria de ver três valores distintos, divididos em vírgula. Isso funciona bem se eu especificar a linha de comando como:

> prog --mylist=a b c

ou

> prog --mylist=a --mylist=b --mylist=c

Existe uma maneira de configurar as opções do programa para que ele vejaa,b,c como três valores que devem ser inseridos no vetor, em vez de um?

Estou usando o boost 1.41, g ++ 4.5.0 20100520 e habilitei extensões experimentais c ++ 0x.

EDITAR:

A solução aceita funciona, mas acaba sendo mais complicada, IMO, do que apenas iterando através de um vetor e dividindo os valores manualmente. No final, peguei a sugestão de James McNellis e a implementei dessa maneira. Sua solução não foi enviada como resposta, no entanto, então aceitei a outra solução correta da hkaiser. Ambos funcionaram, mas a tokenização manual é mais clara.

questionAnswers(3)

yourAnswerToTheQuestion