Ich habe eine positionale Option (ein Dateiname) und ich möchte, dass es die letzte Option ist. Im Grunde kann der Benutzer eine Menge Dinge in der Befehlszeile übergeben und auch -F für den Dateinamen verwenden. Ich möchte jedoch, dass der Benutzer auch die Möglichkeit hat, den Dateinamen am Ende zu platzieren.boost :: program_options Positionsoptionen
Zum Beispiel
./program --var 3 /path/to/file
Der Code, den ich zur Zeit umgesetzt haben, kann der Anrufer den Namen der Datei, wo immer in der Befehlszeile platzieren. Gibt es trotzdem die Positionsargumente zu zwingen, immer nach den "normalen" zu kommen?
Hier ist, wie ich Set-up, die das Positions Argument:
pos_opts_desc.add("filename", -1);
Und die Befehlszeile zu analysieren:
store(
command_line_parser(argc, argv).options(opts_desc).postional(pos_opts_desc).run(),
opts_var_map);
Vielen Dank im Voraus für die Hilfe.
Edited hinzufügen:
ich vollkommen in Ordnung bin mit -F überall in der Befehlszeile angegeben werden. Wenn die Einstellung jedoch über die Positionsoption vorgenommen wurde, möchte ich sicherstellen, dass die Positionsoption ganz am Ende ist.
Obwohl ich mit einer mehr C++ 98 Route ging, wies diese Antwort mich in die richtige Richtung. Vielen Dank. –