> Formations > Technologies numériques > Développement logiciel > C, C++ > Formation C++ expert, les avancées du langage (de C++ 11 à 20) > Formations > Technologies numériques > Formation C++ expert, les avancées du langage (de C++ 11 à 20)

Formation : C++ expert, les avancées du langage (de C++ 11 à 20)

C++ expert, les avancées du langage (de C++ 11 à 20)



Best

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++.


INTER
INTRA
SUR MESURE

Cours pratique en présentiel ou à distance
Disponible en anglais, à la demande

Réf. VEC
  3j - 21h00
Prix : 1910 € H.T.
Pauses-café et
déjeuners offerts




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 pédagogiques
À l’issue de la formation, le participant sera en mesure de :
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

Public concerné
Développeurs C++ souhaitant connaître les nouveautés définies par le standard C++11.

Prérequis
Bonnes connaissances du langage C++. Une expérience pratique de la programmation avec ce langage est recommandée.
Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Méthodes et moyens pédagogiques
Travaux pratiques
Des exercices pratiques de programmation permettront d'appréhender les différents concepts abordés.

Modalités d'évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…
Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.

Programme 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...).
Travaux pratiques
Vérification de l'outillage à l'aide d'un code C++11 fourni.

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.
Travaux pratiques
Mise en œuvre des améliorations.

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
Travaux pratiques
Création de classes.

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.
Travaux pratiques
Exercices de programmation fonctionnelle.

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.
Travaux pratiques
Multithreader un code séquentiel et mesurer le gain en termes de temps d'exécution.

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.
Travaux pratiques
Mise en œuvre des nouveautés.

La gestion mémoire et les conteneurs

  • Les smart pointers : shared_ptr, weak_ptr, unique_ptr. Usage conjoint avec la STL.
Travaux pratiques
Mise en œuvre de la gestion mémoire C++11.
Solutions de financement
Plusieurs solutions existent pour financer votre formation et dépendent de votre situation professionnelle.
Découvrez-les sur notre page Comment financer sa formation ou contactez votre conseiller formation.

Avis clients
4 / 5
Les avis clients sont issus des évaluations de fin de formation. La note est calculée à partir de l’ensemble des évaluations datant de moins de 12 mois. Seules celles avec un commentaire textuel sont affichées.
QUENTIN L.
15/07/24
5 / 5

Bonne formation, contenu complet et varié.
WILFRIED M.
15/07/24
4 / 5

Aurais été intéressant de passer du temps sur les rvalues / lvalues, le fonctionnement interne de std::move et l’utilisation de std::forward
MEUTE THIBAULT L.
15/07/24
4 / 5

Cours très intéressant, mais avec peu de pratique (selon moi) malgré tous les sujets abordés.



Horaires
les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45. Les pauses et déjeuners sont offerts.
Pour les stages pratiques de 4 ou 5 jours, quelle que soit la modalité, les sessions se terminent à 16h le dernier jour.

Dates et lieux
Sélectionnez votre lieu ou optez pour la classe à distance puis choisissez votre date.
Classe à distance

Dernières places
Date garantie en présentiel ou à distance
Session garantie