Langages et développement

Formation C++ Expert : Maîtrisez les Avancées du Langage (C++11 à C++20)

Maîtrisez les nouveautés de C++ : de C++11 à C++20. Approfondissez les concepts avancés du langage. Optimisez vos développements. Devenez un expert C++. Réduisez les bugs potentiels. Améliorez la performance de votre code C++. Gagnez en efficacité. Cette formation est essentielle pour tout développeur C++.

Formation certifianteCertifié Qualiopi
Disponible en
Durée
21 h · 3 j
Rythme
Sessions de 7 h
Niveau
Tout niveau
Lieu
Vos locaux ou nos centres
Délai d'accès
11 jours ouvrés

Tarif intra-entreprise

Sur devis

Groupe jusqu'à 10 personnes · programme adaptable

Demander un devisÊtre rappelé par un conseiller

Réponse sous 24 h ouvrées · sans engagement

Financement

OPCOPlan de développement des compétencesFNE / FAFSimuler mon financement

Objectifs de la formation

Maîtriser les fonctionnalités C++ modernes de C++11 à C++20
Optimiser la performance du code C++
Programmer en mode concurrent et générique avancé
Refactoriser et intégrer du code moderne

Programme détaillé

12 modules · 21 heures
01

C++11 : Fondations modernes et sémantique de déplacement

  • Introduction aux standards C++ modernes (11, 14, 17, 20)
  • Le modèle de sémantique de déplacement (rvalue references, move constructor, move assignment)
  • `auto` et déduction de type : principes et bonnes pratiques
02

C++11 : Lambdas, Smart Pointers et Concurrence basique

  • Expressions lambda : syntaxe, captures, cas d'usage avancés
  • Pointeurs intelligents (`std::unique_ptr`, `std::shared_ptr`, `std::weak_ptr`)
  • Introduction à la concurrence C++11 (`std::thread`, `std::mutex`, `std::async`)
03

C++14 : Simplifications et améliorations du langage

  • Généralisation de la déduction de type pour les fonctions (`auto` en retour, generic lambdas)
  • Variables et fonctions templates avec `auto`
  • Nouveautés des pointeurs intelligents et `std::make_unique`
04

C++17 : Structure et utilisation du code moderne

  • `if constexpr` et `static_assert` pour la compilation conditionnelle
  • `std::optional`, `std::variant`, `std::any` pour gestion des valeurs diverses
  • `structured bindings` : décomposition d'objets, tableaux, paires
05

C++17 : Algorithmes et fichiers

  • Améliorations des algorithmes standards (parallélisation, nouveaux algorithmes)
  • `std::filesystem` : manipulation de chemins et d'opérations sur les fichiers
  • Démonstration d'application des nouvelles fonctionnalités C++17
06

C++20 : Concepts et programmation générique avancée

  • Les Concepts : définition, utilisation, contraintes sur les templates
  • Améliorations des templates : auto-template parameters, pack expansion
  • Application des Concepts pour un code générique plus sûr et lisible
07

C++20 : Espaces de noms, Modules et Coroutines

  • Amélioration de la gestion des namespaces (inline namespaces, using declaration)
  • Introduction aux Modules : bénéfices, syntaxe, migration
  • Principes des Coroutines : `co_await`, `co_yield`, `co_return`
08

C++20 : Ranges et vues pour conteneurs

  • `std::ranges` : philosophie et avantages des vues et adaptateurs
  • Utilisation des vues : `filter`, `transform`, `join`, `take`
  • Chaînage de vues pour des traitements de données efficaces
09

C++20 : Concurrence avancée et synchronisation

  • Nouveautés de `std::thread`, `std::jthread` (joinable threads)
  • Atomics et synchronisation avancée : `std::atomic_ref`, `std::latch`, `std::barrier`
  • Modèle de mémoire C++ et ordre des opérations concurrentes
10

Trucs et astuces C++ modernes : Optimisation et bonnes pratiques

  • Conseils pour l'optimisation des performances avec les fonctionnalités modernes
  • Refactoring de code existant vers C++11-C++20
  • Techniques de débogage et de profiling adaptées
11

Meta-programmation C++ moderne

  • Meta-programmation par template : récursivité, SFINAE
  • Utilisation de `constexpr` et `consteval` pour calculs à la compilation
  • Exemples avancés de techniques de méta-programmation
12

Cas pratiques et projets C++ modernes

  • Étude de cas concrets utilisant les spécificités de C++11 à C++20
  • Problèmes de conception et d'implémentation avancés
  • Q&A ouverte et discussion sur les évolutions futures du C++
Le conseil de l'expert

L'un des objectifs pédagogiques clés de cette formation est de maîtriser les fonctionnalités modernes du langage C++, notamment celles introduites dans C++11 et C++20. En vous familiarisant avec des concepts tels que la sémantique de déplacement et les concepts de programmation générique avancée, vous serez en mesure d'élever la qualité et la performance de votre code. Cette compétence est essentielle pour répondre aux exigences croissantes des projets contemporains. Un défi fréquent auquel font face les développeurs C++ est la difficulté à intégrer les avancées du langage tout en maintenant la lisibilité et la performance du code. Les apprenants peuvent souvent se sentir submergés par la complexité des nouvelles fonctionnalités et avoir du mal à les appliquer de manière efficace. Cette formation vous aidera à surmonter ces obstacles en vous fournissant des exemples concrets et des exercices pratiques pour ancrer votre compréhension. Ce qui distingue cette formation des autres approches est son accent sur les applications pratiques des nouvelles fonctionnalités de C++. Au lieu de simplement présenter les théories et les concepts, nous vous guiderons à travers des cas d'utilisation réels, vous permettant de voir comment les innovations de C++11 à C++20 peuvent transformer votre code et améliorer son efficacité. Cette approche pragmatique garantit que vous repartirez avec des compétences immédiatement applicables. Pour tirer le maximum de cette formation, je vous recommande de venir avec des projets en cours ou des exemples de code que vous souhaitez améliorer. Cela vous permettra de travailler sur des problématiques concrètes et de bénéficier des retours personnalisés des formateurs. Soyez curieux et ouvert aux retours tout au long de la formation, car cela enrichira votre expérience d'apprentissage et vous aidera à intégrer ces nouvelles compétences dans votre pratique quotidienne.

Pourquoi choisir cette formation en langages et développement

🚀

Maîtrise des fonctionnalités modernes

Plongez dans les avancées de C++11 à C++20, en intégrant des techniques modernes comme la sémantique de déplacement et les lambdas.

⚙️

Optimisation avancée du code

Apprenez à optimiser la performance de votre code grâce aux outils et algorithmes introduits dans C++17 et C++20, pour des applications plus efficaces.

💻

Programmation concurrente avancée

Développez vos compétences en programmation concurrente avec des modules dédiés sur la concurrence basique et avancée, garantissant une meilleure gestion des ressources.

🔄

Refactorisation moderne

Acquérez des techniques de refactorisation pour intégrer du code moderne, en tirant parti des améliorations de C++14 et C++17.

🛠️

Utilisation des Smart Pointers

Maîtrisez l'utilisation des Smart Pointers de C++11 pour une gestion optimale de la mémoire, réduisant les fuites mémoire et augmentant la sécurité.

📚

Approfondissement par la pratique

Chaque module est enrichi d'exercices pratiques, vous permettant d'appliquer directement les concepts de C++ modernes dans vos projets réels.

Compétences acquises

Maîtrise des fonctionnalités C++ modernes (11-20)

Appliquer efficacement les nouvelles fonctionnalités du langage C++ (de C++11 à C++20) pour designing et développer des applications plus robustes, performantes et expressives.

Optimisation et performance du code C++

Utiliser des techniques avancées comme la sémantique de déplacement, les coroutines et les ranges pour écrire du code C++ optimisé, réduire la consommation de ressources et améliorer la vitesse d'exécution.

Programmation concurrente et générique avancée

Concevoir et implémenter des solutions multi-threadées sécurisées avec les outils de concurrence C++20, et développer des composants génériques réutilisables et vérifiés par les Concepts.

Refactoring et intégration de code moderne

Analyser le code C++ existant, identifier les opportunités de modernisation et refactoriser des bases de code pour intégrer les paradigmes et bibliothèques des standards C++ récents (C++11 à C++20).

Public, prérequis et modalités

Public visé

Développeurs C++ expérimentés Ingénieurs logiciels Architectes logiciels Chefs de projet technique

Prérequis

Connaissance de base du langage C++ et expérience en développement

Moyens pédagogiques

Salle équipée, supports remis en PDF, cas réels rejoués en atelier, 8 participants maximum.

Suivi & évaluation

Évaluation continue par des exercices et des projets Rétroaction individuelle et collective Évaluation finale par un examen ou un projet Certificat de fin de formation

Accessibilité

Notre organisme de formation s'engage à accueillir et accompagner les personnes en situation de handicap. Notre référente handicap, Mme Lorène Travaux est disponible pour étudier avec vous les adaptations pédagogiques, techniques ou logistiques nécessaires avant toute inscription.

Financer cette formation

Plusieurs dispositifs permettent de prendre en charge tout ou partie du coût. Nos conseillers identifient avec vous la solution la plus adaptée à votre situation.

OPCO

Formations financées via votre opérateur de compétences

Les OPCO peuvent prendre en charge tout ou partie des frais de formation de vos salariés, dans le cadre du plan de développement des compétences ou de l'alternance.

En savoir plus

FAF

Aide à la formation pour les indépendants

Les Fonds d'Assurance Formation financent les formations des indépendants, auto-entrepreneurs, professions libérales et chefs d'entreprise (FAFCEA, AGEFICE, FIFPL…).

En savoir plus

France Travail

Des aides pour les demandeurs d'emploi

France Travail peut financer votre formation via l'AIF (Aide Individuelle à la Formation) ou des achats directs. Parlez-en à votre conseiller pour vérifier votre éligibilité.

En savoir plus

Employeur

Votre entreprise peut financer votre formation

Dans le cadre du plan de développement des compétences, l'employeur prend en charge le coût pédagogique et maintient la rémunération pendant la formation.

En savoir plus

FNE-Formation

Un soutien pour les entreprises en transformation

Le FNE-Formation accompagne les entreprises en mutation économique ou en transition écologique et numérique, avec une prise en charge pouvant aller jusqu'à 100 %.

En savoir plus

Besoin d'aide pour choisir votre dispositif ?

Nos conseillers analysent votre situation et vous orientent vers la solution la plus avantageuse.

Être conseillé gratuitement

Ils ont suivi cette formation

« Un participant a utilisé les pointeurs intelligents appris lors de la formation pour améliorer la gestion de la mémoire dans un projet C++, évitant ainsi des fuites de mémoire. »

Participant à cette formation · avis recueilli en fin de session

« Après la formation, un autre participant a intégré des fonctionnalités modernes de C++17 dans son code, optimisant ainsi la performance de son application. »

Participant à cette formation · avis recueilli en fin de session

Questions fréquentes

* Solides bases en programmation C++. * Connaissances des concepts fondamentaux du langage (types, fonctions, classes, héritage, polymorphisme). * Expérience pratique du développement C++.

Demandez un devis pour la formation C++ Expert : Maîtrisez les Avancées du Langage (C++11 à C++20)

Programme adaptable à votre contexte. Réponse sous 24 h ouvrées, sans engagement.

Demander un devisCertifié Qualiopi · Financement OPCO / FAF

Formations similaires

Autres formations de la même catégorie qui pourraient vous intéresser.

Certification Usages Informatique et Numérique

14 h

Voir la formation

Maîtriser l'Analyse Forensic Cyber : Enquêtes Numériques Avancées

21 h

Voir la formation

Apprenez les fondamentaux des bases de données relationnelles

21 h

Voir la formation