C++ expert (passage versions 11 à 20)
Besoin d’adapter cette formation à vos besoins ?
N’hésitez pas à nous contacter afin d’obtenir un devis sur mesure !
Formation créée le 19/12/2022. Dernière mise à jour le 02/08/2023.
Version du programme : 2
Programme de la formation
Ce cours vous permettra d'assimiler les nouveautés introduites par les nouveaux standards C++. Vous couvrirez les possibilités de la programmation fonctionnelle, maîtriserez la gestion de la mémoire avec les smart pointers et exploiterez les autres nouveautés de la bibliothèque standard C++.
Objectifs de la formation
- Appréhender les nouveautés et les améliorations du langage C++
- Utiliser les lambda expressions
- Améliorer ses performances avec la sémantique de déplacement
- Maîtriser les allocations-destructions d'objets avec les smart pointers
- Développer une application multithreadée
Profil des bénéficiaires
- Développeurs C++ souhaitant connaître les nouveautés définies par le standard C++11.
- Bonnes connaissances du langage C++. Une expérience pratique de la programmation avec ce langage est recommandée.
Contenu de la formation
-
L'avènement de C++11
- Les différentes normes C++98, C++03, C++11=, C++14, C++17, C++20.
- Les nouveautés de C++11 et les objectifs de cette norme. Le devenir de Boost, STL.
- La question de la compatibilité des codes anciens.
- La disponibilité des outils de développement (compilateurs, débogueurs, IDE...).
-
Les améliorations du langage
- Les enum fortement typées.
- Le mot-clé auto et decltype pour simplifier le typage.
- La boucle basée sur un intervalle.
- Constexpr pour une évaluation à la compilation.
- Templates variadiques, concepts de C++20 soucoupe...
- Coroutines de C++20.
- Les modules de C++20.
-
Les modifications au niveau des classes
- La délégation de constructeurs, les contraintes liées à l'héritage.
- La nouvelle sémantique du déplacement et le constructeur par déplacement (move constructor).
- Les directives override, final =delete, =default.
- Notion de module C++20
-
La programmation fonctionnelle avec les expressions lambda
- Déclaration, typage, implémentation et utilisation.
- L'intérêt d'auto avec les lambda-expressions.
- La gestion des fermetures (closures), avec capture par valeur ou par référence des variables liées au contexte.
-
L'utilisation des threads
- Déclaration et exécution d'un thread. Attente de fin d'exécution avec join().
- La gestion des données locales à un thread.
- Récupérer un résultat avec future<> et async().
- Choisir parmi les différents verrous de la STL.
-
Autres nouveautés de la bibliothèque standard
- Ranges avec std ::view pour évaluations à la volée de C++20.
- La gestion du temps avec le namespace chrono.
- Le nouveau conteneur tuple.
- Conteneurs unordered_set, unordered_map à base de hachage.
- Formatage de string avec C++20.
-
La gestion mémoire et les conteneurs
- Les smart pointers : shared_ptr, weak_ptr, unique_ptr. Usage conjoint avec la STL.
Nos formations dont animées par des experts reconnus dans leur domaine possédant une expérience sur le terrain significative et des compétences pédagogiques reconnues.
- Entretien permettant l’analyse des besoins des participants et/ou questionnaire de positionnement
- L’évaluation des compétences est réalisée : Par des exercices pratiques et/ou mises en situation, tout au long de la formation Par un exercice de synthèse et/ou un questionnaire d’auto-évaluation et/ou une certification, en fin de formation
- Questionnaire de satisfaction à chaud en fin de formation, et à froid à 3 mois
- Feuille de présence émargée par demi-journée par les stagiaires et le formateur
- Certificat de réalisation de l’action de formation.
- Méthode participative
- Étude de cas / Mise en situation.
- Exposé et réflexion sur ses propres projets
- Exposés, aides visuelles, support de cours, exercices pratiques d’utilisation
- Questions/réponses entre les stagiaires et le formateur
Qualité et satisfaction
Modalités de certification
- Attestation