
Formation C++ avancé
Amenez votre expertise C++ au niveau qui distingue les ingénieurs seniors des autres. Ce cours couvre les fonctionnalités modernes de C++20, la métaprogrammation avancée de modèles, la concurrence sans verrou et l'architecture à grande échelle. Vous écrirez un code système plus rapide, plus sûr et plus maintenable dès le premier jour.
Ce que vous allez apprendre:
Vous maîtriserez les fonctionnalités de C++11 à C++20, y compris la sémantique de déplacement, les modèles variadiques et les coroutines. Le cours vous apprend à concevoir des allocateurs mémoire personnalisés, à construire des structures de données sans verrou, et à appliquer les intrinsèques SIMD pour un débit maximal. Vous implémenterez des patrons de conception avancés tels que CRTP, l'effacement de type et les modèles d'expression. Les systèmes de construction, la stabilité ABI, l'analyse statique et l'intégration CI sont couverts pour que vous puissiez contribuer à des bases de code de qualité professionnelle. Vous explorerez également les plages C++20, les techniques C++ embarqué, l'interopérabilité entre langages et les pratiques de codage soucieuses de la sécurité.
Comment vous étudiez de façon pratique Formation C++ avancé
Comment vous pratiquez Formation C++ avancé
Pour vous, entreprise, qui souhaitez former votre équipe
Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre propre activité et aux besoins spécifiques de votre entreprise.
Contenu du cours
8 Chapitres • 39 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsRévision des fondamentaux du C++ moderne
Révision des fondamentaux du C++ moderne
Leçon 1 • Initialisation uniforme et liaisons structurées
Explique l'initialisation par accolades, les listes d'initialisation et les liaisons structurées de C++17. Réduit les bugs d'initialisation courants dans les chapitres suivants.
Leçon 2 • Sémantique de déplacement et catégories de valeurs
Explique les lvalues, rvalues et xvalues avec std::move et std::forward. Permet un transfert efficace des ressources tout au long du cours.
Leçon 3 • Pointeurs intelligents et possession
Couvre les sémantiques de possession de unique_ptr, shared_ptr et weak_ptr. Construit la base de sécurité mémoire nécessaire à la gestion avancée des ressources.
Leçon 4 • Expressions lambda en profondeur
Enseigne les modes de capture, les lambdas génériques et les lambdas mutables. Prépare les étudiants aux algorithmes de style fonctionnel et aux fonctions de rappel.
Leçon 5 • Inférence de type et utilisation de auto
Couvre auto, decltype et les types de retour suffixés avec précision. Établit l'intuition de déduction de type nécessaire pour les modèles plus tard.
Chapitre 2MasquerCacher les détailsVoir les détailsFondamentaux de la métaprogrammation de modèles
Fondamentaux de la métaprogrammation de modèles
Leçon 1 • Techniques SFINAE et Enable_if
Explique l'échec de substitution, std::enable_if et les idiomes void_t. Permet l'activation conditionnelle de modèles basée sur les propriétés des types.
Leçon 2 • Traits de type et calcul à la compilation
Couvre la bibliothèque type_traits et constexpr if pour les branchements à la compilation. Les étudiants écrivent du code générique sans surcoût avec des assertions statiques.
Leçon 3 • Modèles variadiques
Enseigne les packs de paramètres, l'expansion de packs et les expressions de repli. Débloque la construction de conteneurs et d'utilitaires hétérogènes type-safe.
Leçon 4 • Bases des modèles de fonctions et de classes
Introduit la syntaxe des modèles, l'instanciation et les règles de déduction d'arguments. Fournit le vocabulaire pour tous les sujets de métaprogrammation suivants.
Leçon 5 • Spécialisation et surcharge de modèles
Couvre la spécialisation totale et partielle ainsi que la surcharge de modèles de fonctions. Permet une personnalisation précise du comportement pour des types spécifiques.
Chapitre 3MasquerCacher les détailsVoir les détailsConcepts et contraintes en C++20
Concepts et contraintes en C++20
Leçon 1 • Contrainte des modèles de fonctions et de classes
Applique les concepts aux signatures de fonctions et aux modèles de classes via des clauses requires. Remplace le verbeux SFINAE par des contraintes expressives.
Leçon 2 • Syntaxe et définition des concepts
Introduit le mot-clé concept, les expressions requires et la conjonction de contraintes. Établit le nouveau vocabulaire pour les modèles contraints.
Leçon 3 • Concepts de la bibliothèque standard
Passe en revue les concepts dans les en-têtes <concepts> et ranges, y compris Sortable et Range. Permet une utilisation idiomatique de la bibliothèque standard C++20.
Leçon 4 • Subsumption et ordre des concepts
Explique comment le compilateur ordonne les surcharges par subsumption de concepts. Les étudiants conçoivent des hiérarchies de concepts qui résolvent correctement l'ambiguïté.
Chapitre 4MasquerCacher les détailsVoir les détailsGestion avancée de la mémoire
Gestion avancée de la mémoire
Leçon 1 • Pools mémoire et allocation par arène
Couvre les allocateurs par pool, les allocateurs par arène et les stratégies de pointeur à incrémentation. Réduit la fragmentation et la latence d'allocation dans les chemins chauds.
Leçon 2 • Placement new et durée de vie des objets
Enseigne la construction manuelle d'objets dans des tampons pré-alloués en utilisant placement new. Clarifie les règles de durée de vie des objets pour éviter les comportements indéfinis.
Leçon 3 • Sécurité mémoire et outils de sanitisation
Introduit AddressSanitizer, Valgrind et les sanitiseurs de comportement indéfini. Les étudiants détectent et corrigent les erreurs mémoire de manière systématique.
Leçon 4 • Stockage aligné et alignement SIMD
Couvre alignas, alignof et std::aligned_storage pour des données alignées sur le matériel. Prépare les étudiants à l'optimisation SIMD et des lignes de cache.
Leçon 5 • Modèle d'allocateur et allocateurs personnalisés
Explique l'interface d'allocateur C++ et comment les conteneurs l'utilisent. Les étudiants mettent en œuvre des allocateurs personnalisés pour contrôler les sources de mémoire.
Chapitre 5MasquerCacher les détailsVoir les détailsConcurrence et parallélisme
Concurrence et parallélisme
Leçon 1 • Coroutines C++20 pour la concurrence
Introduit co_await, co_yield et les handles de coroutine pour les workflows asynchrones. Relie la mécanique des coroutines aux motifs pratiques d'E/S asynchrones.
Leçon 2 • Threads, mutex et variables conditionnelles
Couvre std::thread, les variantes de mutex et condition_variable pour la synchronisation. Construit des compétences pratiques pour les motifs producteur-consommateur et données protégées.
Leçon 3 • Fondamentaux du modèle mémoire C++
Explique la relation se-produit-avant, l'ordre séquentiellement cohérent et les situations de compétition. Fournit la base théorique pour tout travail de concurrence.
Leçon 4 • Atomiques et programmation sans verrou
Enseigne les opérations std::atomic et compare-exchange pour les structures sans verrou. Les étudiants mettent en œuvre des compteurs sans attente et des files d'attente sans verrou.
Leçon 5 • Futures, promesses et tâches asynchrones
Couvre std::future, std::promise et std::async pour la concurrence basée sur les tâches. Permet un passage de résultat asynchrone propre sans threads bruts.
Chapitre 6MasquerCacher les détailsVoir les détailsTechniques d'optimisation des performances
Techniques d'optimisation des performances
Leçon 1 • Optimisations et indications du compilateur
Couvre l'inlining, l'optimisation au moment de l'édition des liens et les indications likely/unlikely. Les étudiants guident le compilateur pour générer un code machine plus rapide.
Leçon 2 • Réduction des allocations et des copies
Couvre l'optimisation des petits tampons, l'élision de copie et les garanties RVO/NRVO. Les étudiants éliminent les coûts d'allocation cachés dans le code de production.
Leçon 3 • Workflow de profilage et de benchmarking
Couvre perf, gprof et Google Benchmark pour mesurer les points chauds. Établit une méthodologie d'optimisation basée sur les données utilisée tout au long du chapitre.
Leçon 4 • Intrinsèques SIMD et vectorisation
Introduit l'auto-vectorisation et les intrinsèques SIMD manuels pour le parallélisme de données. Permet des accélérations d'un ordre de grandeur sur les charges de travail numériques.
Leçon 5 • Structures de données adaptées au cache
Explique la hiérarchie du cache, la localité spatiale et la disposition structure-de-tableaux. Les étudiants reconçoivent les structures de données pour minimiser les échecs de cache.
Chapitre 7MasquerCacher les détailsVoir les détailsPatrons de conception avancés en C++
Patrons de conception avancés en C++
Leçon 1 • Conception basée sur des politiques
Enseigne l'idiome de classe de politique pour l'injection de comportement à la compilation. Remplace le dispatch virtuel par un polymorphisme statique sans coût.
Leçon 2 • Patrons de réflexion à la compilation
Couvre la réflexion manuelle en utilisant des listes de types, des maps constexpr et des X-macros. Prépare les étudiants à la réflexion C++26 lorsqu'elle sera disponible.
Leçon 3 • Techniques d'effacement de type
Explique std::any, std::function et les wrappers d'effacement de type personnalisés. Permet le polymorphisme à l'exécution sans hiérarchies d'héritage.
Leçon 4 • Modèles d'expression
Introduit les modèles d'expression pour l'évaluation paresseuse et la fusion de boucles. Les étudiants construisent un DSL d'algèbre linéaire minimal pour appliquer le patron.
Leçon 5 • CRTP et polymorphisme statique
Couvre le Curiously Recurring Template Pattern pour les interfaces statiques. Élimine le surcoût d'appel virtuel tout en préservant le comportement polymorphe.
Chapitre 8MasquerCacher les détailsVoir les détailsArchitecture de projet C++ à grande échelle
Architecture de projet C++ à grande échelle
Leçon 1 • Maîtrise de CMake et du système de construction
Enseigne les cibles CMake modernes, les expressions génératrices et la gestion de paquets. Permet des constructions reproductibles et multiplateformes pour les grands projets.
Leçon 2 • Stabilité ABI et versioning
Explique les causes de rupture d'ABI, l'idiome pimpl et les techniques de symboles versionnés. Les étudiants conçoivent des bibliothèques qui restent binairement compatibles entre les versions.
Leçon 3 • Analyse statique et qualité du code
Couvre clang-tidy, cppcheck et l'intégration de sanitiseurs dans les pipelines CI. Applique des barrières de qualité cohérentes au sein de grandes équipes.
Leçon 4 • Système de modules C++20
Couvre les unités de module, les partitions d'interface et les déclarations d'importation. Remplace la compilation basée sur les en-têtes pour des constructions plus rapides et des dépendances plus propres.
Leçon 5 • Stratégies de test pour les systèmes C++
Introduit Google Test, Google Mock et les tests basés sur les propriétés avec RapidCheck. Les étudiants construisent une suite de tests en couches pour une bibliothèque C++ complexe.
Votre certificat valide de réussite
Ce cours est pour vous :
Développeur C++ de niveau intermédiaire : prêt à aller au-delà du travail quotidien sur les fonctionnalités pour plonger dans les systèmes.
Programmeur de moteur de jeu : a besoin de compétences bas niveau en performance et en concurrence pour les systèmes temps réel.
Ingénieur logiciel embarqué : souhaite des techniques C++ modernes adaptées aux environnements à ressources limitées.
Ingénieur infrastructure back-end : construit des services à haut débit où les coûts d'allocation comptent.
Diplômé en informatique : comble le fossé entre les connaissances académiques et les pratiques d'ingénierie de production.
Amateur C++ autodidacte : a construit des projets personnels et souhaite désormais une profondeur de niveau professionnel.
Ce que disent nos apprenants
Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...

J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.

J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !

La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.

Formations principales
FAQ
Qui est Dedika ?
Le certificat est-il valable en Algérie ?
Les cours sont-ils gratuits ?
Quelle est la charge de travail du cours ?
Comment sont les cours ?
Comment fonctionnent les cours ?
Quelle est la durée des cours ?
Quel est le coût ou le prix des cours ?
Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?
Cours PDF




















