การเปิดตัวไลบรารี่เฉพาะส่วนหัว 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