Transmisi klien BitTorrent ngalih saka C menyang C ++

Pustaka libtransmission, sing dadi basis klien Transmission BitTorrent, wis diterjemahake menyang C ++. Transmisi isih duwe bindings karo implementasine saka antarmuka panganggo (antarmuka GTK, daemon, CLI), ditulis ing basa C, nanging perakitan saiki mbutuhake C++ compiler. Sadurunge, mung antarmuka basis Qt sing ditulis ing C ++ (klien kanggo macOS ana ing Objective-C, antarmuka web ana ing JavaScript, lan kabeh liyane ana ing C).

Porting ditindakake dening Charles Kerr, pimpinan proyek lan penulis antarmuka Transmisi adhedhasar Qt. Alesan utama kanggo ngoper kabeh proyek menyang C ++ yaiku perasaan yen nalika nggawe owah-owahan ing libtransmission sampeyan kudu terus-terusan reinvent setir, sanajan ana solusi siap kanggo masalah sing padha ing perpustakaan C ++ standar (contone, perlu. kanggo nggawe fungsi dhewe tr_quickfindFirstK () lan tr_ptrArray () ing ngarsane std :: partial_sort () lan std :: vector ()), uga nyediakake C ++ karo fasilitas mriksa jinis luwih majeng.

Wigati dicathet menawa pangembang ora nemtokake tujuan kanggo nulis maneh kabeh libtransmission ing C ++, nanging arep ngleksanakake transisi menyang C ++ kanthi bertahap, diwiwiti kanthi transisi menyang kompilasi proyek nggunakake C ++ compiler. Ing wangun saiki, compiler C ora bisa digunakake maneh kanggo perakitan, wiwit sawetara C ++ -konstruksi tartamtu wis ditambahake menyang kode, kayata "otomatis" keyword lan jinis konversi nggunakake operator "static_cast". Dhukungan kanggo fungsi C lawas wis ngrancang tetep kanggo kompatibilitas, nanging gawe saiki dianjurake kanggo nggunakake std :: sort () tinimbang qsort () lan std :: vector tinimbang tr_ptrArray. constexpr tinimbang tr_strdup () lan std :: vektor tinimbang tr_ptrArray.

Source: opennet.ru

Add a comment