BitTorrent viðskiptavinur Sending skiptir úr C í C++

Libtransmission bókasafnið, sem er grundvöllur Transmission BitTorrent biðlarans, hefur verið þýtt yfir á C++. Sending hefur enn bindingar með útfærslu notendaviðmóta (GTK tengi, púkinn, CLI), skrifað á C tungumálinu, en samsetning þarf nú C++ þýðanda. Áður fyrr var aðeins Qt-viðmótið skrifað í C++ (biðlarinn fyrir macOS var í Objective-C, vefviðmótið var í JavaScript og allt annað var í C).

Flutningurinn var framkvæmdur af Charles Kerr, verkefnisstjóra og höfundi Sendingarviðmótsins sem byggir á Qt. Aðalástæðan fyrir því að skipta öllu verkefninu yfir í C++ er sú tilfinning að þegar þú gerir breytingar á libtransmission þarftu stöðugt að finna upp hjólið aftur, jafnvel þó að það séu tilbúnar lausnir fyrir svipuð vandamál í venjulegu C++ bókasafninu (það var td nauðsynlegt til að búa til þínar eigin aðgerðir tr_quickfindFirstK() og tr_ptrArray() í viðurvist std: :partial_sort() og std::vector()), auk þess að veita C++ fullkomnari gerðaskoðunaraðstöðu.

Tekið er fram að þróunaraðilar setja sér ekki það markmið að endurskrifa strax alla libtransmission í C++, heldur ætla þeir að innleiða umskiptin yfir í C++ smám saman og byrja á því að skipta yfir í að setja verkefnið saman með C++ þýðandanum. Í núverandi mynd er ekki lengur hægt að nota C þýðanda fyrir samsetningu, þar sem sumum C++-sértækum byggingum hefur verið bætt við kóðann, svo sem „auto“ leitarorðið og tegundabreytingar með „static_cast“ rekstraraðilanum. Stefnt er að því að stuðningur við eldri C aðgerðir verði áfram fyrir samhæfni, en forritarar eru nú hvattir til að nota std::sort() í stað qsort() og std::vector í stað tr_ptrArray. constexpr í stað tr_strdup() og std::vector í stað tr_ptrArray.

Heimild: opennet.ru

Bæta við athugasemd