Синтаксис опций ускоренной программы

я использую boost::program_options для чтения входных данных пользователей из аргумента командной строки. Это очень хорошо работает и позволяет мне выводить полезные сообщения об использовании и проверять ввод корректно. Однако по умолчанию длинные имена опций должны идти после двойного тире, например --my_long_option, а короткие опции - после одиночного тире и должны быть односимвольными, например; -m.

Есть ли способ или...

  • Разрешать длинные опции после одного -?
  • Разрешать длинные опции после одного символа?

Разрешать длинные опции после одного символа?

Это позволяет мне иметь командные строки, которые выглядят как

./a.out -myopt1 foo -myopt2 bar

Эти две опции должны иметь один и тот же эффект, хотя с точки зрения программирования первая была бы лучше. Я посмотрел на boost::program_options::command_line_style, но не похоже, что он может делать то, что мне нужно.

Спасибо

Правка: В дальнейшем, чтобы заставить maven использовать этот стиль, необходимо добавить следующий код (следуя соглашению об именовании в документах boost)

po::store(
    po::command_line_parser(ac,av)
        .options(desc)
        .style(
            po::command_line_style::unix_style
          | po::command_line_style::allow_long_disguise)
        .run(),
    vm);

15
задан Mankarse 25 May 2013 в 15:41
поделиться