Orsys

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

Par Orsys

Objectifs

À 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

Programme

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.

Pédagogie

Des exercices pratiques de programmation permettront d'appréhender les différents concepts abordés.

Formations de la même catégories (5)

M2i Formation
IoT - Développer des applications connectées avec C++ / QtPar M2i Formation
  • Développer en C++ / Qt5 dans un environnement connecté.
Orsys
C++ expert, les avancées du langage (de C++ 11 à 20)Par Orsys

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

Arkesys
C / C++ - Programmation avancée en C++Par Arkesys
  • Coder des applications efficaces et sécurisées en termes de gestion de la mémoire via les techniques RAII ;
  • Utiliser la librairie standard proposée par le langage C++ ;
  • Mettre en œuvre une application multitâches.
Global Knowledge
Programmation en langage CPar Global Knowledge

Cette formation intensive permet aux participants d'acquérir les compétences et connaissances nécessaires pour comprendre le fonctionnement des différents mécanismes, comprendre la mise en œuvre grâce à de nombreux exercices pratiques. Les participants seront en mesure d'écrire des programmes C robustes et portables.

SQLI Institut
Développer une application graphique en C++ avec QtPar SQLI Institut
  • Maîtriser le développement d'écrans avec Qt
  • Comprendre le mécanisme de la gestion d'évènements
  • Savoir utiliser les principales API non graphiques de Qt : accès aux données, réseau, fichiers
  • Maîtriser le développement en QML avec QtQuick