C++¶
C++ est un langage de bas niveau qui produit un binaire natif qui s’exécute directement sur l’OS, sans interpréteur ni machine virtuelle.
Construction¶
- cmake simplifie la gestion des dépendances et la construction cross-platforme.
- conan apporte à C++ un gestionnaire de dépendance de même niveau que pip pour Python ou npm pour JavaScript.
Utilitaires¶
Voir www.boost.org - Library Documentation :
- boost-program_options pour l'écriture d'API CLI (voir Getting Started)
- boost-serialization pour la sérialisation et désérialisation des données.
- boost-test pour l'écriture de tests unitaires et fonctionnels.
- boost-log pour la génération de journaux applicatifs.
- boost-multi_index pour l'indexation sur plusieurs propriétés.
- boost-variant
- boost-python
Traitement de graphe¶
- boost-graph
- examples/boost-examples/boost-graph-helloworld.cpp
- github.com - mborne/graph-experiments : expérimentation
boost::graph
avec OGRFeature (GDAL) en vertex et edge.
Algèbre linéaire¶
Bibliothèques pour les données spatiales¶
- GDAL est un bibliothèque d'abstraction sur les données géographiques (image et vecteur) supportant de nombreux formats et de nombreux systèmes.
- GEOS est une bibliothèque de calcul géométrique utilisée par PostGIS (c'est un portage de JTS (Java Topology Suite) en C++)
- GMP - The GNU Multiple Precision Arithmetic Library
Autres¶
- OpenCV est une bibliothèque de traitement d'image.
- OpenSceneGraph est une bibliothèque de rendu 3D.
- Qt est un framework de développement d'application graphique portable.
- STXXL est une implémentation de la STL pour les gros jeux de données (stockage dans des fichiers).
Ressources¶
- roadmap.sh - C++
- cppreference.com est le manuel C++ de référence.
- www.codewars.com propose de nombreux défis en C++ (avec des corrections permettant de progresser)
- github.com - federico-busato/Modern-CPP-Programming
- stackoverflow.com - Cross-platform libraries that are free for commercial (or non-commercial) applications