Может повысить значения Program_options, разделенные запятыми значениями аргументов

Если моя командная строка:

> prog --mylist=a,b,c

Можно ли настроить параметры_программы Boost, чтобы увидеть три различных значения аргумента дляmylist аргумент? Я настроил program_options как:

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);

Когда я проверяю значениеmylist аргумент, я вижу одно значение какa,b,c, Я хотел бы видеть три различных значения, разделенные запятой. Это прекрасно работает, если я укажу командную строку как:

> prog --mylist=a b c

или же

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

Есть ли способ настроить program_options, чтобы он виделa,b,c как три значения, каждое из которых должно быть вставлено в вектор, а не одно?

Я использую boost 1.41, g ++ 4.5.0 20100520 и включил экспериментальные расширения c ++ 0x.

РЕДАКТИРОВАТЬ:

Принятое решение работает, но в конечном итоге становится более сложным, IMO, чем просто итерация по вектору и разделение значений вручную. В конце концов, я принял предложение Джеймса Макнеллиса и реализовал его таким образом. Однако его решение не было представлено как ответ, поэтому я принял другое правильное решение от hkaiser. Оба работали, но ручная токенизация понятнее.

Ответы на вопрос(3)

Ваш ответ на вопрос