Главная » C++ » boost :: program_options: недокументированное & quot; * & quot; функция обнаружена, теперь нужен специальный валидатор, который пишет на карту
boost :: program_options: недокументированное & quot; * & quot; функция обнаружена, теперь нужен специальный валидатор, который пишет на карту
Я недавно обнаружил недокументированную особенность boost::program_optionsа именно, что он принимает «*» в качестве специального подстановочного знака, который позволяет объявлять группу параметров с одинаковым префиксом, например так:
Эта декларация работала как ожидалось item_1, item_3и т. д. при отклонении неизвестных опций.
Ну, теперь вопрос, как я могу написать пользовательскую функцию проверки
это заполнит карту ключом параметров и его значением, например так:
Вам нужно перебрать все аргументы, идентифицирующие, который имеет правильный префикс, или написать собственный анализатор. Инструкции для обоих вариантов приведены в правильном ответе по ссылке ниже:
Вариант итерации может показаться более простым для понимания (реализации и чтения), но пользовательский парсер тоже кажется хорошим (хотя я никогда не использовал его).