C++ moderne : versions 11, 14, 17 et 20
Cette formation présente les nouvelles fonctionnalités de C++ 11 à 17 et certaines de C++ 20.
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
- Éléments obsolètes ou redéfinis (auto, register, auto_ptr, …)
- Le futur avec C++23
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)
- Bibliothèque Filesystem (C++ 17)
- Parallélisation des algorithmes (C++ 17)
Nouveaux conteneurs de la librairie standard
Télécharger le programme détaillé
En savoir plus
Prochaines sessions
Inter Entreprises
Grenoble : 9 - 11 septembre 2024 S'inscrire
Grenoble : 7 - 9 octobre 2024 S'inscrire
Grenoble : 18 - 20 novembre 2024 S'inscrire
Grenoble : 9 - 11 décembre 2024 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
Points forts
Petit groupe (4 personnes maximum)
Un poste de travail par personne
Formateur très pédagogue, développeur, avec 20 ans d'expérience d'enseignement
50 % d'exercices pratiques
Support de cours fourni
Assistance après la formation