BitTorrent klien Transmission pindah ti C ka C ++

Perpustakaan libtransmission, anu mangrupikeun dasar klien Transmission BitTorrent, parantos ditarjamahkeun kana C ++. Transmisi masih boga bindings kalawan palaksanaan interfaces pamaké (interface GTK, daemon, CLI), ditulis dina basa C, tapi assembly ayeuna merlukeun C ++ kompiler. Saméméhna, ngan panganteur basis Qt ditulis dina C ++ (klien pikeun macOS aya dina Objective-C, panganteur web dina JavaScript, sarta sagalana sejenna dina C).

Porting dilumangsungkeun ku Charles Kerr, pamimpin proyék sarta panulis panganteur Transmission dumasar kana Qt. Alesan utama pikeun ngalihkeun sadayana proyék kana C ++ nyaéta perasaan yén nalika ngarobih libtransmission anjeun kedah terus-terusan ngarobih deui roda, sanaos aya solusi anu siap pikeun masalah anu sami dina perpustakaan standar C ++ (contona, éta diperyogikeun. pikeun nyieun fungsi sorangan tr_quickfindFirstK () sarta tr_ptrArray () ku ayana std:: partial_sort () jeung std:: vektor ()), kitu ogé nyadiakeun C ++ kalayan fasilitas cek tipe leuwih canggih.

Ieu dicatet yén pamekar teu nangtukeun sorangan tujuan langsung nulis balik sakabéh libtransmission dina C ++, tapi maksudna pikeun nerapkeun transisi ka C ++ laun, dimimitian ku transisi ka compiling proyék ngagunakeun C ++ kompiler. Dina formulir ayeuna, kompiler C euweuh bisa dipaké pikeun assembly, saprak sababaraha C ++ -spésifik constructs geus ditambahkeun kana kode, kayaning "otomatis" keyword sarta jenis conversions ngagunakeun operator "static_cast". Rojongan pikeun fungsi C heubeul rencanana tetep pikeun kasaluyuan, tapi pamekar ayeuna wanti pamakéan std :: sort () tinimbang qsort () sarta std :: vektor tinimbang tr_ptrArray. constexpr tinimbang tr_strdup () jeung std :: vektor tinimbang tr_ptrArray.

sumber: opennet.ru

Tambahkeun komentar