ไอวายยู 0.21

IWYU (หรือรวมสิ่งที่คุณใช้) ได้รับการเผยแพร่แล้ว โปรแกรมที่ช่วยให้คุณสามารถค้นหาสิ่งที่ซ้ำซ้อนและแนะนำให้ #include หายไปในโค้ด C/C++ ของคุณ

"รวมสิ่งที่คุณใช้" หมายความว่าสำหรับทุกสัญลักษณ์ (ประเภท ตัวแปร ฟังก์ชัน หรือมาโคร) ที่ใช้ใน foo.cc foo.cc หรือ foo.h จะต้องมีไฟล์ .h ที่ส่งออกการประกาศของสัญลักษณ์นั้น เครื่องมือรวมสิ่งที่คุณใช้คือโปรแกรมสำหรับวิเคราะห์ไฟล์ต้นฉบับ #include เพื่อค้นหาการละเมิดแนวทางนี้และให้คำแนะนำสำหรับการแก้ไข โปรแกรมใช้ไลบรารี Clang และโดยปกติแล้วเวอร์ชันจะหมายถึงความเข้ากันได้กับ Clang เวอร์ชันใหม่

วัตถุประสงค์หลักของการรวมสิ่งที่คุณใช้คือการลบ #include ที่ไม่จำเป็นออก ในการทำเช่นนี้ คุณต้องพิจารณาว่า #include ใดที่ไม่จำเป็นในไฟล์ที่กำหนด (สำหรับทั้ง .cc และ .h) และหากเป็นไปได้ ให้แทนที่ #include ด้วยการประกาศล่วงหน้า

การเปลี่ยนแปลงที่สำคัญ

  • เข้ากันได้กับเสียงดังกราว17
  • ปรับปรุงการวิเคราะห์นามแฝงประเภท (typedef และการใช้)
  • ปรับปรุงการวิเคราะห์นามแฝงของเนมสเปซ (เนมสเปซ xyz = foobar)
  • การสนับสนุนที่ได้รับการปรับปรุงสำหรับการประกาศไปข้างหน้าแบบขยาย (typedef struct Foo Bar;)
  • ปรับปรุงการจัดการ "การส่งอัตโนมัติ" และประเภทการส่งคืนฟังก์ชัน โดยเฉพาะอย่างยิ่งเมื่อทำงานกับประเภทเทมเพลตที่ซับซ้อน
  • เพิ่ม Pragma IWYU ใหม่: Always_keep เพื่อทำเครื่องหมายส่วนหัวที่ควรเก็บไว้เสมอไม่ว่าจะอยู่ที่ใดก็ตาม
  • ใช้การแมปสำหรับบิวด์อิน libc++ โดยอัตโนมัติ หาก libc++ เป็นไลบรารีมาตรฐานที่ใช้งานอยู่
  • ปรับปรุงการแมปสำหรับส่วนหัว libc++ และ posix

ที่มา: linux.org.ru

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