Аргументы без черточек с использованием boost :: program_options - PullRequest
0 голосов
/ 20 ноября 2018

Я пишу новую реализацию существующего программного обеспечения (реализация чистой комнаты, поэтому нет доступа к старому коду), а также новый интерфейс командной строки. Мне нужно эмулировать старый интерфейс для совместимости с существующими рабочими процессами.Я выбираю между старым и новым интерфейсом в зависимости от имени, с которым вызывается исполняемый файл, например, busybox.

Старый интерфейс командной строки, по существу, использует пары ключ-значение, но без каких-либо символов «-» или «=».например,

./oldcode Key1 value1 Key2 value2 Key3 value3 ...

Я уже использую повышение, поэтому хотел бы придерживаться program_options, если я могу.Проще всего было бы просто разобрать параметры, не требуя и «-» в начале аргумента, но я не вижу способа сделать это.

Возможно ли это с помощью program_options или мне лучше написатьпользовательский парсер для этого?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы должны написать собственный синтаксический анализатор для него, это не так сложно :) Особенно, когда вы найдете то, что вы нашли.

Механизм форсирования исключил = sing для пар ключ-значение.

Если вы не хотите писать самостоятельно, используйте существующий код: https://github.com/jarro2783/cxxopts

...