Ich verwende boost :: program_options-Bibliothek, um Befehlszeilenparameter zu verarbeiten. Ich muss einen Dateinamen über die Option -r akzeptieren, falls es leer ist (-r ohne Parameter angegeben), muss ich stdin verwenden.Wie akzeptiere ich leeren Wert in boost :: program_options
desc.add_options()
("replay,r", boost::program_options::value<std::string>(), "bla bla bla")
In diesem Fall würde Boost -r ohne Parameter nicht akzeptieren und eine Ausnahme auslösen. Die Option default_value() funktioniert nicht so gut, als würde sie den Rückgabewert der Bibliothek erzeugen, selbst wenn der Benutzer die Option -r nicht angegeben hat.
Irgendwelche Ideen, wie man arbeitet?
Danke! Funktioniert perfekt – cppalex
@Vladimir Prus, hier ist eine andere Frage über Optionen ohne Werte hier http://StackOverflow.com/Questions/7174781/Boost-Programm-Optionen-Notifier-for-Optionen-mit-No-Wert Ich möchte in der Lage sein, Notifier für solche Optionen hinzuzufügen oder ein Patch zu schreiben, um es zu aktivieren. Bitte, kommentieren, danke. – Riga
Leider funktioniert dies nicht, wenn aus irgendeinem Grund ein leerer Wert in der INI-Datei angegeben wird. –