C ++ boost :: program_options Lesen von Argumenten, die mit getopt_long kompatibel sind

9

Ich entwickle ein Update in einem bestehenden Programm. Ich ersetze Posix's getopt_long () mit boost :: program_options. Aber meine Arbeit funktioniert nicht so wie ich sollte: Ich möchte Argumente gelesen haben wie:

%Vor%

Ich habe viele Möglichkeiten von boost :: program_options :: command_line_style ausprobiert, aber ich kann keine Kombinationen finden, die ein Verhalten ergeben würden, das getopt_long entspricht.

Ich habe das für Argumente herausgefunden:

%Vor%

Ich brauche Fahnen:

%Vor%

Aber ich habe Probleme mit der Gründung von Flags für:

%Vor%

Ich habe diese Flaggen gefunden:

%Vor%

Gib mir fast, was ich will. Fast weil:

%Vor%

Also nach boost :: algorithm :: trim () wird es so sein, wie ich will.

Also meine Frage ist: ist es möglich, Argumente wie zu behandeln -c Konfig.txt mit boost :: program_options aber ohne boost :: algorithm :: trim ()?

BEARBEITEN Ich habe bemerkt, dass die obigen Flags nicht mit nicht registrierten Argumenten funktionieren. Ich habe Optionen registriert:

%Vor%

aber wenn ich nicht registrierte Optionen verwende (ja, ich habe basic_command_line_parser :: allow_unregistered ()):

%Vor%

Ich sehe:

%Vor%

Meine Frage nach der Ausgabe lautet: Wie behandelt man Argumente, die mit getopt_long mit boost :: program_options arbeiten?

    
Grzegorz Bazior 24.12.2014, 11:22
quelle

1 Antwort

1

Wenn Sie boost :: program_options verwenden, wird das Symbol "=" angezeigt. ist notwendig, um die Parameter richtig zu parsen. Wenn es fehlt, wird eine Ausnahme ausgelöst. Übrigens ist auch die boost :: property_tree eine sehr gute Wahl Konfigurationsdateien parsen. Code:

%Vor%

Der "DEFAULT" ist der Name der Sektion der Konfigurationsdatei. Sie können es versuchen.

    
cwfighter 15.05.2015 08:59
quelle