BitTorrent client Transmission skeakelt fan C nei C ++

De libtransmission-bibleteek, dy't de basis is fan 'e Transmission BitTorrent-kliïnt, is oerset yn C ++. Transmission hat noch ferbinings mei de ymplemintaasje fan brûkersynterfaces (GTK-ynterface, daemon, CLI), skreaun yn 'e C-taal, mar gearkomste fereasket no in C ++-kompiler. Eartiids waard allinich de Qt-basearre ynterface skreaun yn C ++ (de kliïnt foar macOS wie yn Objective-C, de webynterface wie yn JavaScript, en al it oare wie yn C).

De porting waard útfierd troch Charles Kerr, de projektlieder en skriuwer fan 'e Transmission-ynterface basearre op Qt. De wichtichste reden foar it wikseljen fan it hiele projekt nei C++ is it gefoel dat jo by it meitsjen fan wizigingen yn libtransmission it tsjil hieltyd opnij útfine moatte, ek al binne d'r klearmakke oplossingen foar ferlykbere problemen yn 'e standert C++-bibleteek (it wie bygelyks nedich om jo eigen funksjes te meitsjen tr_quickfindFirstK () en tr_ptrArray () yn it bywêzen fan std:: partial_sort () en std :: vector ()), en ek foarsjen C ++ mei mear avansearre type kontrôle foarsjennings.

It wurdt opmurken dat de ûntwikkelders harsels net it doel sette om de hiele libtransmission fuortendaliks yn C++ te herskriuwen, mar fan doel binne de oergong nei C++ stadichoan út te fieren, te begjinnen mei de oergong nei it kompilearjen fan it projekt mei de C++-kompiler. Yn syn hjoeddeistige foarm kin de C-kompilator net mear brûkt wurde foar gearstalling, om't guon C ++-spesifike konstruksjes oan 'e koade tafoege binne, lykas it "auto" kaaiwurd en typekonverzjes mei de operator "static_cast". Stipe foar âldere C-funksjes is pland om te bliuwen foar komptabiliteit, mar ûntwikkelders wurde no stimulearre om std :: sort () te brûken ynstee fan qsort () en std :: vector ynstee fan tr_ptrArray. constexpr ynstee fan tr_strdup () en std :: vector ynstee fan tr_ptrArray.

Boarne: opennet.ru

Add a comment