Formation Nouveautés de C++ 11, 14, 17 et 20

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, …)

Formation Nouveautés de C++ 11, 14, 17 et 20

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

  • array
  • tuple - pair

Télécharger le programme détaillé

En savoir plus

Référence

MOD-C++

Durée

3 jours

Prochaines sessions

13 - 15 mai 2024 S'inscrire

3 – 5 juin 2024 S'inscrire

1 – 3 juillet 2024 S'inscrire

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

Coût

2100 € HT