Prima di dire OVERKILL, non mi interessa.Gestione '-' con boost.program_options
Come posso rendere Boost.program_options gestire l'opzione cat
richiesta -
?
ho
// visible
po::options_description options("Options");
options.add_options()("-u", po::value<bool>(), "Write bytes from the input file to the standard output without delay as each is read.");
po::positional_options_description file_options;
file_options.add("file", -1);
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(options).positional(file_options).run(), vm);
po::notify(vm);
bool immediate = false;
if(vm.count("-u"))
immediate = true;
if(vm.count("file"))
support::print(vm["file"].as<vector<string>>());
che genera un'eccezione quando corro cat - - -
:
opzione non riconosciuta '-'
voglio che vedere -
come argomento posizionale, e ne ho bisogno nell'ordine corretto nella lista completa dei file. Come potrei ottenere questo?
UPDATE
Ho un mezzo correzione. Avevo bisogno
po::options_description options("Options");
options.add_options()("-u", po::value<bool>(), "Write bytes from the input file to the standard output without delay as each is read.")
("file", po::value< vector<string> >(), "input file");
po::positional_options_description file_options;
file_options.add("file", -1);
Il problema è che, mi sembra di ottenere solo 2 dei tre -
quando l'uscita ho gli argomenti:
if(vm.count("file"))
support::print(vm["file"].as<vector<string>>());
in cui il sostegno :: stampa ben gestisce il vettore e roba.
Boost.PO ha il suo (sorta di limitata) la sintassi di opzioni. Probabilmente puoi utilizzare Boost.PO per la sintassi che desideri. – Abyx
@Oli: completato. Grazie. – rubenvb