BitTorrent klient Transmission se přesouvá z C do C++

Knihovna libtransmission, která je základem klienta Transmission BitTorrent, byla přeložena do C++. Přenos má stále vazby s implementací uživatelských rozhraní (rozhraní GTK, démon, CLI), napsaných v jazyce C, ale sestavení nyní vyžaduje kompilátor C++. Dříve bylo v C++ napsáno pouze rozhraní založené na Qt (klient pro macOS byl v Objective-C, webové rozhraní bylo v JavaScriptu a vše ostatní bylo v C).

Portování provedl Charles Kerr, vedoucí projektu a autor rozhraní Transmission založeného na Qt. Hlavním důvodem přechodu celého projektu do C++ je pocit, že při provádění změn v libtransmission musíte neustále znovu vymýšlet kolo, i když ve standardní knihovně C++ existují hotová řešení pro podobné problémy (např. vytvořit své vlastní funkce tr_quickfindFirstK() a tr_ptrArray() za přítomnosti std: :partial_sort() a std::vector() a také poskytnout C++ pokročilejší možnosti kontroly typu.

Je třeba poznamenat, že vývojáři si nekladou za cíl okamžitě přepsat celý libtransmission v C++, ale hodlají přechod na C++ implementovat postupně, počínaje přechodem na kompilaci projektu pomocí kompilátoru C++. Ve své současné podobě již kompilátor C nelze používat pro sestavení, protože do kódu byly přidány některé konstrukce specifické pro C++, jako je klíčové slovo „auto“ a převody typů pomocí operátoru „static_cast“. Plánuje se, že podpora starších funkcí C zůstane kvůli kompatibilitě zachována, ale vývojářům se nyní doporučuje používat std::sort() místo qsort() a std::vector místo tr_ptrArray. constexpr místo tr_strdup() a std::vector místo tr_ptrArray.

Zdroj: opennet.ru

Přidat komentář