8 großartige Bibliotheken für die C ++ - Programmierung

C ++ ist eine Allzweck-Systemprogrammiersprache, die mittlerweile mehr als 40 Jahre alt ist und 1979 entwickelt wurde. C ++ ist weit davon entfernt, Dampf zu verlieren, und steht immer noch an der Spitze der Beliebtheitsindizes mehrerer Programmiersprachen.

Den Weg zur C ++ - Nutzung zu ebnen, ist eine breite Unterstützung für die Sprache unter den Herstellern von IDEs, Editoren, Compilern, Testframeworks, Codequalität und anderen Tools. Softwareentwickler verfügen auch über viele hervorragende Bibliotheken, die beim Erstellen von C ++ - Anwendungen helfen. Hier sind acht, auf die sich C ++ - Entwickler verlassen. 

Aktive Vorlagenbibliothek

In Microsoft ist Active Template Library (ATL) eine Reihe von C ++ - Klassen zum Erstellen von COM-Objekten (Common Object Model), die COM-Funktionen wie zwei Schnittstellen, Standard-COM-Enumerator-Schnittstellen, Verbindungspunkte und ActiveX-Steuerelemente unterstützen. ATL ist mit der Visual Studio-IDE verfügbar und kann zum Erstellen von Single-Thread-Objekten, Apartment-Modellobjekten, Free-Thread-Modellobjekten oder sowohl Free-Thread- als auch Apartment-Modellobjekten verwendet werden.

Asio C ++ - Bibliothek

Die Asio C ++ - Bibliothek wird für die Netzwerk- und Low-Level-E / A-Programmierung verwendet und bietet ein konsistentes asynchrones Modell. Asio bietet grundlegende Bausteine ​​für Parallelität, C ++ - Netzwerke und andere Arten von E / A und wurde in Anwendungen eingesetzt, die von Smartphone-Apps und -Spielen bis zu hoch interaktiven Websites und Echtzeit-Transaktionssystemen reichen. Zu den Projekten, die Asio verwenden, gehören die WebSocketPP-Bibliothek und der DDT3-Remote-Debugger für die Lua-Sprache. Asio ist als kostenloses Open Source unter der Boost Software License verfügbar und wird unter Linux, Windows, MacOS und FreeBSD unterstützt.

Eigen

Eigen ist eine C ++ - Vorlagenbibliothek für lineare Algebra, einschließlich Matrizen, Vektoren, numerischen Lösern und verwandten Algorithmen. Alle Matrixgrößen werden unterstützt, von kleinen festen Matrizen bis zu beliebig großen dichten Matrizen. Algorithmen werden aus Gründen der Zuverlässigkeit ausgewählt. Alle numerischen Standardtypen werden unterstützt. Aus Gründen der Geschwindigkeit bietet Eigen Ausdrucksvorlagen, um temporäre Elemente intelligent zu entfernen und eine verzögerte Auswertung zu ermöglichen. Eigen ist unter der Mozilla Public License 2 kostenlos verfügbar und kann von der Eigen-Projektseite heruntergeladen werden. Es wurde mit einer API ausgestattet, die von Befürwortern als ausdrucksstark, sauber und natürlich für C ++ - Programmierer beschrieben wird. Die Testsuite für Eigen wurde gegen viele Compiler ausgeführt, um die Zuverlässigkeit zu gewährleisten.

FloatX

FloatX oder Float eXtended ist eine reine Header-Bibliothek für Gleitkomma-Emulationen mit geringer Genauigkeit. FloatX ist zwar nativ mit C ++ - Compilern kompatibel, kann aber auch von anderen Sprachen wie Python oder Fortran aufgerufen werden. Gleitkommatypen werden über die nativen Typen mit einfacher und doppelter Genauigkeit hinaus erweitert. Es werden Vorlagentypen bereitgestellt, mit denen der Benutzer die Anzahl der für den Exponenten verwendeten Bits sowie wichtige Teile der Gleitkommazahl auswählen kann. FloatX basiert auf der Idee der FlexFloat-Bibliothek zur Emulation von Floating-Typen mit reduzierter Genauigkeit, implementiert jedoch eine Obermenge der FlexFloat-Funktionalität in C und bietet C ++ - Wrapper. FloatX ist aus der Open Transprecision Computing-Initiative hervorgegangen. Es ist kostenlos unter der Apache License 2.0 erhältlich. 

OpenCV

OpenCV oder Open Source Computer Vision Library ist eine Computer Vision- und Machine Learning-Bibliothek, die nativ in C ++ geschrieben und unter einer BSD-Lizenz verfügbar ist. OpenCV wurde entwickelt, um eine gemeinsame Infrastruktur für Computer-Vision-Anwendungen bereitzustellen und die Nutzung der Maschinenwahrnehmung in kommerziellen Produkten zu beschleunigen. Mehr als 2.500 optimierte Algorithmen für Gesichtserkennung, Objekterkennung, Objektklassifizierung, 3D-Modellextraktion, Bildsuche und vieles mehr hat OpenCV eine Benutzergemeinschaft von mehr als 47.000 Personen angehäuft. Die auf der OpenCV-Projektwebsite verfügbare Bibliothek bietet C ++ -, Java-, Python- und Matlab-Schnittstellen und unterstützt Windows, Linux, Android und MacOS. CUDA- und OpenCL-Schnittstellen befinden sich in der Entwicklung.

Poco C ++ - Bibliotheken

Um die C ++ - Entwicklung zu vereinfachen, sind die Poco (Portable Components) C ++ - Bibliotheken plattformübergreifende C ++ - Bibliotheken zum Erstellen von Internet- und Netzwerkanwendungen für Systeme, die von Desktops und Servern bis hin zu Mobil- und IoT-Geräten reichen. Die Bibliotheken können auch zum Erstellen von Microservices mit REST-APIs für maschinelles Lernen oder Datenanalyse verwendet werden. Die Poco-Bibliotheken ähneln im Konzept der Java-Klassenbibliothek, Microsoft .NET Framework oder Apple Cocoa.

Entwickler können Poco-Bibliotheken verwenden, um Anwendungsserver in C ++ zu erstellen, die mit SQL-Datenbanken, Redis oder MongoDB kommunizieren, oder um Software für IoT-Geräte zu erstellen, die mit Cloud-Backends kommunizieren. Zu den Funktionen der Bibliotheken gehören ein Cache-Framework, die Verarbeitung von HTML-Formularen, ein FTP-Client zum Übertragen von Dateien sowie ein HTTP-Server und -Client. Die Poco-Bibliotheken sind kostenlos unter der Boost-Softwarelizenz erhältlich und können von GitHub heruntergeladen werden. 

Windows-Vorlagenbibliothek

Die ursprünglich von Microsoft stammende Windows-Vorlagenbibliothek (WTL) ist (seit 2004) eine Open-Source-Bibliothek zum Erstellen leichter Windows-Anwendungen und UI-Komponenten. WTL ist eine Alternative zum Microsoft Foundation Classes-Toolkit und erweitert ATL und bietet eine Reihe von Klassen für Steuerelemente, Dialogfelder, Rahmenfenster und GDI-Objekte.

Wt

Wt ist eine Web-GUI-Bibliothek in modernem C ++, mit der Entwickler interaktive Web-Benutzeroberflächen mit Widgets erstellen können, ohne JavaScript schreiben zu müssen. Wt ist eine serverseitige Lösung, die die Bearbeitung und das Rendern von Seiten anfordert und integrierte Sicherheit, PDF-Rendering, ein 2D- und 3D-Malsystem, eine objektrelationale Zuordnungsbibliothek, eine Diagrammbibliothek und ein Authentifizierungsframework bietet. Die Kernbibliothek ist Open Source und bietet ein hybrides Framework für einzelne Seiten, das unter Linux, Unix oder Windows bereitgestellt werden kann.

Wt wurde vom Softwareentwicklungsunternehmen Emweb entwickelt und ist mit HTML5- und HTML4-Browsern sowie mit einfachen HTML-Benutzeragenten kompatibel. Und Wt kann in JavaScript-Bibliotheken von Drittanbietern integriert werden. Mit Wt wird eine Anwendung als eine Hierarchie von Widgets definiert - von allgemeinen Widgets wie Drucktasten bis zu speziellen Widgets wie einem gesamten Blog-Widget. Der Widget-Baum wird im Browser als HTML / JavaScript gerendert. Wt kann von der Projektwebseite heruntergeladen werden. Es stehen sowohl Open Source- als auch kommerzielle Nutzungsbedingungen zur Verfügung.