Tous
The content of this page is not available in English
Notions de C++
Apprendre les nouveautés du C++
Le littéral nullptr et les types normalisés (uint_8, uint64_t, …), les littéraux et séparateursInférence de types et de signatures avec autoVariables templates (C++ 14)Initialisation uniforme des variables, de tableaux et des conteneursParcours unifié des tableaux et conteneurs avec La boucle "range based" forListes d’initialisation avec initializer_listÉnumérations fortement typées (C++11/17)Littéraux personnalisésAmélioration du contrôle de flux avec les Init-statements (C++17/20)L’opérateur sizeof appliqué aux membres d’un objet ou d’une classeContrôle de l’alignement mémoireL'opérateur decltypeDéconstruction avec les structured bindings (C++17)Les spécificateurs de classe (override, default, delete, final)Constructeur délégué et constructeur héritéInitialisation de membresConstructeur explicite multi-paramétréAbraham’s Exception safety guarantees et la clause noexceptDonnées inlineMétaprogrammation avec constexprLes spécificateurs consteval et constinit (C++20)Les attributs (C++11/17/20)L’opérateur de comparaison " Three Way " <=> (C++20)Paramètres nommés pour la construction des structures (C++20)Améliorations apportées aux fonctions génériques et aux lambdas (C++17/20)
Les nouveaux itérateursLes tableaux à taille fixe avec std::arrayLa classe std::string_view (C++ 17)La classe std::span (C++ 20)Nouveautés de la classe std::string (C++17)Les classes std::variant, std::any et std::optional (C++17)Les nouvelles collections associatives: unordered_map/set et hashSingly-Linked ListsLe conteneur tupleLes nouveaux algorithmes ensemblistesGestion du temps, l’espace de nom chronoGénérateurs / distributions de nombre aléatoiresLa librairie Ranges, les vues et les adaptateurs de vues (C++20)Pipelining avec les nouveaux algorithmes sur vues (C++20)Sorties formattées avec std::format et les placeholders (C++20)Constructeurs constexpr des conteneursLa librairie filesystem (C++17)
Copie versus déplacementValue et RValue referenceLa fonction std::moveMove constructor et move assignment operatorComplétude étendue des classesR-value reference et STLSTL C++11 et swap / moveSignature reference qualifiersPerfect forwarding avec std::forwardRéférences forward et collapsingCopy elision et Guaranted RVO (C++17)
L’idiome RAII (Resource Acquisition Is Initialization)Propriété et transfert de responsabilitéLa classe unique_ptrComptage de références avec la classe shared_ptrCustom deleterLes fonctions make_unique et make_sharedLa classe weak_ptr et le référencement circulaire
Problématique de l’abonnementPointeur de function / méthode / membre statiqueLes classe function et mem_fnBinding, placeholdersAdaptateurs de références
Typage multiple avec les mixinsParamétrage et spécialisation des méthodesHéritage / containment et généricitéMétaprogrammationL’idiome CRTP Curiously Recursive Template PatternTypologie C++ et classes de traitsAssertions statiques avec static_assertExtended friend declarationLes variadic templates, pattern matching et héritage multipleConstexpr_if (C++17)Implémentation générique du pattern visitor avec std::visit (C++17)Définition de contrats génériques avec les concepts (C++20)Mise en œuvre de contraintes avec requires (C++20)Concepts prédéfinis de la librairie standard (C++20)
Unités d’interface et d’implémentationSous modules et partitionsModule linkage
Démarrage et détachement d’un threadThreads et gestion des exceptionsLa classe std::call_onceL’espace de noms this_threadFutures / promises et packaged_taskLes futures, politique de démarrage (parallèle ou asynchrone) et gestion des exceptionsPartage de ressources et mécanismes de synchronisationMutexes données atomiques (C++11/20)Unique-lock et lock_guardLa classe std::jthread (C++20)Synchronisation avec les sémaphores et les mécanismes latches et barriers (C++ 17/20)Flux de sortie synchronisés (C++ 20)
Méthodologie basée sur l'Active Learning : 75% de pratique minimum. Chaque point théorique est systématiquement suivi d'exemples et exercices.
Contrôle continu
Attestation de fin de stage mentionnant le résultat des acquis