Aller au contenu
Module 8

C++ moderne et bonnes pratiques

Les standards C++ les plus récents (C++17/20/23/26), les systèmes de build, les pratiques de test et les règles de codage professionnelles.

Fonctionnalités de C++17 et C++20

  1. C++17 : le standard pragmatique

    Explorez les fonctionnalités les plus marquantes de C++17 : structured bindings, std::optional/variant/any, std::string_view, std::filesystem, if constexpr et les nouveaux attributs.

  2. C++20 : les quatre grandes nouveautés et plus encore

    Découvrez les fonctionnalités transformatrices de C++20 : concepts, ranges, opérateur spaceship, std::format, initialiseurs désignés, std::span, et plus encore.

  3. Les coroutines de C++20

    Comprenez les coroutines comme des fonctions suspendables. Découvrez co_yield, co_return, co_await, le patron générateur et des cas d'usage concrets comme les E/S asynchrones et les machines à états.

  4. Les modules de C++20

    Découvrez pourquoi les modules remplacent les en-têtes, comment déclarer et exporter des modules, les partitions de modules et la voie de transition depuis du code basé sur les en-têtes.

C++23 et au-delà

  1. C++23 et aperçu de C++26

    Explorez std::expected, std::print, deducing this et les améliorations des ranges de C++23, et découvrez en avant-première les futures fonctionnalités de C++26 comme les contrats, la réflexion et le pattern matching.

Pratiques professionnelles en C++

  1. Systèmes de build : CMake et gestion des paquets

    Maîtrisez les bases de CMake, le CMake moderne orienté cibles, FetchContent pour les dépendances, les gestionnaires de paquets vcpkg et Conan, ainsi que les options du compilateur pour des builds sûrs et optimisés.

  2. Tests, benchmarks et sanitizers

    Écrivez des tests unitaires avec GoogleTest, mesurez les performances avec Google Benchmark, traquez les bugs avec les sanitizers (ASan, UBSan, TSan) et intégrez l'analyse statique à votre pipeline CI/CD.

  3. C++ Core Guidelines et patrons professionnels

    Découvrez les C++ Core Guidelines, les conventions de nommage, la const-correction, les principes de conception d'API, les pratiques de documentation, le profilage des performances et les techniques de débogage en production.