Formation C++ expert, les avancées du langage
Le C++ est un langage de programmation compilé très utilisé dans le monde, notamment dans le secteur des jeux vidéos. La formation C++ expert avancées du langage permet de profiter d'une maîtrise d'excellence du langage C++.
Elle s'adresse à des développeurs qui souhaitent se perfectionner. Le participant apprendra à appréhender les nouveautés et les améliorations du langage C++11, 14 Et 17, à exploiter toutes les possibilités de la programmation fonctionnelle, mais également à maitriser les allocations-destructions d'objets, ou encore à utiliser les expressions lambda.
Le participant sera finalement en mesure de développer une application multithreadée.

À l’issue de la formation, le participant sera en mesure de :
- Appréhender les nouveautés et les améliorations du langage C++11, 14 et 17
- Utiliser les expressions lambda
- Exploiter les possibilités de la programmation fonctionnelle
- Maîtriser les allocations-destructions d'objets
- Développer une application multithreadée
Cette formation s'adresse aux développeurs C++ souhaitant connaître les nouveautés définies par le standard C++11.
3 JOURS
L'avènement des C++11, 14 et 17
- Les différentes versions des normes C++.
- Les objectifs des versions de C++.
- La compatibilité des codes anciens.
Travaux pratiques
Vérification de l'outillage à l'aide d'un code C++17 fourni.
Les améliorations du langage
- Les énumérations fortement typées.
- Le mot-clé auto pour simplifier le typage.
- La boucle basée sur un intervalle.
- Les vérifications de la présence d’un include avec _has_include en C++17.
- Les initialiseurs dans les if et switch de C++17.
- Les templates à arguments variables, pointeur nul, littéraux, etc.
- Constexpr et « if constexpr » de C++17 pour évaluer à la compilation.
Travaux pratiques
Mise en œuvre des améliorations.
Les modifications au niveau des classes
- La délégation de constructeur.
- La sémantique de déplacement et le constructeur par déplacement.
- Les directives =delete, =default =override.
- Les initialiseurs de conteneurs.
Travaux pratiques
Création de classes C++17.
L'utilisation des threads
- L'exécution d'un thread. Attente de fin avec join().
- La gestion des données locales à un thread avec volatile.
- Comment récupérer un résultat avec future<> et async().
Travaux pratiques
Multithreader un code séquentiel.
Les autres nouveautés de la bibliothèque standard
- std ::string_view de C++17 : pour le passage de séquences de caractères.
- FileSystem library de C++17 pour manipuler les fichiers.
- La gestion du temps avec le namespace chrono.
- Comment utiliser le nouveau conteneur tuple.
Travaux pratiques
Mise en œuvre des nouveautés.
La programmation fonctionnelle avec les expressions lambda
- Déclaration, typage, implémentation et utilisation.
- Capture (closure) par valeur ou par référence des variables liées au contexte.
Travaux pratiques
Exercices de programmation fonctionnelle.
La gestion mémoire et les conteneurs
- Les conteneurs à base de hachage.
- Les nouveaux algorithmes de C++11,14,17.
- Les smart pointers : shared_ptr, weak_ptr, unique_ptr.
Travaux pratiques
Mise en œuvre de la gestion mémoire C++11.
Bonnes connaissances du langage C++. Une expérience pratique de la programmation avec ce langage est recommandée.
