La version 3.0 de la bibliothèque d'analyse des arguments de ligne de commande C++ (dialecte C++17) a été publiée argparse, distribuée sous licence MIT.
Quoi de neuf :
- Ajout de la prise en charge des arguments mutuellement exclusifs :
auto &group = program.add_mutually_exclusive_group(); group.add_argument("—first"); group.add_argument("—second");
- Ajout d'un module C++20 ;
- Ajout de la prise en charge de la sélection parmi plusieurs valeurs :
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);
- Ajout de la prise en charge de la notation binaire, par exemple, 0b101 :
argparse::ArgumentParser program("test"); program.add_argument("-n").scan<‘b’, uint8_t>();
- Ajout d'une version surchargée de is_subcommand_used prenant le parseur de sous-commandes ;
- Ajout du paramètre exit_on_default_arguments dans ArgumentParser ;
- Ajout de la prise en charge de la suppression des sous-commandes de l'affichage de la commande —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);
- Ajout de la possibilité de vérifier la présence de valeurs analysées dans ArgumentParser ;
- Ajout de l'alignement par colonne pour l'aide multiligne des arguments ;
- de nombreuses erreurs ont été corrigées.
Source : linux.org.ru
