Gibt es eine Möglichkeit, Programmoptionen von anderen Optionen abhängig zu machen, indem Sie boost::program_options
verwenden?
Zum Beispiel kann mein Programm die folgenden Beispielargumente akzeptieren:
%Vor% In diesem Beispiel sind die Argumente interface
und ssid
nur gültig, wenn sie von scan
begleitet werden. Sie sind abhängig vom Argument scan
.
Gibt es eine Möglichkeit, dies automatisch mit boost::program_options
zu erzwingen? Es kann natürlich manuell implementiert werden, aber es scheint, dass es einen besseren Weg geben muss.
Sie können zwei abhängige Optionen definieren, indem Sie einfach eine kleine Funktion definieren, wie in real beschrieben .cpp . Sie können beispielsweise zwei abhängige (oder widersprüchliche) Optionen angeben, die eine Funktion option_dependency()
definieren:
und dann
aufrufen %Vor% direkt nach boost::program_options::store()
Beachten Sie, dass diese Funktion option_dependency
nur in einer Richtung ist. In diesem Fall benötigt ssid
die Option scan
, aber nicht umgekehrt.
Tags und Links c++ boost command-line-arguments boost-program-options