Kusintha kwa kasitomala wa BitTorrent kuchokera ku C kupita ku C++

Laibulale ya libtransmission, yomwe ili maziko a kasitomala wa Transmission BitTorrent, yamasuliridwa kukhala C ++. Kutumiza kudakali ndi zomangira ndikukhazikitsa kwa ogwiritsa ntchito (mawonekedwe a GTK, daemon, CLI), olembedwa m'chinenero cha C, koma kusonkhana tsopano kumafuna C ++ compiler. M'mbuyomu, mawonekedwe a Qt okhawo adalembedwa mu C ++ (makasitomala a macOS anali mu Objective-C, mawonekedwe a intaneti anali mu JavaScript, ndipo china chilichonse chinali mu C).

Kutengerako kunachitika ndi Charles Kerr, mtsogoleri wa polojekiti komanso wolemba mawonekedwe a Transmission potengera Qt. Chifukwa chachikulu chosinthira pulojekiti yonse kukhala C ++ ndikumverera kuti mukasintha kusintha kwa libtransmission nthawi zonse muyenera kuyambiranso gudumu, ngakhale pali mayankho okonzeka amavuto omwewo mu laibulale ya C ++ yokhazikika (mwachitsanzo, zinali zofunika. kuti mupange ntchito zanu tr_quickfindFirstK() ndi tr_ptrArray() pamaso pa std: :partial_sort() ndi std::vector()), komanso kupatsa C++ malo owunikira mitundu yapamwamba kwambiri.

Zikudziwika kuti okonzawo sadzipangira okha cholinga cholembera mwamsanga libtransmission yonse mu C ++, koma akufuna kukhazikitsa kusintha kwa C ++ pang'onopang'ono, kuyambira ndi kusintha kwa kupanga polojekiti pogwiritsa ntchito C ++ compiler. M'mawonekedwe ake amakono, C compiler sangathenso kugwiritsidwa ntchito popanga, popeza zina za C ++ -zokhazikika zawonjezeredwa ku code, monga "auto" keyword and type converts using "static_cast" operator. Thandizo la ntchito zakale za C zakonzedwa kuti zikhalebe kuti zigwirizane, koma opanga tsopano akulimbikitsidwa kugwiritsa ntchito std::sort() m'malo mwa qsort() ndi std::vector m'malo mwa tr_ptrArray. constexpr m'malo mwa tr_strdup() ndi std::vector m'malo mwa tr_ptrArray.

Source: opennet.ru

Kuwonjezera ndemanga