argparse 3.0

కమాండ్ లైన్ ఆర్గ్యుమెంట్‌లను పార్సింగ్ చేయడానికి 3.0 C++ (C++17 మాండలికం) హెడర్-మాత్రమే లైబ్రరీ విడుదల argparse, 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("count") .default_value(0) .choices(0, 1, 2, 3, 4, 5);

  • బైనరీ సంజ్ఞామానానికి మద్దతు జోడించబడింది, ఉదాహరణకు 0b101:

argparse ::ArgumentParser ప్రోగ్రామ్("పరీక్ష"); program.add_argument("-n").స్కాన్<'b', uint8_t>();

  • is_subcommand_used యొక్క ఓవర్‌లోడ్ వెర్షన్ జోడించబడింది, ఇది సబ్‌కమాండ్ పార్సర్‌ను అంగీకరిస్తుంది;
  • ArgumentParserకి exit_on_default_arguments పరామితిని జోడించారు;
  • --help కమాండ్ అవుట్‌పుట్ నుండి సబ్‌కమాండ్‌లను దాచడానికి మద్దతు జోడించబడింది:

argparse ::ArgumentParser ప్రోగ్రామ్("పరీక్ష"); argparse ::ArgumentParser hidden_cmd("దాచిన"); hidden_cmd.add_argument("ఫైల్స్").మిగిలిన(); దాచిన_cmd.set_suppress(నిజం); program.add_subparser(hidden_cmd);

  • ArgumentParserలో అన్వయించబడిన విలువల కోసం తనిఖీ చేసే సామర్థ్యాన్ని జోడించారు;
  • ఆర్గ్యుమెంట్‌ల కోసం బహుళ-లైన్ సహాయ కాలమ్‌కు అమరిక జోడించబడింది;
  • చాలా బగ్‌లు పరిష్కరించబడ్డాయి.

మూలం: linux.org.ru

ఒక వ్యాఖ్యను జోడించండి