I-BitTorrent client Transmission iyashintsha isuka ku-C iye ku-C++

Ilabhulali ye-libtransmission, eyisisekelo seklayenti le-Transmission BitTorrent, ihunyushelwe ku-C++. Ukudlulisela kusenezibopho ngokusetshenziswa kwezixhumi ezibonakalayo (i-GTK interface, i-daemon, i-CLI), ebhalwe ngolimi lwe-C, kodwa ukuhlanganisa manje kudinga i-C++ compiler. Ngaphambilini, kwakubhalwe kuphela isixhumi esibonakalayo esisekelwe ku-Qt ku-C++ (iklayenti le-macOS laliku-Objective-C, isixhumi esibonakalayo sewebhu sasiku-JavaScript, futhi konke okunye kwakuku-C).

Ukuthutha kwenziwa nguCharles Kerr, umholi wephrojekthi kanye nombhali we-Transmission interface esekelwe ku-Qt. Isizathu esiyinhloko sokushintshela yonke iphrojekthi ku-C++ umuzwa wokuthi lapho wenza izinguquko ku-libtransmission kufanele uhlale usungula kabusha isondo, noma ngabe kunezixazululo esezenziwe ngomumo zezinkinga ezifanayo kumtapo wezincwadi ojwayelekile we-C++ (ngokwesibonelo, bekudingeka ukuze udale eyakho imisebenzi ethi tr_quickfindFirstK() kanye ne-tr_ptrArray() phambi kwe-std: :partial_sort() kanye ne-std::vector()), kanye nokuhlinzeka i-C++ ngezinsiza zokuhlola ezithuthuke kakhulu.

Kuyaphawulwa ukuthi abathuthukisi abazibekele umgomo wokubhala kabusha ngokushesha yonke i-libtransmission ku-C++, kodwa bahlose ukusebenzisa ukushintshela ku-C++ kancane kancane, beqala ngenguquko yokuhlanganisa iphrojekthi kusetshenziswa i-C++ compiler. Ngendlela yayo yamanje, i-C compiler ngeke isakwazi ukusetshenziselwa ukuhlanganiswa, njengoba ezinye izakhiwo ezithize ze-C++ zengezwe kukhodi, njengegama elingukhiye elithi “auto” kanye nokuguqulwa kohlobo kusetshenziswa u-opharetha othi “static_cast”. Usekelo lwemisebenzi emidala ye-C luhlelelwe ukuthi luhlale ukuze lusebenzisane, kodwa onjiniyela manje bakhuthazwa ukuthi basebenzise okuthi std::sort() esikhundleni se-qsort() kanye ne-std::vector esikhundleni se-tr_ptrArray. constexpr esikhundleni sokuthi tr_strdup() kanye ne-std::vector esikhundleni se-tr_ptrArray.

Source: opennet.ru

Engeza amazwana