8 grandes bibliothèques pour la programmation C ++

C ++ est un langage de programmation de systèmes à usage général qui a maintenant plus de 40 ans, ayant été conçu en 1979. Loin de perdre de la vitesse, C ++ se classe toujours près du sommet des multiples index de popularité des langages de programmation.

Faciliter le chemin vers l'utilisation du C ++ est une prise en charge étendue du langage parmi les fabricants d'EDI, éditeurs, compilateurs, cadres de test, qualité du code et autres outils. Les développeurs de logiciels ont également à leur disposition de nombreuses excellentes bibliothèques pour aider à créer des applications C ++. En voici huit sur lesquels les développeurs C ++ s'appuient. 

Bibliothèque de modèles actifs

De Microsoft, Active Template Library (ATL) est un ensemble de classes C ++ pour la création d'objets COM (Common Object Model), avec prise en charge des fonctionnalités COM telles que les interfaces doubles, les interfaces d'énumérateur COM standard, les points de connexion et les contrôles ActiveX. Disponible avec l'IDE de Visual Studio, ATL peut être utilisé pour créer des objets à thread unique, des objets de modèle de cloisonnement, des objets de modèle à thread libre ou des objets de modèle de thread libre et de cloisonnement.

Bibliothèque Asio C ++

La bibliothèque Asio C ++ est utilisée pour la programmation réseau et d'E / S de bas niveau, offrant un modèle asynchrone cohérent. Fournissant des éléments de base pour la concurrence, la mise en réseau C ++ et d'autres types d'E / S, Asio a été utilisé dans des applications allant des applications et jeux pour smartphone aux sites Web hautement interactifs et aux systèmes de transaction en temps réel. Les projets utilisant Asio incluent la bibliothèque WebSocketPP et le débogueur distant DDT3 pour le langage Lua. Asio est disponible en open source gratuit sous la licence logicielle Boost et pris en charge sur Linux, Windows, MacOS et FreeBSD.

Eigen

Eigen est une bibliothèque de modèles C ++ pour l'algèbre linéaire, comprenant des matrices, des vecteurs, des solveurs numériques et des algorithmes associés. Toutes les tailles de matrice sont prises en charge, des petites matrices fixes aux matrices arbitrairement grandes et denses. Les algorithmes sont sélectionnés pour leur fiabilité. Tous les types numériques standard sont pris en charge. Pour plus de rapidité, Eigen propose des modèles d'expression pour supprimer intelligemment les temporaires et permettre une évaluation paresseuse. Librement disponible sous la licence publique Mozilla 2 et téléchargeable depuis la page du projet Eigen, Eigen a été équipé d'une API décrite par les promoteurs comme expressive et propre et naturelle pour les programmeurs C ++. La suite de tests pour Eigen a été exécutée sur de nombreux compilateurs pour garantir la fiabilité.

FloatX

FloatX, ou Float eXtended, est une bibliothèque d'en-tête uniquement pour l'émulation de type à virgule flottante de faible précision. Bien qu'il soit nativement compatible avec les compilateurs C ++, FloatX peut être appelé par d'autres langages tels que Python ou Fortran. Les types à virgule flottante sont étendus au-delà des types natifs à simple et double précision. Des types de modèles sont fournis qui permettent à l'utilisateur de sélectionner le nombre de bits utilisés pour l'exposant ainsi que les parties significatives du nombre à virgule flottante. FloatX est basé sur l'idée de la bibliothèque FlexFloat pour émuler des types flottants à précision réduite, mais implémente un sur-ensemble de fonctionnalités FlexFloat en C et fournit des wrappers C ++. FloatX est issu de l'initiative Open Transprecision Computing. Il est disponible gratuitement sous la licence Apache 2.0. 

OpenCV

OpenCV, ou Open Source Computer Vision Library, est une bibliothèque de vision par ordinateur et d'apprentissage automatique écrite nativement en C ++ et disponible sous une licence BSD. OpenCV a été conçu pour fournir une infrastructure commune pour les applications de vision par ordinateur et accélérer l'utilisation de la perception de la machine dans les produits commerciaux. Plus de 2500 algorithmes optimisés pour la reconnaissance faciale, la détection d'objets, la classification d'objets, l'extraction de modèles 3D, la recherche d'images et bien plus encore, OpenCV a rassemblé une communauté d'utilisateurs de plus de 47000 personnes. Disponible sur le site Web du projet OpenCV, la bibliothèque fournit des interfaces C ++, Java, Python et Matlab et prend en charge Windows, Linux, Android et MacOS. Les interfaces CUDA et OpenCL sont en cours de développement.

Bibliothèques Poco C ++

Destinées à simplifier le développement C ++, les bibliothèques C ++ Poco (Portable Components) sont des bibliothèques C ++ multiplateformes permettant de créer des applications Internet et réseau à exécuter sur des systèmes allant des ordinateurs de bureau et serveurs aux appareils mobiles et IoT. Les bibliothèques peuvent également être utilisées pour créer des microservices avec des API REST pour l'apprentissage automatique ou l'analyse de données. Les bibliothèques Poco sont similaires dans leur concept à la bibliothèque de classes Java, au .NET Framework de Microsoft ou à Apple Cocoa.

Les développeurs peuvent utiliser les bibliothèques Poco pour créer des serveurs d'applications en C ++ qui communiquent avec des bases de données SQL, Redis ou MongoDB, ou pour créer des logiciels pour les appareils IoT qui communiquent avec les back-ends du cloud. Parmi les fonctionnalités des bibliothèques figurent une structure de cache, la gestion des formulaires HTML, un client FTP pour le transfert de fichiers et un serveur et client HTTP. Les bibliothèques Poco sont disponibles gratuitement sous la licence logicielle Boost et téléchargeables depuis GitHub. 

Bibliothèque de modèles Windows

Originaire de Microsoft, la bibliothèque de modèles Windows (WTL) est (depuis 2004) une bibliothèque open source pour la création d'applications Windows légères et de composants d'interface utilisateur. Positionné comme une alternative à la boîte à outils Microsoft Foundation Classes, WTL étend ATL et fournit un ensemble de classes pour les contrôles, les boîtes de dialogue, les fenêtres de cadre et les objets GDI.

Poids

Wt est une bibliothèque d'interface graphique Web en C ++ moderne qui permet aux développeurs de créer des interfaces utilisateur Web interactives avec des widgets, sans avoir à écrire du JavaScript. Solution côté serveur, Wt demande la gestion et le rendu des pages, fournissant une sécurité intégrée, un rendu PDF, un système de peinture 2D et 3D, une bibliothèque de mappage relationnel objet, une bibliothèque de graphiques et un cadre d'authentification. La bibliothèque principale est open source, fournissant un cadre hybride d'une seule page qui peut être déployé sur Linux, Unix ou Windows.

Développé par la société d'ingénierie logicielle Emweb, Wt est compatible avec les navigateurs HTML5 et HTML4 ainsi qu'avec les agents utilisateurs HTML simples. Et Wt peut s'intégrer à des bibliothèques JavaScript tierces. Avec Wt, une application est définie comme une hiérarchie de widgets - allant des widgets génériques tels que les boutons poussoirs aux widgets spécialisés tels que tout un widget de blog. L'arborescence des widgets est rendue en HTML / JavaScript dans le navigateur. Wt peut être téléchargé à partir de la page Web du projet. Des conditions d'utilisation open source et commerciales sont disponibles.