Veguhastina muwekîlê BitTorrent ji C diguhezîne C++

Pirtûkxaneya libtransmission, ku bingeha muwekîlê Transmission BitTorrent e, li C++ hatiye wergerandin. Veguhastina hîna jî bi pêkanîna navgînên bikarhêner (navbera GTK, daemon, CLI), ku bi zimanê C-yê hatî nivîsandin ve girêdayî ye, lê kombûn nuha berhevkarek C++ hewce dike. Berê, tenê pêwendiya bingehîn a Qt-ê di C++-ê de hatibû nivîsandin (muwekîlê macOS-ê di Objective-C de bû, navgîniya malperê di JavaScript-ê de bû, û her tiştê din di C de bû).

Veguheztin ji hêla Charles Kerr, serokê projeyê û nivîskarê navbeynkariya Veguhestinê ya li ser bingeha Qt ve hatî kirin. Sedema sereke ya guheztina tevahiya projeyê li C++ hest e ku dema ku hûn di libtransmission de guheztinan bikin hûn bi berdewamî neçar in ku çerxa ji nû ve îcad bikin, her çend di pirtûkxaneya standard C++ de ji bo pirsgirêkên wekhev çareseriyên amade hebin jî (mînak, pêdivî bû ji bo afirandina fonksiyonên xwe yên tr_quickfindFirstK() û tr_ptrArray() di hebûna std: :partial_sort() û std::vector()), û her weha C++ bi amûrên kontrolkirina tîpên pêşkeftî peyda bikin.

Tê zanîn ku pêşdebiran ji xwe re armanc nakin ku tavilê tevahiya libtransmission di C++ de ji nû ve binivîsin, lê mebesta wan ew e ku gav bi gav veguheztina C++ bicîh bikin, dest bi veguheztina berhevkirina projeyê bi karanîna berhevkarê C++ bikin. Di forma xweya heyî de, berhevkar C êdî nikare ji bo kombûnê were bikar anîn, ji ber ku hin avahiyên C++-taybetî li kodê hatine zêdekirin, wek keyworda "oto" û veguheztina tîpan bi karanîna operatora "static_cast". Piştgiriya ji bo fonksiyonên C kevntir tê plan kirin ku ji bo lihevhatinê bimîne, lê pêşdebiran naha têne teşwîq kirin ku li şûna qsort () std:: sort () û li şûna tr_ptrArray std:: vector bikar bînin. Constexpr li şûna tr_strdup () û std:: vector li şûna tr_ptrArray.

Source: opennet.ru

Add a comment