C++ ist eine leistungsfähige Programmiersprache mit einer großen Auswahl an Bibliotheken, die Entwickler beim Erstellen effizienter und wirkungsvoller Software unterstützen. Diese Bibliotheken decken zahlreiche Bereiche ab, darunter allgemeine Programmierung, Grafik, Netzwerke, Datenbanken und vieles mehr.
Wenn Sie in Ihrem C++-Projekt eine Bibliothek benötigen, sollten Sie zuerst prüfen, ob sie tatsächlich zu Ihren Anforderungen passt. Die Auswahl kann riskant sein, insbesondere wenn viele konkurrierende Lösungen verfügbar sind. Eine falsche Entscheidung kann ein Entwicklungsteam viele Arbeitsstunden kosten.
1 – Lizenzierung
Die Lizenz der Bibliothek sollten Sie als Erstes prüfen. Bevor Sie sich näher mit ihren Funktionen beschäftigen, muss sichergestellt sein, dass die Lizenz mit Ihrem Projekt kompatibel ist.
2 – Erfüllt die Bibliothek Ihre Anforderungen?
Ebenso wichtig ist die Prüfung, ob die Bibliothek Ihre Anforderungen wirklich erfüllt. Erstaunlich viele Entwickler stellen erst nach einem kleinen Proof of Concept fest, dass eine Bibliothek für ihr Projekt ungeeignet ist, obwohl Funktionslisten, Tutorials oder Webinare zunächst überzeugt hatten.
3 – Ist die Community aktiv?
Beim Einsatz einer Bibliothek können zahlreiche Probleme auftreten. Am besten helfen können häufig Mitglieder der Community oder die Maintainer der Bibliothek. Deshalb empfiehlt es sich, eine Bibliothek mit aktiver Community zu wählen; andernfalls verbringen Sie womöglich Tage damit, Probleme allein zu lösen.
4 – Dokumentation
Eine gut dokumentierte Bibliothek kann viel Zeit sparen. Schlechte Dokumentation hingegen kann selbst einfache Aufgaben unnötig zeitaufwendig machen.
5 – Ist Performance für Sie wichtig?
Performance hat bei der Auswahl einer Bibliothek nicht immer höchste Priorität; in diesem Fall können Sie diesen Punkt überspringen. Ist Performance für Ihr Projekt jedoch wichtig, sollten Sie verfügbare Benchmarks prüfen und idealerweise einen Proof of Concept erstellen, um das Verhalten der Bibliothek vor der Entscheidung zu verstehen.
Sehen wir uns die beliebtesten C++-Bibliotheken an:
1 - STL
Die STL ist eine Sammlung von Template-Klassen und -Funktionen, die gängige Datenstrukturen wie Vektoren, Listen, Queues und Stacks sowie Algorithmen etwa zum Sortieren und Suchen bereitstellt. Sie ist ein integraler Bestandteil von C++ und wird wegen ihrer Möglichkeiten zur generischen Programmierung intensiv genutzt.
2 - Boost
Boost ist eine Sammlung hochwertiger, durch Peer-Reviews geprüfter Bibliotheken, die den Funktionsumfang von C++ erweitern. Sie decken zahlreiche Bereiche ab, darunter Smart Pointer, reguläre Ausdrücke, Multithreading, Netzwerkprogrammierung und mehr. Viele Boost-Bibliotheken wurden zur Standardisierung vorgeschlagen; einige sind bereits Bestandteil der C++-Standardbibliothek.
3 - Folly
Folly (eine lose Abkürzung für Facebook Open Source Library) ist eine Bibliothek aus C++17-Komponenten, die mit Blick auf Praxistauglichkeit und Effizienz entwickelt wurde. Folly enthält zahlreiche grundlegende Bibliothekskomponenten, die bei Facebook intensiv eingesetzt werden. Insbesondere dient Folly häufig als Abhängigkeit anderer Open-Source-C++-Projekte von Facebook und als gemeinsamer Ort für wiederverwendbaren Code.
4 - Qt
Qt ist ein plattformübergreifendes Anwendungsframework, das die Entwicklung grafischer Benutzeroberflächen (GUI) vereinfacht. Es bietet Bibliotheken und Werkzeuge für Desktop-, Mobil- und Embedded-Anwendungen und ist für seine Benutzerfreundlichkeit und Flexibilität bekannt.
5 - Poco
Poco ist eine Sammlung von C++-Klassenbibliotheken, die die Entwicklung netzwerkorientierter, portabler Anwendungen vereinfacht und beschleunigt. Sie deckt Bereiche wie Netzwerkkommunikation, Dateisysteme und Thread-Verwaltung ab.
6 - OpenCV
OpenCV ist eine Computer-Vision-Bibliothek mit zahlreichen Werkzeugen und Algorithmen für die Bild- und Videoverarbeitung. Sie wird häufig in Computer-Vision-Anwendungen, Robotik und Machine Learning eingesetzt.
7 - TensorFlow
TensorFlow ist eine durchgängige Open-Source-Plattform für Machine Learning. Ihr umfassendes und flexibles Ökosystem aus Werkzeugen, Bibliotheken und Community-Ressourcen ermöglicht Forschern, den Stand der Technik im ML voranzutreiben, und Entwicklern, ML-basierte Anwendungen einfach zu erstellen und bereitzustellen. TensorFlow wurde ursprünglich von Forschern und Ingenieuren des Google-Brain-Teams innerhalb von Googles Machine-Intelligence-Forschungsorganisation für Machine Learning und tiefe neuronale Netze entwickelt, ist jedoch allgemein genug für viele weitere Einsatzgebiete. Die C++-API ist sehr stabil und wird von zahlreichen großen Unternehmen sowie der Open-Source-Community genutzt.
8 - ATL
Seit fast zwanzig Jahren verwendet Microsoft die Active Template Library (ATL) zum Erstellen von COM-Objekten. Ihre Template-Klassen stellen zahlreiche vorgefertigte, wiederverwendbare COM-Funktionen bereit. Vor etwa einem Jahrzehnt bezeichnete die ATL-Dokumentation ATL als den schnellsten und einfachsten Weg, ActiveX-Steuerelemente zu erstellen, und zugleich als besonders effizienten Weg zur Erstellung von COM-Objekten. ATL ist weiterhin weit verbreitet; Microsoft pflegt die Bibliothek und ergänzt neue Funktionen.
9 - Asio
Asio ist eine plattformübergreifende C++-Bibliothek für Netzwerk- und Low-Level-I/O-Programmierung, die Entwicklern ein konsistentes asynchrones Modell auf Basis moderner C++-Ansätze bietet.
10 - Eigen
Eigen ist eine C++-Template-Bibliothek für lineare Algebra. Sie stellt Klassen und Funktionen für Matrizen, Vektoren und numerische Operationen bereit und ist für ihre Performance sowie die einfache Integration mit anderen Bibliotheken bekannt.
Für diese Auswahl haben wir Google- und Stack-Overflow-Suchergebnisse sowie C++-Repositories auf GitHub und weitere Open-Source-C++-Projekte betrachtet.
Google-Suchergebnisse:

Ergebnisse für Fragen auf Stack Overflow:

Wenn Sie C++-Einsteiger sind, empfehlen wir, zunächst die STL sicher zu beherrschen. Anschließend können Sie je nach konkreten Anforderungen eine der Bibliotheken aus dieser Liste auswählen:
