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