BitTorrent-Client-Übertragung wechselt von C zu C++

Die libtransmission-Bibliothek, die die Grundlage des Transmission BitTorrent-Clients bildet, wurde in C++ übersetzt. Transmission hat immer noch Bindungen mit der Implementierung von Benutzerschnittstellen (GTK-Schnittstelle, Daemon, CLI), die in der Sprache C geschrieben sind, aber für die Montage ist jetzt ein C++-Compiler erforderlich. Bisher war nur die Qt-basierte Schnittstelle in C++ geschrieben (der Client für macOS war in Objective-C, die Webschnittstelle war in JavaScript und alles andere war in C).

Die Portierung erfolgte durch Charles Kerr, den Projektleiter und Autor der auf Qt basierenden Transmission-Schnittstelle. Der Hauptgrund für die Umstellung des gesamten Projekts auf C++ ist das Gefühl, dass man bei Änderungen an libtransmission das Rad ständig neu erfinden muss, obwohl es in der Standard-C++-Bibliothek fertige Lösungen für ähnliche Probleme gibt (z. B. war es notwendig). um Ihre eigenen Funktionen tr_quickfindFirstK() und tr_ptrArray() in Gegenwart von std: :partial_sort() und std::vector() zu erstellen und C++ mit erweiterten Funktionen zur Typprüfung bereitzustellen.

Es wird darauf hingewiesen, dass sich die Entwickler nicht zum Ziel gesetzt haben, die gesamte libtransmission sofort in C++ neu zu schreiben, sondern beabsichtigen, den Übergang zu C++ schrittweise umzusetzen, beginnend mit dem Übergang zur Kompilierung des Projekts mit dem C++-Compiler. In seiner aktuellen Form kann der C-Compiler nicht mehr für die Assemblierung verwendet werden, da dem Code einige C++-spezifische Konstrukte hinzugefügt wurden, wie zum Beispiel das Schlüsselwort „auto“ und Typkonvertierungen mit dem Operator „static_cast“. Die Unterstützung für ältere C-Funktionen soll aus Kompatibilitätsgründen bestehen bleiben, Entwicklern wird jedoch jetzt empfohlen, std::sort() anstelle von qsort() und std::vector anstelle von tr_ptrArray zu verwenden. constexpr statt tr_strdup() und std::vector statt tr_ptrArray.

Source: opennet.ru

Kommentar hinzufügen