Kami berada di tahun 2020 sekarang dan C ++ 20 akan datang, bersama dengan fitur modul C ++ yang telah lama ditunggu. Tetapi setelah menonton beberapa pembicaraan tentang CppCon saya menemukan modul C ++ berada di tempat yang aneh, terutama untuk manajer paket Linux (pacman, apt, emerge, dll ...)
Dari apa yang saya pelajari, modul C ++ adalah
- Ketergantungan kompilator
- Anda tidak dapat menggunakan modul yang dibangun oleh GCC di Dentang
- Modul GCC 9.1 tidak akan berfungsi pada GCC 9.2
- Anda dapat memiliki banyak versi berbeda dari modul yang sama
- Selama mereka tidak diekspor ke ruang lingkup yang sama
- Anda perlu membangun kembali modul jika dependensinya diperbarui
Masalah saya adalah, di semua distro kompiler bergulir rilis diperbarui setiap saat dan pengguna mungkin memiliki kompilator build sendiri. Saat ini seseorang dapat memperbarui kompiler atau memperbarui libstdc++
. Tetapi dengan modul, tampaknya menyarankan libstdc++
harus diperbarui ketika kompiler memperbarui.
Bagaimana pengelola paket menangani pembaruan, misalnya, STL ketika kompiler memperbarui? Saya tidak berpikir membangun setiap versi dari modul STL untuk setiap versi dari compiler adalah layak. Pengguna juga tidak harus membuat modul STL sendiri ide yang bagus.