BitTorrent client Fa'aliliuina mai le C i le C++

O le faletusi libtransmission, o le faavae lea o le Transmission BitTorrent client, ua faaliliuina i le C++. O loʻo i ai pea le fesoʻotaʻiga o fesoʻotaʻiga ma le faʻatinoina o fesoʻotaʻiga faʻaoga (GTK interface, daemon, CLI), tusia i le gagana C, ae o le faʻapotopotoga e manaʻomia nei se C++ compiler. I le taimi muamua, na o le Qt-based interface na tusia i le C ++ (o le kalani mo macOS o loʻo i le Objective-C, o le upega tafaʻilagi o loʻo i le JavaScript, ma o isi mea uma o loʻo i totonu C).

O le porting na faʻatinoina e Charles Kerr, le taʻitaʻi o le poloketi ma le tusitala o le Transmission interface faʻavae i luga ole Qt. O le mafuaaga autu mo le fesuiaʻiina o le poloketi atoa i le C ++ o le lagona lea pe a faia suiga i le libtransmission e tatau ona e toe faʻafouina le uili, e ui lava o loʻo i ai ni fofo ua saunia mo faʻafitauli tutusa i le faletusi masani C ++ (mo se faʻataʻitaʻiga, sa tatau. e fatu ai au lava galuega tr_quickfindFirstK() ma tr_ptrArray() i luma o le std::partal_sort() ma std::vector()), fa'apea fo'i ma le tu'uina atu o le C ++ fa'atasi ai ma mea e sili atu ona maualuga le siakiina o ituaiga.

O loʻo maitauina e le o faʻatulagaina e le au atinaʻe i latou lava le sini o le vave toe tusia o le libtransmission atoa i C ++, ae faʻamoemoe e faʻatino le suiga i le C ++ faasolosolo malie, amata i le suiga i le tuufaatasia o le poloketi e faʻaaoga ai le C ++ compiler. I lona tulaga o loʻo i ai nei, e le mafai ona toe faʻaaogaina le C compiler mo le faʻapotopotoga, talu ai o nisi C ++-faʻapitoa faʻapipiʻi ua faʻaopoopoina i le code, e pei o le "auto" keyword ma le ituaiga suiga e faʻaaoga ai le "static_cast" operator. Lagolago mo galuega tuai C ua fuafua e tumau mo le fetaui, ae ua faʻamalosia le au atinaʻe e faʻaoga std :: sort () nai lo qsort () ma std :: vector nai lo tr_ptrArray. constexpr nai lo tr_strdup() ma std::vector nai lo tr_ptrArray.

puna: opennet.ru

Faaopoopo i ai se faamatalaga