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

Inter-company training

How long does the training course last?

 4,00 day(s)

In which language(s) is the training course taught?

EN FR

When will the next session take place?

Who is organising this training course?

Dawan is a training organisation that offers more than 2000 training courses in IT, management, project management and sales in instructor-led live online or on-site trainings. We have 11 centres in France and we have developed partnerships with local structures in Brussels, Luxembourg and Geneva. Our catalogue includes hundreds of topics: Java, PHP, Webmaster, E-Marketing, Linux, Windows Server, Vmware, Autocad, Photoshop, IA etc. Our courses have been created and designed by in-house trainers who have over 20 years of teaching experience. Constantly renewed, they are adapted to the requirements of our customers and to the evolution of technologies.

Who is the training course aimed at?

Tous

What are the prerequisites?

Notions de C++

What are the aims or the skills being targeted?

Apprendre les nouveautés du C++

What does the training course cover?

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)

What teaching methods are used?

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

How is the assessment organised?

Contrôle continu

What will you receive at the end of the training course?

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

What course materials are provided?

Sources des exercices + Support papier

How to contact the training provider?

Dawan - Service commercial

These courses might interest you

EN
Day
On request
Computer language - Visual Basic .NET language