Bidh Transmission teachdaiche BitTorrent ag atharrachadh bho C gu C ++

Tha an leabharlann libtransmission, a tha na bhunait don neach-dèiligidh Transmission BitTorrent, air eadar-theangachadh gu C ++. Tha ceanglaichean fhathast aig tar-chuir ri buileachadh eadar-aghaidh luchd-cleachdaidh (eadar-aghaidh GTK, daemon, CLI), sgrìobhte ann an cànan C, ach tha feum aig co-chruinneachadh a-nis air inneal-cruinneachaidh C ++. Roimhe sin, cha deach ach an eadar-aghaidh stèidhichte air Qt a sgrìobhadh ann an C ++ (bha an neach-dèiligidh airson macOS ann an Amas-C, bha an eadar-aghaidh lìn ann an JavaScript, agus bha a h-uile càil eile ann an C).

Chaidh an giùlan a dhèanamh le Teàrlach Kerr, stiùiriche a’ phròiseict agus ùghdar an eadar-aghaidh Transmission stèidhichte air Qt. Is e am prìomh adhbhar airson am pròiseact gu lèir atharrachadh gu C ++ am faireachdainn nuair a nì thu atharrachaidhean air libtransmission feumaidh tu an-còmhnaidh a’ chuibhle ath-thòiseachadh, eadhon ged a tha fuasglaidhean deiseil airson duilgheadasan coltach ris anns an leabharlann àbhaisteach C ++ (mar eisimpleir, bha feum air gus na gnìomhan agad fhèin a chruthachadh tr_quickfindFirstK() agus tr_ptrArray() an làthair std : : partial_sort () agus std :: vector ()), a bharrachd air a bhith a’ toirt seachad goireasan sgrùdaidh seòrsa nas adhartaiche do C ++.

Thathas a’ toirt fa-near nach eil an luchd-leasachaidh a’ suidheachadh an amas dhaibh fhèin an libtransmission gu lèir ath-sgrìobhadh sa bhad ann an C ++, ach tha iad an dùil an gluasad gu C ++ a chuir an gnìomh mean air mhean, a’ tòiseachadh leis a’ ghluasad gu bhith a’ cur ri chèile am pròiseact a’ cleachdadh an compiler C ++. Anns an fhoirm a th’ ann an-dràsta, chan urrainnear an compiler C a chleachdadh tuilleadh airson co-chruinneachadh, leis gun deach cuid de thogalaichean sònraichte C ++ - a chuir ris a’ chòd, leithid am prìomh fhacal “auto” agus tionndaidhean seòrsa a’ cleachdadh a’ ghnìomhaiche “static_cast”. Thathas an dùil gum fuirich taic airson gnìomhan C nas sine airson co-chòrdalachd, ach thathas a-nis a’ brosnachadh luchd-leasachaidh std :: sort () a chleachdadh an àite qsort () agus std :: vector an àite tr_ptrArray. constexpr an àite tr_strdup () agus std :: vector an àite tr_ptrArray.

Source: fosgailtenet.ru

Cuir beachd ann