Ich versuche, Befehlszeile mit Boost 1.58.0 zu analysieren. Mein Code ist ziemlich einfach und kopiert \ pasted von den Tutorien. Es sieht so aus:
%Vor% Der gesamte Code ist hier .
Der Code scheint korrekt zu sein. Der app -v
wird korrekt verarbeitet. Aber wenn ich irgendein Positionsargument einfüge, wie app myfile
das po::store()
throws unrecognised option 'myfile'
. Irgendwelche Ideen darüber, warum dies geschieht?
Sie müssen "Eingabedatei" als Option hinzufügen:
%Vor%Von dem Lernprogramm :
Die Option "Eingabedatei" gibt die Liste der zu verarbeitenden Dateien an. Das ist in Ordnung für den Anfang, aber, natürlich, etwas wie schreiben:
%Vor%ist ein wenig nicht standardisiert, verglichen mit
%Vor%Wir werden uns gleich damit befassen.
Die Befehlszeilen-Tokens, die wie oben keinen Optionsnamen haben, werden von dieser Bibliothek als "Positionsoptionen" bezeichnet. Sie können auch behandelt werden. Mit ein wenig Hilfe vom Benutzer kann die Bibliothek entscheiden, dass "a.cpp" wirklich dasselbe bedeutet wie "--input-file = a.cpp". Hier ist der zusätzliche Code, den wir brauchen:
%Vor%
Tags und Links c++ boost boost-program-options