argparse 3.0

good-penguin.png

Состоялся выпуск 3.0 C++ (диалект C++17) header-only библиотеки парсинга аргументов командной строки argparse, распространяемой по лицензии MIT.

Что нового:

  • добавлена поддержка взаимно исключающих аргументов:
auto &group = program.add_mutually_exclusive_group();
group.add_argument("--first");
group.add_argument("--second");
  • добавлен модуль C++20;
  • добавлена поддержка выбора из нескольких значений:
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);
  • добавлена поддержка двоичной нотации, например, 0b101:
argparse::ArgumentParser program("test");
program.add_argument("-n").scan<'b', uint8_t>();
  • добавлен перегруженный вариант is_subcommand_used, принимающий парсер подкоманд;
  • в ArgumentParser добавлен параметр exit_on_default_arguments;
  • добавлена поддержка скрытия подкоманд из вывода команды --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);
  • добавлена возможность проверки наличия разобранных значений в ArgumentParser;
  • добавлено выравнивание по столбцу многострочной справки для аргументов;
  • исправлены многие ошибки.

>>> Подробности

©  Linux.org.ru