Client BitTorrent Transmisia comută de la C la C++

Biblioteca libtransmission, care este baza clientului Transmission BitTorrent, a fost tradusă în C++. Transmisia are încă legături cu implementarea interfețelor utilizator (interfață GTK, daemon, CLI), scrise în limbajul C, dar asamblarea necesită acum un compilator C++. Anterior, doar interfața bazată pe Qt era scrisă în C++ (clientul pentru macOS era în Objective-C, interfața web era în JavaScript și totul în C).

Portarea a fost realizată de Charles Kerr, liderul de proiect și autorul interfeței Transmission bazată pe Qt. Motivul principal pentru trecerea întregului proiect la C++ este sentimentul că atunci când faceți modificări la libtransmission trebuie să reinventați constant roata, chiar dacă există soluții gata făcute pentru probleme similare în biblioteca standard C++ (de exemplu, era necesar pentru a vă crea propriile funcții tr_quickfindFirstK() și tr_ptrArray() în prezența std: :partial_sort() și std::vector()), precum și furnizarea C++ cu facilități mai avansate de verificare a tipului.

Se observă că dezvoltatorii nu își propun scopul de a rescrie imediat întreaga transmisie lib în C++, ci intenționează să implementeze treptat trecerea la C++, începând cu trecerea la compilarea proiectului folosind compilatorul C++. În forma sa actuală, compilatorul C nu mai poate fi folosit pentru asamblare, deoarece unele constructe specifice C++ au fost adăugate la cod, cum ar fi cuvântul cheie „auto” și conversiile de tip folosind operatorul „static_cast”. Suportul pentru funcțiile C mai vechi este planificat să rămână pentru compatibilitate, dar dezvoltatorii sunt acum încurajați să folosească std::sort() în loc de qsort() și std::vector în loc de tr_ptrArray. constexpr în loc de tr_strdup() și std::vector în loc de tr_ptrArray.

Sursa: opennet.ru

Adauga un comentariu