argparse 3.0

C++ (C++17 เชฌเซ‹เชฒเซ€) เชนเซ‡เชกเชฐ-เช“เชจเซเชฒเซ€ เช•เชฎเชพเชจเซเชก-เชฒเชพเช‡เชจ เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ เชชเชพเชฐเซเชธเชฟเช‚เช— เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ 3.0 เชฐเชฟเชฒเซ€เช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช†เชฐเซเช—เชชเชพเชฐเซเชธ, MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค.

เชจเชตเซเช‚ เชถเซเช‚ เช›เซ‡:

  • เชชเชฐเชธเซเชชเชฐ เชตเชฟเชถเชฟเชทเซเชŸ เชฆเชฒเซ€เชฒเซ‹ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชฎเชฐเซเชฅเชจ:

เช“เชŸเซ‹ &เช—เซเชฐเซเชช = เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ.เชเชก_เชฎเซเชฏเซเชšเซเชฏเซเช…เชฒเซ€_เชเช•เซเชธเช•เซเชฒเซเชเชฟเชต_เช—เซเชฐเซเชช(); เช—เซเชฐเซเชช.เชเชก_เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ("โ€”เชชเชนเซ‡เชฒเซ‹"); เช—เซเชฐเซเชช.เชเชก_เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ("โ€”เชฌเซ€เชœเซ‹");

  • C++20 เชฎเซ‹เชกเซเชฏเซเชฒ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚;
  • เชฌเชนเซเชตเชฟเชง เชฎเซ‚เชฒเซเชฏเซ‹เชฎเชพเช‚เชฅเซ€ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ:

เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ.เชเชก_เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ("เช‡เชจเชชเซเชŸ") .เชกเชฟเชซเซ‹เชฒเซเชŸ_เชตเซ‡เชฒเซเชฏเซ(std::เชธเซเชŸเซเชฐเชฟเช‚เช—{"เชฌเชพเช"}) .เชšเซ‹เช‡เชธ("เชซเซ‚", "เชฌเชพเชฐ", "เชฌเชพเช"); เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ.เชเชก_เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ("เช—เชฃเชคเชฐเซ€") .เชกเชฟเชซเซ‹เชฒเซเชŸ_เชตเซ‡เชฒเซเชฏเซ(0) .เชšเซ‹เช‡เชธ(0, 1, 2, 3, 4, 5);

  • เชฌเชพเชˆเชจเชฐเซ€ เชจเซ‹เชŸเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, 0b101:

argparse::เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸเชชเชพเชฐเซเชธเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ("เชŸเซ‡เชธเซเชŸ"); เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ.เชเชก_เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸ("-n").เชธเซเช•เซ‡เชจ<'b', uint8_t>();

  • is_subcommand_used เชจเซเช‚ เช“เชตเชฐเชฒเซ‹เชกเซ‡เชก เชตเชฐเซเชเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เชœเซ‡ เชธเชฌเช•เชฎเชพเชจเซเชก เชชเชพเชฐเซเชธเชฐ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡;
  • เช†เชฐเซเช—เซเชฏเซเชฎเซ‡เชจเซเชŸเชชเชพเชฐเซเชธเชฐเชฎเชพเช‚ exit_on_default_arguments เชชเชฐเชฟเชฎเชพเชฃ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡;
  • --help เช†เชฆเซ‡เชถ เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚เชฅเซ€ เชธเชฌเช•เชฎเชพเชจเซเชก เช›เซเชชเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ:

argparse::ArgumentParser เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ("เชŸเซ‡เชธเซเชŸ"); argparse::ArgumentParser hidden_cmd("hidden"); hidden_cmd.add_argument("เชซเชพเช‡เชฒเซ‹"). เชฌเชพเช•เซ€(); hidden_cmd.set_suppress(true); program.add_subparser(hidden_cmd);

  • ArgumentParser เชฎเชพเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฟเชค เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชนเชพเชœเชฐเซ€ เชคเชชเชพเชธเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเซ€;
  • เชฆเชฒเซ€เชฒเซ‹ เชฎเชพเชŸเซ‡ เชฌเชนเซ-เชฒเชพเช‡เชจ เชฎเชฆเชฆ เชฎเชพเชŸเซ‡ เช•เซ‰เชฒเชฎ เช—เซ‹เช เชตเชฃเซ€ เช‰เชฎเซ‡เชฐเชพเชˆ;
  • เช˜เชฃเซ€ เชญเซ‚เชฒเซ‹ เชธเซเชงเชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: linux.org.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹