Objectifs
- Assimiler et mettre en œuvre les principes du C++ moderne
- Se familiariser avec les évolutions de C++ jusqu'à C++20
- Maitriser les concepts avancés de programmation parallèle et concurrente
Description
Révision des bases du langage
- Définition du langage C++
- Les fonctions: inline, static, const, constexpr, virtual, consteval, …
- Plain Old Data (POD) : struct vs class
- Déclaration vs définition (One Definition Rule)
- La STL : ses conteneurs et ses algorithmes
- Principes de base des templates, différence avec constexpr
- Comportements indéfinis (Undefined behavior)
Fondements du C++ moderne
- Présentation des C++ Core Guidelines
- Évolutions dans la syntaxe (C++14, C++17, C++20)
- Gestion robuste des ressources (RAII, smart pointers, scope guards)
- Notion de propriété (ownership), sémantique de déplacement (std::move)
- Sémantique de valeur / entité
- Simplifier les initialisations complexes avec des lambdas
- Un code plus robuste et expressif avec des alias fortement typés (strong typedefs)
Programmation orientée objet avancée
- Polymorphisme statique et dynamique
- Principe de substitution de Liskov
- Héritage vs composition
- Classes abstraites, PIMPL
- POO sans héritage
- Principes SOLID
Notions de programmation fonctionnelle
- Les lambdas
- Immutabilité (const) et fonctions pures
- Type optionnel avec std::optional
- Type composite avec std::variant
- Type erasure : std::string_view, std::span
Multithreading et scalabilité
- Parallélisme vs concurrence
- Race condition, impact du mot-clé const
- Protection des sections critiques (std::mutex, std::condition_variable, …)
- Enjeux de la scalabilité (loi d'Amdahl)
- Algorithmes parallèles de la STL (C++17)
- Programmation lock free (std::atomic)
- Programmation asynchrone : promise, future, coroutines
- Map, filter, reduce (Qt Concurrent)
- Thread Local Storage (thread_local)
- Détecter les problèmes (outils disponibles)
- Autres approches : OpenMP, CUDA, Boost.Interprocess, gRPC
Outils modernes du développeur C++
- Bien configurer son compilateur
- Tests unitaires avec Catch2
- Utilisation de CMake et des CMake presets
- Formatage automatique du code avec clang-format
- Gestion de dépendances avec Conan
- Couverture de code avec gcov / lcov
- Analyseurs statiques
- Compiler explorer (Godbolt)
Conditions d'accès
Connaissance basique en C++ (notion d objet et pointeur)
Rythme
Temps plein
Liste des sessions
1 avril 2026 > 31 décembre 2026
Ambient it
- 0646286691
- formation@ambient-it.net
Centre de formation
140 Avenue Jean Lolive, 93500 Pantin
Lieu de formation
140 Avenue Jean Lolive, 93500 Pantin





