я использую 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);