Cliente BitTorrent La transmisión cambia de C a C++

La biblioteca libtransmission, que es la base del cliente Transmission BitTorrent, ha sido traducida a C++. Transmission todavía tiene vínculos con la implementación de interfaces de usuario (interfaz GTK, demonio, CLI), escritas en lenguaje C, pero el ensamblador ahora requiere un compilador de C++. Anteriormente, sólo la interfaz basada en Qt estaba escrita en C++ (el cliente para macOS estaba en Objective-C, la interfaz web estaba en JavaScript y todo lo demás estaba en C).

La portabilidad fue realizada por Charles Kerr, líder del proyecto y autor de la interfaz Transmission basada en Qt. La razón principal para cambiar todo el proyecto a C++ es la sensación de que al realizar cambios en libtransmission hay que reinventar constantemente la rueda, aunque existen soluciones listas para problemas similares en la biblioteca estándar de C++ (por ejemplo, era necesario para crear sus propias funciones tr_quickfindFirstK() y tr_ptrArray() en presencia de std: :partial_sort() y std::vector()), además de proporcionar a C++ funciones de verificación de tipos más avanzadas.

Cabe señalar que los desarrolladores no se fijaron el objetivo de reescribir inmediatamente toda la libtransmission en C++, sino que tienen la intención de implementar la transición a C++ gradualmente, comenzando con la transición a la compilación del proyecto utilizando el compilador de C++. En su forma actual, el compilador de C ya no se puede utilizar para ensamblar, ya que se han agregado al código algunas construcciones específicas de C++, como la palabra clave "auto" y las conversiones de tipo utilizando el operador "static_cast". Está previsto que se mantenga el soporte para funciones C más antiguas por motivos de compatibilidad, pero ahora se anima a los desarrolladores a utilizar std::sort() en lugar de qsort() y std::vector en lugar de tr_ptrArray. constexpr en lugar de tr_strdup() y std::vector en lugar de tr_ptrArray.

Fuente: opennet.ru

Añadir un comentario