Aller au contenu principal
  • Cours pratique
  • Informatique

Formation Du C++ 11 au C++20 pour développeur C++

Tirer parti des nouvelles fonctionnalités à partir de la version 2011 de C++

Demander un devis
Une formatrice accompagne deux participants penchés sur leurs notes, en salle de formation
Durée
3 jours
Niveau
Intermédiaire
Modalités
Présentiel / Distanciel

Description de la formation C++-11 C++-20

Cette formation C++11/C++20 vous présente sous un angle conceptuel et opérationnel les nouveautés du langage C++ depuis la version 2011. Plus généralement, au-delà des nouveautés, vous disposerez d’une vue complète sur le langage C++.

Après avoir présenté les différences au niveau de l’environnement de développement et des compilateurs, nous présentons le positionnement de la bibliothèque STL.

Vous apprenez à utiliser la puissance des lambda-expressions pour combiner les avantages des pointeurs et des objets de fonction tout en évitant leurs inconvénients.

Vous allez comprendre les apports dans la mise en œuvre de la puissante bibliothèque de templates STL (Standard Template Library) notamment pour les algorithmes et structures autour des vecteurs, listes, file, et piles.

Vous saurez gérer le temps de façon efficace avec le namespace chrono. Enfin, la programmation des threads vous permettra de savoir mettre en œuvre la programmation parallèle en C++.

Les dernières nouveautés, à savoir les co-routines et modules de C++ 20, sont également traitées.

Atelier en salle : une participante présente des notes au tableau

Objectifs pédagogiques

À l'issue de cette formation C++11/C++20, vous serez en mesure de :

  • Identifier les évolutions majeures du langage depuis C++11
  • Mettre en œuvre les concepts modernes : sémantique de mouvement, smart pointers, lambdas, ranges, coroutines
  • Utiliser efficacement la STL moderne et les nouvelles bibliothèques introduites jusqu’à C++23
  • Structurer un projet avec CMake et les outils de développement récents
  • Exploiter les possibilités de la programmation générique et asynchrone
  • Appliquer les bonnes pratiques pour écrire un C++ lisible, sûr et performant

Objectifs opérationnels

Comprendre, maîtriser et mettre en œuvre les principales nouveautés introduites par les standards C++11, C++14, C++17, C++20 et C++23, afin de développer des applications modernes, sûres, performantes et maintenables.

Programme

Contenu du cours

Évolution du langage et des outils

CHistorique des versions : de C++11 à C++23
Positionnement de la norme C++23 et perspectives C++26
Outils modernes : GCC 14, Clang 18, MSVC 2022
IDE actuels : Visual Studio Code, CLion, Visual Studio
Outils de build et de gestion : CMake, Conan
Bonnes pratiques de compilation multi-version (-std=c++20, -std=c++23)
Travaux pratiquesTest de la version installée

Les nouveautés du langage C++11/C++17

auto, decltype, constexpr
Sémantique de mouvement et rvalue references
unique_ptr, shared_ptr, weak_ptr
Lambda expressions et closures
Initialisation uniforme, nullptr, enum class
Multithreading moderne (std::thread, std::mutex, future, async)
Fonctions de temps (std::chrono)

Travaux pratiques :Migration d’un code C++03 vers un code C++17 moderne

Les apports majeurs de C++20

Concepts et contraintes de template (requires, concept)
Ranges et algorithmes modernisés (views::filter, views::transform)
Modules : compilation rapide et découplage des dépendances
Coroutines : fonctions asynchrones légères
Nouveaux mots-clés : consteval, constinit, likely, no_unique_address
Nouvel opérateur de comparaison <=>

Travaux pratiques : Implémentation d’un module et d’une coroutine simple

Nouveautés C++23 et bonnes pratiques modernes

Nouvelles classes et API standard :
std::expected, std::print, std::mdspan, std::flat_map, std::barrier, std::latch
Améliorations des ranges (views::zip, join_with, cartesian_product)
Évolutions du constexpr et des templates
Bonnes pratiques de style et guidelines modernes (RAII, exceptions, constexpr design)
Tests unitaires modernes : Catch2, GoogleTest

Travaux pratiquesEcriture d’un mini-projet modulaire en C++23 avec test automatisé

Projet fil rouge

Conception d’une application C++23 complète intégrant :

  • Modules, coroutines et concepts
  • Ranges et STL moderne
  • Threads et synchronisation
  • Compilation et exécution via CMake

Programme mis à jour le 03/11/2025

Formations liées