Ich entwickle ein Update in einem bestehenden Programm. Ich ersetze Posix's getopt_long() mit boost :: program_options. Aber meine Arbeit nicht funktioniert, wie ich sollte:C++ boost :: program_options lesen Argumente kompatibel mit getopt_long
-server=www.example.com
-c config.txt
ich viele Möglichkeiten von boost :: program_options :: command_line_style versuchte, aber ich kann nicht Kombinationen finden, die würde: Ich mag Lese Argumente haben wollen geben Sie Verhalten gleich getopt_long.
fand ich heraus, dass für Argumente:
-server=www.example.com
I Flaggen müssen:
command_line_style::allow_long_disguise | command_line_style::long_allow_adjacent
aber ich habe Probleme mit der Gründung Flaggen für:
-c config.txt
ich, dass Flaggen gefunden:
command_line_style::allow_short | command_line_style::allow_dash_for_short | command_line_style::short_allow_next
gib mir fast was ich will. Fast weil:
ProgramOptionsParserTest.cpp:107: Failure
Value of: params.config
Actual: " config.txt"
Expected: expectedParams.config
Which is: "config.txt"
so nach boost :: algorithm :: trim() wird es so sein, wie ich will.
Also meine Frage ist: ist es möglich, Argumente wie -c config.txt mit boost :: program_options zu handhaben, aber ohne boost :: Algorithmus :: trim()?
BEARBEITEN Ich bemerkte, dass Flags oben mit nicht registrierten Argumenten nicht funktionieren. Ich habe mich registriert Optionen:
programOptionsDescription.add_options()
("help,h", "display help message")
("config,c", value<std::string>(), "use configfile")
("server,s", value<std::string>(), "server")
("ipport,p", value<uint16_t>(), "server port");
aber wenn ich nicht registrierten Optionen (ja, ich habe basic_command_line_parser :: allow_unregistered()):
-calibration=something
Ich sehe:
the argument ('alibration=something') for option '-config' is invalid
Meine Frage nach Ausgabe ist: Wie behandelt man Argumente, die mit getopt_long mit boost :: program_options arbeiten?
Ich denke, diese Antwort ist nicht verwandt. Die Frage zielt eindeutig auf das Parsen von Programmoptionen ab (posix getopt() etc.) – user23573