A avut loc lansarea versiunii 3.0 C++ (dialect C++17) a bibliotecii header-only pentru parsarea argumentelor din linia de comandă argparse, distribuită sub licența MIT.
Ce este nou:
- a fost adăugată suportul pentru argumente exclusiv mutuale:
auto &group = program.add_mutually_exclusive_group(); group.add_argument("—first"); group.add_argument("—second");
- a fost adăugat modulul C++20;
- a fost adăugat suportul pentru selectarea din mai multe valori:
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);
- a fost adăugat suportul pentru notația binară, de exemplu, 0b101:
argparse::ArgumentParser program("test"); program.add_argument("-n").scan();
- a fost adăugat un variantă suprascrisă is_subcommand_used, care acceptă parserul subcomenzilor;
- a fost adăugat parametrul exit_on_default_arguments în ArgumentParser;
- a fost adăugat suportul pentru ascunderea subcomenzilor din ieșirea comenzii —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);
- a fost adăugată posibilitatea de a verifica existența valorilor analizate în ArgumentParser;
- a fost adăugată alinierea pe coloane pentru ajutorul multi-linie pentru argumente;
- au fost corectate multe erori.
Sursa: linux.org.ru
