Prenos odjemalca BitTorrent preklopi iz C v C++

Knjižnica libtransmission, ki je osnova odjemalca Transmission BitTorrent, je prevedena v C++. Prenos ima še vedno vezave z implementacijo uporabniških vmesnikov (vmesnik GTK, demon, CLI), napisanih v jeziku C, vendar sestavljanje zdaj zahteva prevajalnik C++. Prej je bil samo vmesnik, ki temelji na Qt, napisan v C++ (odjemalec za macOS je bil v Objective-C, spletni vmesnik je bil v JavaScriptu in vse ostalo je bilo v C).

Prenos je izvedel Charles Kerr, vodja projekta in avtor vmesnika Transmission, ki temelji na Qt. Glavni razlog za preklop celotnega projekta na C++ je občutek, da morate pri spreminjanju libtransmission vedno znova izumljati kolesje, čeprav obstajajo že pripravljene rešitve za podobne težave v standardni knjižnici C++ (potrebno je bilo npr. za ustvarjanje lastnih funkcij tr_quickfindFirstK() in tr_ptrArray() ob prisotnosti std: :partial_sort() in std::vector()), kot tudi za zagotavljanje C++ z naprednejšimi zmogljivostmi za preverjanje tipov.

Opozoriti je treba, da si razvijalci ne zastavljajo cilja takojšnjega prepisovanja celotnega prenosa lib v C++, temveč nameravajo postopoma izvesti prehod na C++, začenši s prehodom na prevajanje projekta s prevajalnikom C++. V trenutni obliki prevajalnika C ni več mogoče uporabiti za sestavljanje, saj so bili kodi dodani nekateri konstrukti, specifični za C++, kot je ključna beseda »auto« in pretvorbe tipov z uporabo operatorja »static_cast«. Načrtuje se, da bo zaradi združljivosti ostala podpora za starejše funkcije C, vendar se razvijalce zdaj spodbuja k uporabi std::sort() namesto qsort() in std::vector namesto tr_ptrArray. constexpr namesto tr_strdup() in std::vector namesto tr_ptrArray.

Vir: opennet.ru

Dodaj komentar