Chúng tôi đang ở vào năm 2020 và C ++ 20 sắp ra mắt, cùng với tính năng mô-đun C ++ được chờ đợi từ lâu. Nhưng sau khi xem một vài cuộc nói chuyện về CppCon, tôi thấy các mô-đun C ++ đang ở một nơi kỳ lạ, đặc biệt là đối với các nhà quản lý gói Linux (pacman, apt, emerge, v.v ...)
Từ những gì tôi đã học được, các mô-đun C ++ là
- Trình biên dịch phụ thuộc
- Bạn không thể sử dụng một mô-đun được xây dựng bởi GCC ở Clang
- Các mô-đun GCC 9.1 sẽ không hoạt động trên GCC 9.2
- Bạn có thể có nhiều phiên bản khác nhau của cùng một mô-đun
- Miễn là chúng không được xuất vào cùng một phạm vi
- Bạn cần xây dựng lại một mô-đun nếu phụ thuộc của nó cập nhật
Vấn đề của tôi là, trong tất cả các trình biên dịch distro phát hành được cập nhật mọi lúc và người dùng có thể có bản dựng trình biên dịch riêng. Hiện tại người ta chỉ có thể cập nhật trình biên dịch hoặc cập nhật libstdc++
. Nhưng với các mô-đun, dường như đề xuất libstdc++
phải được cập nhật khi trình biên dịch cập nhật.
Trình quản lý gói sẽ xử lý cập nhật như thế nào, ví dụ, STL khi trình biên dịch cập nhật? Tôi không nghĩ việc xây dựng mọi phiên bản của mô-đun STL cho mọi phiên bản của trình biên dịch là khả thi. Người dùng cũng không phải xây dựng mô-đun STL của riêng họ là một ý tưởng tốt.