Boost Programmoptionen abhängige Optionen

8

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.

    
Conor Taylor 10.07.2016, 06:02
quelle

1 Antwort

2

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:

%Vor%

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.

    
malat 28.04.2017 08:22
quelle