2010-08-10 3 views
6

Le code que j'utilise consiste en un ensemble de modules, compilés dans des bibliothèques individuelles. Les bibliothèques, à leur tour, sont liées dans différentes combinaisons pour construire des binaires différents.Utilisation de Boost.Program_options dans le programme modulaire

Donc, c'est plutôt ordinal.

Différents modules utilisent des arguments de ligne de commande différents et je souhaite utiliser Boost.Program_options pour l'analyse. Comme l'ensemble des arguments de la ligne de commande dépend de ce que les bibliothèques sont liées, je ne connais pas tous les arguments à l'avance et je ne peux donc pas les ajouter à program_options :: options_description.

Comment permettre à chaque module d'ajouter ses arguments de ligne de commande et de les lire plus tard?

Merci

Répondre

6

E.g. en utilisant la fonction de membre de options_descriptionadd(const options_description & desc) pour recueillir les options de vos modules ensemble dans une description:

options_description & add(const options_description & desc) ;
Ajoute un groupe de description de l'option. Cela a le même effet que d'ajouter tous les option_descriptions dans desc individuellement, sauf que l'opérateur de sortie affichera un groupe distinct. Renvoie *this.

Les options d'extraction peuvent être simplement réalisées en faisant passer par ex. le variables_map autour des modules.

Questions connexes