Pelanggan BitTorrent Transmisi bertukar daripada C ke C++

Pustaka libtransmission, yang merupakan asas pelanggan Transmission BitTorrent, telah diterjemahkan ke dalam C++. Penghantaran masih mempunyai pengikatan dengan pelaksanaan antara muka pengguna (antara muka GTK, daemon, CLI), ditulis dalam bahasa C, tetapi pemasangan kini memerlukan pengkompil C++. Sebelum ini, hanya antara muka berasaskan Qt ditulis dalam C++ (pelanggan untuk macOS berada dalam Objektif-C, antara muka web dalam JavaScript, dan semua yang lain dalam C).

Pengalihan telah dijalankan oleh Charles Kerr, ketua projek dan pengarang antara muka Transmisi berdasarkan Qt. Sebab utama untuk menukar keseluruhan projek kepada C++ ialah perasaan bahawa apabila membuat perubahan pada libtransmission anda sentiasa perlu mencipta semula roda, walaupun terdapat penyelesaian siap sedia untuk masalah yang sama dalam perpustakaan C++ standard (contohnya, ia adalah perlu untuk mencipta fungsi anda sendiri tr_quickfindFirstK() dan tr_ptrArray() dengan kehadiran std: :partial_sort() dan std::vector()), serta menyediakan C++ dengan kemudahan semakan jenis yang lebih maju.

Adalah diperhatikan bahawa pembangun tidak menetapkan matlamat mereka untuk menulis semula keseluruhan libtransmission dalam C++ dengan segera, tetapi berhasrat untuk melaksanakan peralihan kepada C++ secara beransur-ansur, bermula dengan peralihan untuk menyusun projek menggunakan pengkompil C++. Dalam bentuk semasanya, pengkompil C tidak lagi boleh digunakan untuk pemasangan, kerana beberapa binaan khusus C++ telah ditambahkan pada kod, seperti kata kunci "auto" dan penukaran jenis menggunakan operator "static_cast". Sokongan untuk fungsi C yang lebih lama dirancang untuk kekal untuk keserasian, tetapi pembangun kini digalakkan untuk menggunakan std::sort() dan bukannya qsort() dan std::vector dan bukannya tr_ptrArray. constexpr bukannya tr_strdup() dan std::vector bukannya tr_ptrArray.

Sumber: opennet.ru

Tambah komen