การแยกวิเคราะห์ 3.0

การแยกวิเคราะห์ 3.0

การเปิดตัวไลบรารี่เฉพาะส่วนหัว 3.0 C++ (C++17 dialect) สำหรับการแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง หาเรื่องเผยแพร่ภายใต้ใบอนุญาต MIT

มีอะไรใหม่:

  • เพิ่มการสนับสนุนข้อโต้แย้งที่ไม่เกิดร่วมกัน:

อัตโนมัติ &group = 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.add_argument("-n").scan<'b', uint8_t>();

  • เพิ่มเวอร์ชันที่โอเวอร์โหลดของ is_subcommand_used ซึ่งยอมรับตัวแยกวิเคราะห์คำสั่งย่อย
  • เพิ่มพารามิเตอร์ exit_on_default_arguments ให้กับ ArgumentParser
  • เพิ่มการสนับสนุนสำหรับการซ่อนคำสั่งย่อยจากเอาต์พุตของคำสั่ง --help:

argparse::โปรแกรม ArgumentParser("ทดสอบ"); argparse::ArgumentParser Hidden_cmd("ซ่อน"); Hidden_cmd.add_argument("ไฟล์").remaining(); Hidden_cmd.set_suppress(จริง); program.add_subparser(hidden_cmd);

  • เพิ่มความสามารถในการตรวจสอบค่าแยกวิเคราะห์ใน ArgumentParser;
  • เพิ่มการจัดตำแหน่งให้กับคอลัมน์วิธีใช้แบบหลายบรรทัดสำหรับการโต้แย้ง
  • ข้อบกพร่องมากมายได้รับการแก้ไขแล้ว

ที่มา: linux.org.ru

เพิ่มความคิดเห็น