2010-08-10 9 views
6

El código que uso consiste en un conjunto de módulos compilados para bibliotecas individuales. Las bibliotecas, a su vez, están vinculadas en diferentes combinaciones para crear binarios diferentes.Usando Boost.Program_options en el programa modular

Por lo tanto, es bastante ordinal.

Diferentes módulos utilizan diferentes argumentos de línea de comandos y quiero usar Boost.Program_options para analizar.

Dado que el conjunto de argumentos de línea de comando depende de qué bibliotecas estén enlazadas, no sé de antemano todos los argumentos y, por lo tanto, no puedo agregarlos a program_options :: options_description.

¿Cómo habilita a cada módulo para agregar sus argumentos de línea de comando y luego leerlos?

Gracias

Respuesta

6

E.g. mediante el uso de options_description s función miembro add(const options_description & desc) para recoger las opciones de los módulos en un solo Descripción:

options_description & add(const options_description & desc) ;
Añade un grupo de descripción de la opción. Esto tiene el mismo efecto que agregar todos option_descriptions en desc individualmente, excepto que el operador de salida mostrará un grupo separado. Devuelve *this.

Las opciones de extracción se pueden hacer simplemente pasando, p. Ej. el variables_map alrededor de los módulos.

Cuestiones relacionadas