A transmisión do cliente BitTorrent cambia de C a C++

A biblioteca libtransmission, que é a base do cliente Transmission BitTorrent, foi traducida a C++. A transmisión aínda ten enlaces coa implementación de interfaces de usuario (interface GTK, daemon, CLI), escritas en linguaxe C, pero a montaxe agora require un compilador C++. Anteriormente, só a interface baseada en Qt estaba escrita en C++ (o cliente para macOS estaba en Objective-C, a interface web estaba en JavaScript e todo o demais estaba en C).

A portabilidade foi realizada por Charles Kerr, o líder do proxecto e autor da interface Transmission baseada en Qt. A razón principal para cambiar todo o proxecto a C++ é a sensación de que ao facer cambios na libtransmission tes que reinventar constantemente a roda, aínda que hai solucións preparadas para problemas similares na biblioteca estándar de C++ (por exemplo, era necesario para crear as súas propias funcións tr_quickfindFirstK() e tr_ptrArray() en presenza de std: :partial_sort() e std::vector()), ademais de proporcionar ao C++ facilidades de verificación de tipos máis avanzadas.

Nótase que os desenvolvedores non se marcan o obxectivo de reescribir inmediatamente toda a libtransmission en C++, senón que pretenden implementar a transición a C++ gradualmente, comezando coa transición á compilación do proxecto usando o compilador C++. Na súa forma actual, o compilador C xa non se pode usar para a montaxe, xa que se engadiron ao código algunhas construcións específicas de C++, como a palabra clave "auto" e as conversións de tipos mediante o operador "static_cast". Está previsto que o soporte para funcións C antigas siga sendo compatible, pero agora recoméndase aos desenvolvedores que utilicen std::sort() en lugar de qsort() e std::vector en lugar de tr_ptrArray. constexpr en lugar de tr_strdup() e std::vector en lugar de tr_ptrArray.

Fonte: opennet.ru

Engadir un comentario