C++ : Modern Design (les nouveautés 11/14/17/20)

Inter-company training

Who is the training for?

Tous

Duration

4,00 day(s)

Language(s) of service

EN FR
The content of this page is not available in English

Prerequisites

Notions de C++

Goals

Apprendre les nouveautés du C++

Contents

Découvrir les nouveautés fondamentales du Core Language

Le littéral nullptr et les types normalisés (uint_8, uint64_t, …), les littéraux et séparateurs
Inférence de types et de signatures avec auto
Variables templates (C++ 14)
Initialisation uniforme des variables, de tableaux et des conteneurs
Parcours unifié des tableaux et conteneurs avec La boucle "range based" for
Listes d’initialisation avec initializer_list
Énumérations fortement typées (C++11/17)
Littéraux personnalisés
Amélioration du contrôle de flux avec les Init-statements (C++17/20)
L’opérateur sizeof appliqué aux membres d’un objet ou d’une classe
Contrôle de l’alignement mémoire
L'opérateur decltype
Déconstruction avec les structured bindings (C++17)
Les spécificateurs de classe (override, default, delete, final)
Constructeur délégué et constructeur hérité
Initialisation de membres
Constructeur explicite multi-paramétré
Abraham’s Exception safety guarantees et la clause noexcept
Données inlineMétaprogrammation avec constexpr
Les spécificateurs consteval et constinit (C++20)
Les attributs (C++11/17/20)L’opérateur de comparaison " Three Way " <=> (C++20)
Paramètres nommés pour la construction des structures (C++20)
Améliorations apportées aux fonctions génériques et aux lambdas (C++17/20)

Découvrir les nouveautés de la librairie standard

Les nouveaux itérateursLes tableaux à taille fixe avec std::arrayLa classe std::string_view (C++ 17)
La classe std::span (C++ 20)
Nouveautés de la classe std::string (C++17)
Les classes std::variant, std::any et std::optional (C++17)
Les nouvelles collections associatives: unordered_map/set et hashSingly-Linked Lists
Le conteneur tuple
Les nouveaux algorithmes ensemblistes
Gestion du temps, l’espace de nom chronoGénérateurs / distributions de nombre aléatoires
La librairie Ranges, les vues et les adaptateurs de vues (C++20)
Pipelining avec les nouveaux algorithmes sur vues (C++20)
Sorties formattées avec std::format et les placeholders (C++20)
Constructeurs constexpr des conteneursLa librairie filesystem (C++17)

Move semantics

Copie versus déplacement
Value et R
Value referenceLa fonction std::move
Move constructor et move assignment operator
Complétude étendue des classes
R-value reference et STLSTL C++11 et swap / move
Signature reference qualifiers
Perfect forwarding avec std::forwardRéférences forward et collapsing
Copy elision et Guaranted RVO (C++17)

Gérer des ressources

L’idiome RAII (Resource Acquisition Is Initialization)
Propriété et transfert de responsabilité
La classe unique_ptr
Comptage de références avec la classe shared_ptr
Custom deleterLes fonctions make_unique et make_shared
La classe weak_ptr et le référencement circulaire

Maîtriser la programmation fonctionnelle

Problématique de l’abonnement
Pointeur de function / méthode / membre statique
Les classe function et mem_fnBinding, placeholders
Adaptateurs de références

Utiliser la généricité

Typage multiple avec les mixins
Paramétrage et spécialisation des méthodes
Héritage / containment et généricité
Métaprogrammation
L’idiome CRTP Curiously Recursive Template Pattern
Typologie C++ et classes de traits
Assertions statiques avec static_assert
Extended friend declarationLes variadic templates, pattern matching et héritage multiple
Constexpr_if (C++17)
Implémentation générique du pattern visitor avec std::visit (C++17)
Définition de contrats génériques avec les concepts (C++20)
Mise en œuvre de contraintes avec requires (C++20)
Concepts prédéfinis de la librairie standard (C++20)

Créer des modules (C++20)

Unités d’interface et d’implémentation
Sous modules et partitions
Module linkage

Gérer le Multithreading et concurrence

Démarrage et détachement d’un thread
Threads et gestion des exceptions
La classe std::call_onceL’espace de noms this_thread
Futures / promises et packaged_task
Les futures, politique de démarrage (parallèle ou asynchrone) et gestion des exceptions
Partage de ressources et mécanismes de synchronisation
Mutexes données atomiques (C++11/20)
Unique-lock et lock_guardLa classe std::jthread (C++20)
Synchronisation avec les sémaphores et les mécanismes latches et barriers (C++ 17/20)
Flux de sortie synchronisés (C++ 20)

Teaching methods

Méthodologie basée sur l'Active Learning : 75% de pratique minimum. Chaque point théorique est systématiquement suivi d'exemples et exercices.

Evaluation

Contrôle continu

Certificate, diploma

Attestation de fin de stage mentionnant le résultat des acquis

Organization contact details

Dawan - Service commercial

These courses might interest you

EN
Day
On request
Computer language - XML language