Prise en main
Guide pas à pas pour configurer votre environnement et intégrer CppUtils à vos projets.
CppUtils se compose de plusieurs grandes bibliothèques modulaires (tests unitaires, réseau, topologie de graphes) accompagnées de nombreux utilitaires spécialisés. Les modules C++20 permettent d’importer aisément l’ensemble en une seule directive (import CppUtils;) sans alourdir le binaire final, seuls les composants effectivement utilisés étant intégrés lors de la compilation.
Prise en main
Guide pas à pas pour configurer votre environnement et intégrer CppUtils à vos projets.
Framework de tests unitaires
Conçu pour le C++ moderne sans macros : assertions asynchrones, fuzzing, benchmarks et résilience aux crashs.
Verrous RAII
Guide pratique pour utiliser UniqueLocker et SharedLocker afin de sécuriser l’accès aux données partagées.
Référence d'API C++
Catalogue complet des namespaces, objets et fonctions documentés.
CppUtils repose sur des principes directeurs sans concession :
Boîte à outils riche & modulaire
Réunit l’essentiel (conteneurs, concurrence, réseau, parsing, tests, crypto, etc.) pour éliminer la prolifération de dépendances externes. Grâce aux modules C++, cette richesse favorise une réutilisabilité maximale sans aucun surcoût :
import CppUtils.Container;) ou tout le catalogue (import CppUtils;).#include).Intégration non invasive & programmation par contrat
Aucun verrouillage ni contamination architecturale : CppUtils ne cherche jamais à imposer ses types ni à coloniser votre codebase.
moc), leurs types fermés (QString, QByteArray) et de lourdes hiérarchies d’héritage, CppUtils reste strictement non invasif et ne propage aucune adhérence virale : l’objectif n’est jamais de vous rendre captif d’un écosystème propriétaire (vendor lock-in).std::ranges::input_range, std::formattable, std::invocable, etc.) plutôt que des types figés et imposés : vos conteneurs se propagent sans copie ni conversion superflue (en savoir plus sur la programmation par contrat avec auto et les concepts sur mon blog).MultiKeyMap, UniqueLocker) en toute indépendance, sans devoir importer le reste du catalogue.À la pointe du C++26 & zéro dette technique
Alignement assumé sur le dernier standard (C++26) pour délivrer immédiatement l’état de l’art : modules natifs, typage monadique, concepts avancés, sécurité accrue et réflexivité.
__cpp_lib_*) facilitent la compilation sur les compilateurs récents au support C++26 encore partiel, sans alourdir le code de couches de compatibilité rétrograde.Performance & bonnes pratiques modernes
La performance maximale sans jamais sacrifier la clarté ni la sécurité :
constexpr, consteval).Si vous appréciez CppUtils et souhaitez soutenir son développement indépendant, vous pouvez parrainer le projet sur GitHub Sponsors :
Sponsoriser sur GitHub