Se lanzó la versión 3.0 de C++ (dialecto C++17) de la biblioteca de encabezado para el análisis de argumentos de línea de comandos argparse, distribuida bajo la licencia MIT.
Novedades:
- se agregó soporte para argumentos mutuamente excluyentes:
auto &group = program.add_mutually_exclusive_group(); group.add_argument("—first"); group.add_argument("—second");
- se añadió un módulo C++20;
- se agregó soporte para elegir entre varios valores:
program.add_argument("input") .default_value(std::string{"baz"}) .choices("foo", "bar", "baz"); program.add_argument("count") .default_value(0) .choices(0, 1, 2, 3, 4, 5);
- se agregó soporte para notación binaria, por ejemplo, 0b101:
argparse::ArgumentParser program("test"); program.add_argument("-n").scan<‘b’, uint8_t>();
- se agregó una versión sobrecargada de is_subcommand_used que acepta el analizador de subcomandos;
- se añadió el parámetro exit_on_default_arguments en ArgumentParser;
- se agregó soporte para ocultar subcomandos de la salida del comando —help:
argparse::ArgumentParser program("test"); argparse::ArgumentParser hidden_cmd("hidden"); hidden_cmd.add_argument("files").remaining(); hidden_cmd.set_suppress(true); program.add_subparser(hidden_cmd);
- se agregó la capacidad de verificar la existencia de valores analizados en ArgumentParser;
- se añadió el alineamiento por columna para la ayuda multislínea de los argumentos;
- se han corregido muchos errores.
Fuente: linux.org.ru
