Uso boost::program_options
para proporcionar una interfaz de análisis de línea de comandos para mi aplicación. Me gustaría configurarlo para analizar las opciones,Cómo manejar los parámetros no solicitados en boost :: program_options
using namespace boost::program_options;
options_description desc("Allowed options");
desc.add_options()
("help,h", "produce help message")
("version,v", "print the version number")
("include-path,I", value< vector<string> >(), "include path")
("input-file,i", value<string>(), "input file");
positional_options_description p;
p.add("input-file", 1);
variables_map vm;
parsed_options parsed = command_line_parser(ac, av).
options(desc).positional(p).run();
store(parsed, vm);
notify(vm);
me gustaría configurarlo para que cada símbolo después del último interruptor se devuelve en una forma de vector. He intentado usar collect_unrecognized
según el ejemplo que figura en la documentación de Boost, pero he tenido algunos problemas porque también estoy usando argumentos posicionales para el archivo de entrada.
Básicamente me gustaría hacerlo así. Si tengo:
./program -i "inputfile.abc" argument1 argument2 argument3
me gustaría para almacenar inputfile.abc
en el valor input-file
y devolver una vector<string>
de argument1
, argument2
y argument3
argumentos como no solicitados.
Me gustaría sin embargo también me gusta ser capaz de tener un argumento posicional, por lo que
./program "inputfile.abc" argument1 argument2 argument3
me daría el mismo resultado.
Disculpa si esto ya se ha pedido y gracias por tu ayuda.