Я использую boost:: program_options, чтобы прочитать вход пользователя из аргумента командной строки. Он работает очень хорошо и позволяет мне выводить полезные сообщения об использовании и правильно проверять ввод. Однако по умолчанию длинные имена опций должны появляться после двухкратной тишины, например --my_long_option
, а короткие параметры появляются после одной тире и должны быть одним символом, например; -m
.
Есть ли способ...
- Разрешить длинные параметры после одного
-
? - Разрешить короткие опции иметь более одного символа?
Таким образом, у меня есть командные строки, которые выглядят как
./a.out -myopt1 foo -myopt2 bar
Две возможности должны иметь тот же эффект, хотя с точки зрения программирования первая будет лучше. Я посмотрел на boost:: program_options:: command_line_style, но не похоже, что он может делать то, что мне нужно.
Спасибо
Изменить: В дополнение к принятому ниже ответу, чтобы заставить его использовать этот стиль, нужно добавить следующий код (следуя соглашению об именах для ускоренных документов)
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);