āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 3.0 C++ (C++17 āĻāĻĒāĻāĻžāĻˇāĻž) āĻšā§āĻĄāĻžāĻ°-āĻ āĻ¨āĻ˛āĻŋ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ°āĻŋāĻ˛āĻŋāĻ āĻāĻ°ā§āĻāĻĒāĻžāĻ°ā§āĻ¸, MIT āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋ:
- āĻĒāĻžāĻ°āĻ¸ā§āĻĒāĻ°āĻŋāĻ āĻāĻāĻā§āĻāĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻ āĻā§ &āĻā§āĻ°ā§āĻĒ = program.add_mutually_exclusive_group(); group.add_argument("âāĻĒā§āĻ°āĻĨāĻŽ"); group.add_argument("âāĻ¸ā§āĻā§āĻ¨ā§āĻĄ");
- C++20 āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻāĻāĻžāĻ§āĻŋāĻ āĻŽāĻžāĻ¨ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
program.add_argument("input") .default_value(std::string{"baz"}) .choices("foo", "bar", "baz"); program.add_argument("āĻāĻŖāĻ¨āĻž") .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_cmd.add_argument("files").remaining(); hidden_cmd.set_suppress(āĻ¸āĻ¤ā§āĻ¯); program.add_subparser(hidden_cmd);
- ArgumentParser-āĻ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ˛āĻžāĻāĻ¨ āĻšā§āĻ˛ā§āĻĒ āĻāĻ˛āĻžāĻŽā§ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§āĻāĻ°āĻŖ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- āĻ āĻ¨ā§āĻ āĻŦāĻžāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§.
āĻāĻ¤ā§āĻ¸: linux.org.ru