Ny fandefasana mpanjifa BitTorrent dia miova avy amin'ny C mankany C ++

Ny tranomboky libtransmission, izay fototry ny mpanjifa Transmission BitTorrent, dia nadika ho C ++. Ny fandefasana dia mbola misy fifamatorana amin'ny fampiharana ny interface interfaces (GTK interface, daemon, CLI), voasoratra amin'ny fiteny C, fa ny fivoriambe dia mitaky C++ compiler. Teo aloha, ny interface Qt-based ihany no nosoratana tao amin'ny C ++ (ny mpanjifa ho an'ny macOS dia ao amin'ny Objective-C, ny tranonkala dia ao amin'ny JavaScript, ary ny zavatra hafa rehetra dia ao amin'ny C).

Ny seranan-tsambo dia nataon'i Charles Kerr, mpitarika ny tetikasa sy mpanoratra ny interface Transmission mifototra amin'ny Qt. Ny antony lehibe hamadihana ny tetikasa manontolo amin'ny C ++ dia ny fahatsapana fa rehefa manao fanovana amin'ny libtransmission ianao dia tsy maintsy mamerina ny kodiarana foana, na dia misy vahaolana efa vita ho an'ny olana mitovy amin'izany aza ao amin'ny tranomboky C ++ mahazatra (ohatra, ilaina izany. mba hamoronana ny asanao manokana tr_quickfindFirstK() sy tr_ptrArray() eo anatrehan'ny std::partial_sort() sy std::vector()), ary koa ny fanomezana C++ amin'ny fitaovana fanamarinana karazana mandroso kokoa.

Marihina fa tsy mametraka tanjona hamerenana avy hatrany ny libtransmission manontolo amin'ny C ++ ny mpamorona, fa mikasa ny hampihatra tsikelikely ny fifindrana mankany amin'ny C ++, manomboka amin'ny tetezamita amin'ny fanangonana ny tetikasa amin'ny fampiasana ny C++ compiler. Amin'ny endriny ankehitriny, ny C compiler dia tsy azo ampiasaina amin'ny fivoriambe intsony, satria misy fanamboarana C++-specific sasany nampidirina tao amin'ny code, toy ny teny fanalahidy "auto" sy ny karazana fiovam-po mampiasa ny operator "static_cast". Ny fanohanana ny asa C taloha dia nokasaina hijanona ho mifanaraka, fa ny mpamorona ankehitriny dia ampirisihina hampiasa std::sort() fa tsy qsort() sy std::vector fa tsy tr_ptrArray. constexpr fa tsy tr_strdup() ary std ::vector fa tsy tr_ptrArray.

Source: opennet.ru

Add a comment