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.
sumber
Jawaban:
Untuk saat ini (10 Januari / 2020), sistem modul dianggap lebih sebagai fitur proyek-dalam daripada penggantian distribusi header / lib. Seperti yang disarankan oleh orang-orang dari komunitas Clang, meskipun ada proposal untuk membuat formulir AST independen kompiler, Clang atau Gcc maupun Microsoft tidak memiliki rencana untuk melakukan ini. Jadi kamu menebak tentang
benar dan akan diam beberapa saat.
Sebagai aspek platform manajemen paket, resolusi masih belum diketahui, tetapi karena sistem modul lebih merupakan fitur proyek-dalam, kasus terburuknya adalah bahwa cara "header / lib" masih akan terjadi.
PS Saya pikir stackoverflow bukan tempat yang baik untuk pertanyaan seperti ini, jika Anda benar-benar menginginkan jawaban, tanyakan daftar mail ini .
sumber