C++ moderne : versions 11, 14, 17 et 20,23
Cette formation présente les nouvelles fonctionnalités de C++ 11 à 17 et certaines de C++ 20 et 23.
Elle couvre les nombreuses modifications qui permettent d'écrire rapidement du code plus sûr et plus rapide
(constructeur move, fonctions lambda, inférence de type, smart-pointers, threads, range, …)
Objectifs
- Développer du code de meilleure qualité en utilisant les nouvelles fonctionnalités de C++
- Savoir utiliser les nouveautés de la bibliothèque standard du C++.
Programme
Introduction aux versions récentes de C++
- Historique C++98, C++11, C++14 et 17, 20, 23
- Éléments obsolètes ou redéfinis (auto, register, auto_ptr, …)
- Le futur avec C++26
Nouvelles fonctionnalités du langage
- Pointeur null : nullptr
- Listes d’initialisation
- Parcours d’un conteneur
Typage par inférence
- auto, decltype
- Syntaxe de définition d’une fonction
- Strutured binding
Fonctions
- Fonctions constantes à la compilation
- Propagation des exceptions
- Support des fonctions dans la STL : std::function, std::bind,
- Définition d’une fonction anonyme
- Définition d’une fermeture
Classes
- Initialisation de variables
- Appels de constructeurs
- Spécifications des constructeurs par défaut (delete, default)
- Héritage des constructeurs
- Blocage de l’héritage
- Énumérations typées
Variables
- Alignement
- Nouveaux types
Contrôle du compilateur
- Static_assert
- If constexpr
Nouveautés de syntaxe
- Chevrons
- Using
- if et switch avec initialisation (C++ 17)
- Espace de nom inline et nested (C++ 17)
Concept et contraintes (C++20)
- Erreurs de compilation lors d’une mauvaise utilisation de template
- Présentation de la bibliothèque Concept
- Création de contraintes
Template
- Rappels sur les templates de classes et de fonctions
- Définition externe
- Template variadiques
- Définition de types partiels
- Inférence de type (C++ 17)
- Évaluation des expressions (C++ 17)
Référence vers des Rvalue et sémantique du move
- Définition d’une Rvalue
- Constructeur move
- Opérateur d’affection
- std:move
Smart Pointers
- Dépréciation de auto_ptr
- unique_ptr,
- shared_ptr
- weak_ptr
Multithreading
- Présentation
- Attribut thread_local
- Classes thread et jthread
- mutex, sémaphore
- Conditions, Verrous, future et promise
Range Library (C++20)
- Présentation
- Range adapter et generator
- Enchainement
- Filter
- Transform
Nouvelles bibliothèques de la librairie standard
- regex
- chrono
- Fonctions mathématiques
- Opérations atomiques
- Nouveaux types : optional, any, variant (C++17), expected (C++23)
- Bibliothèque Filesystem (C++ 17)
- Parallélisation des algorithmes (C++ 17)
Nouveaux conteneurs de la librairie standard
- array
- tuple - pair
- unordered_map, unordered_set, unordered_multimap, unordered_multiset
Télécharger le programme détaillé
En savoir plus
Prochaines sessions
Inter Entreprises
Grenoble : 14 - 16 septembre 2026 S'inscrire
Grenoble : 12 - 14 octobre 2026 S'inscrire
Grenoble : 16 - 18 novembre 2026 S'inscrire
Grenoble : 7 - 9 décembre 2026 S'inscrire
Sessions
Intra Entreprise
Des sessions intra-entreprise peuvent être organisées dans vos locaux ou en distanciel. Demander un devis
Pré requis
Connaissance et pratique du C++ (syntaxe de base, programmation orientée objet)
Public
Développeurs, Chef de projet
Coût
2100 € HT - 2100 € TTC