Phetiso ea bareki ba BitTorrent e fetoha ho tloha ho C ho ea ho C++

Laeborari ea libtransmission, eo e leng motheo oa moreki oa Transmission BitTorrent, e fetoletsoe ho C++. Phetiso e ntse e e-na le litlamo le ts'ebetsong ea li-interfaces (GTK interface, daemon, CLI), e ngotsoeng ka puo ea C, empa kopano joale e hloka moqapi oa C ++. Pejana, ke sebopeho se thehiloeng ho Qt feela se neng se ngotsoe ho C ++ (moreki oa macOS o ne a le ho Objective-C, sebopeho sa marang-rang se ne se le JavaScript, 'me ntho e' ngoe le e 'ngoe e ne e le C).

Ho tsamaisa thepa ho ile ha etsoa ke Charles Kerr, moetapele oa morero le sengoli sa Transmission interface e thehiloeng ho Qt. Lebaka le ka sehloohong la ho fetola morero oohle ho C ++ ke boikutlo ba hore ha u etsa liphetoho ho libtransmission u tlameha ho tsosolosa lebili, le hoja ho na le tharollo e lokiselitsoeng ea mathata a tšoanang le laebraring e tloaelehileng ea C ++ (mohlala, ho ne ho hlokahala. ho iketsetsa mesebetsi ea hau tr_quickfindFirstK() le tr_ptrArray() boteng ba std: :partial_sort() le std::vector()), hammoho le ho fana ka C++ ka lisebelisoa tse tsoetseng pele tsa ho hlahloba mefuta.

Hoa hlokomeloa hore bahlahisi ha ba ipehele pakane ea ho ngola hang-hang libtransmission eohle ho C ++, empa ba ikemiselitse ho kenya ts'ebetsong phetoho ho C ++ butle-butle, ho qala ka phetoho ea ho hlophisa morero ho sebelisa C ++ compiler. Ka mokhoa oa eona oa hona joale, moqapi oa C o ke ke oa hlola o sebelisoa bakeng sa kopano, kaha lihahi tse ling tse khethehileng tsa C ++ li kenyelelitsoe khoutu, tse kang "auto" le liphetoho tsa mofuta o sebelisang "static_cast" opareitara. Ts'ehetso bakeng sa mesebetsi ea khale ea C e reriloe hore e lule e lumellana, empa joale bahlahisi ba khothaletsoa ho sebelisa std::sort() sebakeng sa qsort() le std::vector sebakeng sa tr_ptrArray. constexpr sebakeng sa tr_strdup() le std::vector sebakeng sa tr_ptrArray.

Source: opennet.ru

Eketsa ka tlhaloso