เราอยู่ในปี 2020 และ C ++ 20 กำลังจะมาพร้อมกับคุณสมบัติโมดูล C ++ ที่รอคอยมานาน แต่หลังจากดูการพูดคุยกับ CppCon ไม่กี่ครั้งฉันพบว่าโมดูล C ++ อยู่ในสถานที่แปลก ๆ โดยเฉพาะอย่างยิ่งสำหรับผู้จัดการแพ็คเกจ Linux (pacman, apt, โผล่ออกมา ฯลฯ )
จากสิ่งที่ฉันได้เรียนรู้โมดูล C ++ คือ
- คอมไพเลอร์ขึ้นอยู่กับ
- คุณไม่สามารถใช้โมดูลที่สร้างโดย GCC ใน Clang
- โมดูล GCC 9.1 จะไม่ทำงานบน GCC 9.2
- คุณสามารถมีโมดูลเดียวกันหลายรุ่น
- ตราบใดที่ยังไม่ถูกส่งออกไปยังขอบเขตเดียวกัน
- คุณต้องสร้างโมดูลขึ้นใหม่หากการพึ่งพาของมันอัพเดต
ปัญหาของฉันคือในการรวบรวม distros คอมไพเลอร์ทั้งหมดได้รับการปรับปรุงตลอดเวลาและผู้ใช้อาจมีการสร้างคอมไพเลอร์ของตัวเอง ในปัจจุบันสามารถอัพเดตคอมไพเลอร์หรืออัพเดตlibstdc++
ได้ แต่ด้วยโมดูลดูเหมือนว่าจะแนะนำให้libstdc++
มีการปรับปรุงเมื่อคอมไพเลอร์ปรับปรุง
ตัวจัดการแพ็กเกจจะจัดการกับการอัพเดตอย่างไรเช่น STL เมื่อคอมไพเลอร์อัพเดต ฉันไม่คิดว่าการสร้างโมดูล STL ทุกรุ่นสำหรับคอมไพเลอร์ทุกเวอร์ชั่นเป็นไปได้ หรือผู้ใช้ไม่ต้องสร้างโมดูล STL ของตนเองเป็นความคิดที่ดี