De release van 3.0 C++ (C++17-dialect) header-only library voor het parseren van commandoregelargumenten is geplaatst. argparse, verspreid onder de MIT-licentie.
Wat is nieuw:
- ondersteuning voor wederzijds exclusieve argumenten toegevoegd:
auto &group = program.add_mutually_exclusive_group(); group.add_argument("—first"); group.add_argument("—second");
- C++20-module toegevoegd;
- ondersteuning voor het kiezen uit meerdere waarden toegevoegd:
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);
- ondersteuning voor binaire notatie toegevoegd, bijvoorbeeld, 0b101:
argparse::ArgumentParser program("test"); program.add_argument("-n").scan<‘b’, uint8_t>();
- een overbelaste versie van is_subcommand_used toegevoegd, die een subcommand-parser accepteert;
- een parameter exit_on_default_arguments toegevoegd aan ArgumentParser;
- ondersteuning voor het verbergen van subcommando's uit de uitvoer van het commando —help toegevoegd:
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);
- de mogelijkheid om de aanwezigheid van geparserde waarden in ArgumentParser te controleren toegevoegd;
- kolomuitlijning voor meervoudige hulp voor argumenten toegevoegd;
- veel fouten zijn gecorrigeerd.
Bron: linux.org.ru
