2010-08-10 9 views
6

Der Code, den ich verwende, besteht aus einem Satz von Modulen, die zu einzelnen Bibliotheken kompiliert sind. Bibliotheken wiederum sind in verschiedenen Kombinationen verknüpft, um verschiedene Binärdateien zu erstellen.Verwenden von Boost.Program_options im modularen Programm

Also für, es ist ziemlich ordinal.

Verschiedene Module verwenden verschiedene Befehlszeilenargumente und ich möchte Boost.Program_options für das Parsen verwenden.

Da die Menge der Befehlszeilenargumente davon abhängt, welche Bibliotheken miteinander verknüpft sind, weiß ich nicht im Voraus alle Argumente und kann sie daher nicht zu program_options :: options_description hinzufügen.

Wie aktivieren Sie jedes Modul, um seine Befehlszeilenargumente hinzuzufügen und später zu lesen?

Dank

Antwort

6

z. von options_description Mitgliedsfunktion add(const options_description & desc) mit den Optionen aus Ihrer Module zusammen in einer Beschreibung zu sammeln:

options_description & add(const options_description & desc) ;
Fügt eine Gruppe von Optionsbeschreibung. Dies hat die gleiche Wirkung wie das Hinzufügen aller option_descriptions in desc einzeln, außer dass der Ausgabeoperator eine separate Gruppe anzeigt. Rückgabe *this.

Extrahieren von Optionen könnte einfach durchgeführt werden, indem z.B. die variables_map um die Module herum.

Verwandte Themen