Использование Boost.Program_options в модульной программе

Используемый мной код состоит из набора модулей, скомпилированных в отдельные библиотеки. Библиотеки, в свою очередь, связаны в разных комбинациях для создания разных двоичных файлов.

Итак, это довольно условно.

В разных модулях используются разные аргументы командной строки, и я хочу использовать Boost.Program_options для синтаксического анализа.

Поскольку набор аргументов командной строки зависит от того, какие библиотеки связаны между собой, я заранее не знаю всех аргументов и поэтому не могу их добавить в program_options:: options_description.

Как включить каждый модуль для добавления его аргументов командной строки, а затем их прочитать?

Спасибо

1 ответ

например. используя options_description функцию-член add(const options_description & desc), чтобы собрать параметры из ваших модулей вместе в одном описании:

options_description & add(const options_description & desc) ; Добавляет группу описания опций. Это имеет тот же эффект, что и добавление всех option_descriptions в desc отдельно, за исключением того, что оператор вывода покажет отдельную группу. Возвращает *this.

Варианты извлечения могут быть просто выполнены путем передачи, например. variables_map вокруг модулей.

licensed under cc by-sa 3.0 with attribution.