C++ moderne

  • Pantin

  • À distance

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