BitTorrent client Transmission iswiwitshi ukusuka C ukuya C++

Ilayibrari ye-libtransmission, esisiseko soMxumi we-BitTorrent yoThutho, iguqulelwe kwi-C ++. Ukuhanjiswa kusenezibophelelo kunye nokuphunyezwa kojongano lomsebenzisi (ujongano lwe-GTK, i-daemon, i-CLI), ebhalwe ngolwimi lwe-C, kodwa indibano ngoku ifuna i-C ++ compiler. Ngaphambili, kuphela i-interface esekelwe kwi-Qt yayibhalwe kwi-C ++ (umxhasi we-macOS wayekuNjongo-C, ujongano lwewebhu lwalukwiJavaScript, kwaye yonke enye into yayikuC).

Ukuhanjiswa kwaqhutywa nguCharles Kerr, inkokeli yeprojekthi kunye nombhali we-Transmission interface esekwe kwi-Qt. Esona sizathu siphambili sokutshintshela yonke iprojekthi kwi-C ++ kukuvakalelwa kukuba xa usenza utshintsho kwi-libtransmission kufuneka uhlale uvuselela ivili, nangona kukho izisombululo esele zenziwe kwiingxaki ezifanayo kwilayibrari eqhelekileyo ye-C ++ (umzekelo, kwakuyimfuneko. ukwenza eyakho imisebenzi tr_quickfindFirstK() kunye tr_ptrArray() kubukho be std: :partial_sort() kunye ne std::vector()), kunye nokubonelela nge C++ ngohlobo oluphezulu loncedo lokujonga.

Kuyaphawulwa ukuba abaphuhlisi abazibekeli injongo yokuphinda babhale kwakhona yonke i-libtransmission kwi-C ++, kodwa banenjongo yokuphumeza utshintsho kwi-C ++ ngokuthe ngcembe, ngokuqala ngenguqu ekuqulunqeni iprojekthi usebenzisa i-C ++ compiler. Ngendlela yayo yangoku, i-C compiler ayinakuphinda isetyenziselwe ukudibanisa, kuba ezinye ze-C ++ -izakhiwo ezikhethekileyo zongezwa kwikhowudi, njengegama elingundoqo elithi "auto" kunye nohlobo lokuguqulwa usebenzisa "static_cast" opharetha. Inkxaso yemisebenzi emidala yeC icwangciswe ukuba ihlale ihambelane, kodwa abaphuhlisi ngoku bayakhuthazwa ukuba basebenzise std::sort() endaweni ye qsort() kunye std::vector endaweni ye tr_ptrArray. constexpr endaweni ye tr_strdup() kunye std::vector endaweni ye tr_ptrArray.

umthombo: opennet.ru

Yongeza izimvo