Puede aumentar las opciones de programa separan valores de argumento separados por comas

Si mi línea de comando es:

> prog --mylist=a,b,c

¿Se pueden configurar las opciones_programa de Boost para ver tres valores de argumento distintos paramylist ¿argumento? He configurado las opciones de programa 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);

Cuando verifico el valor demylist argumento, veo un valor comoa,b,c. Me gustaría ver tres valores distintos, divididos en coma. Esto funciona bien si especifico la línea de comando como:

> prog --mylist=a b c

o

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

¿Hay alguna forma de configurar program_options para que veaa,b,c como tres valores que deberían insertarse cada uno en el vector, en lugar de uno?

Estoy usando boost 1.41, g ++ 4.5.0 20100520, y he habilitado las extensiones experimentales c ++ 0x.

EDITAR:

La solución aceptada funciona, pero termina siendo más complicada, en mi opinión, que simplemente iterar a través de un vector y dividir los valores manualmente. Al final, tomé la sugerencia de James McNellis y la implementé de esa manera. Sin embargo, su solución no se envió como respuesta, así que acepté la otra solución correcta de hkaiser. Ambos funcionaron, pero la tokenización manual es más clara.

Respuestas a la pregunta(3)

Su respuesta a la pregunta