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?
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.
Tags und Links c++ boost boost-program-options getopt-long