argparse 3.0

Состоялся выпуск 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

לייגן אַ באַמערקונג