Lanzamento da biblioteca 3.0 C++ (dialecto C++ 17) só de cabeceira para analizar argumentos da liña de comandos argparse, distribuído baixo a licenza MIT.
Novedades:
- apoio adicional para argumentos mutuamente excluíntes:
auto &group = program.add_mutually_exclusive_group(); group.add_argument("—primeiro"); group.add_argument("—segundo");
- módulo C++20 engadido;
- soporte adicional para seleccionar entre varios valores:
program.add_argument("input") .default_value(std::string{"baz"}) .choices("foo", "bar", "baz"); programa.engadir_argumento("conto") .valor_predeterminado(0) .eleccións(0, 1, 2, 3, 4, 5);
- engadiu soporte para a notación binaria, por exemplo 0b101:
argparse::ArgumentParser program("proba"); program.add_argument("-n").scan<'b', uint8_t>();
- engadiu unha versión sobrecargada de is_subcommand_used, que acepta un analizador de subcomandos;
- engadiu o parámetro exit_on_default_arguments a ArgumentParser;
- engadiu soporte para ocultar subcomandos da saída do comando --help:
argparse::ArgumentParser program("proba"); argparse::ArgumentParser hidden_cmd("oculto"); hidden_cmd.add_argument("arquivos").remaining(); hidden_cmd.set_suppress(true); program.add_subparser(hidden_cmd);
- engadiu a posibilidade de comprobar os valores analizados en ArgumentParser;
- engadiu o aliñamento á columna de axuda multiliña para os argumentos;
- Moitos erros foron corrixidos.
Fonte: linux.org.ru