Aller au contenu principal

C++ moderne

Date de mise à jour :
Identifiant Offre Info : 14_AF_0000269329
Organisme responsable : Ambient it (ouvre dans un nouvel onglet)

Nouvelle recherche

Présentation de la formation

Objectifs

  • Assimiler et mettre en œuvre les principes du C++ moderne
  • Se familiariser avec les évolutions de C++ jusqu'à C++20
  • Maitriser les concepts avancés de programmation parallèle et concurrente

Programme de la formation

  Révision des bases du langage Définition du langage C++ Les fonctions: inline, static, const, constexpr, virtual, consteval, … Plain Old Data (POD) : struct vs class Déclaration vs définition (One Definition Rule) La STL : ses conteneurs et ses algorithmes Principes de base des templates, différence avec constexpr Comportements indéfinis (Undefined behavior)   Fondements du C++ moderne Présentation des C++ Core Guidelines Évolutions dans la syntaxe…

 
Révision des bases du langage
  • Définition du langage C++
  • Les fonctions: inline, static, const, constexpr, virtual, consteval, …
  • Plain Old Data (POD) : struct vs class
  • Déclaration vs définition (One Definition Rule)
  • La STL : ses conteneurs et ses algorithmes
  • Principes de base des templates, différence avec constexpr
  • Comportements indéfinis (Undefined behavior)
 
Fondements du C++ moderne
  • Présentation des C++ Core Guidelines
  • Évolutions dans la syntaxe (C++14, C++17, C++20)
  • Gestion robuste des ressources (RAII, smart pointers, scope guards)
  • Notion de propriété (ownership), sémantique de déplacement (std::move)
  • Sémantique de valeur / entité
  • Simplifier les initialisations complexes avec des lambdas
  • Un code plus robuste et expressif avec des alias fortement typés (strong typedefs)
 
Programmation orientée objet avancée
  • Polymorphisme statique et dynamique
  • Principe de substitution de Liskov
  • Héritage vs composition
  • Classes abstraites, PIMPL
  • POO sans héritage
  • Principes SOLID
 
Notions de programmation fonctionnelle
  • Les lambdas
  • Immutabilité (const) et fonctions pures
  • Type optionnel avec std::optional
  • Type composite avec std::variant
  • Type erasure : std::string_view, std::span
 
Multithreading et scalabilité
  • Parallélisme vs concurrence
  • Race condition, impact du mot-clé const
  • Protection des sections critiques (std::mutex, std::condition_variable, …)
  • Enjeux de la scalabilité (loi d'Amdahl)
  • Algorithmes parallèles de la STL (C++17)
  • Programmation lock free (std::atomic)
  • Programmation asynchrone : promise, future, coroutines
  • Map, filter, reduce (Qt Concurrent)
  • Thread Local Storage (thread_local)
  • Détecter les problèmes (outils disponibles)
  • Autres approches : OpenMP, CUDA, Boost.Interprocess, gRPC
 
Outils modernes du développeur C++
  • Bien configurer son compilateur
  • Tests unitaires avec Catch2
  • Utilisation de CMake et des CMake presets
  • Formatage automatique du code avec clang-format
  • Gestion de dépendances avec Conan
  • Couverture de code avec gcov / lcov
  • Analyseurs statiques
  • Compiler explorer (Godbolt)

Validation et sanction

Attestation de formation

Type de formation

Non certifiante

Niveau de sortie

Sans niveau spécifique

Durée, rythme, financement

Durée

En centre

21 h

Financement

Conventionnement
Non

Conditions d'accès

Public visé

  • Tout public

Niveau d'entrée

Sans niveau spécifique

Conditions spécifiques et prérequis

Connaissance basique en C++ (notion d'objet et pointeur)

Lieu de réalisation de l'action

Modalités d'enseignement

Formation mixte

Adresse

140 Avenue Jean Lolive
93500 Pantin

Responsable : Ambient it

Périodes prévisibles de déroulement des sessions

Début

Fin

Adresse d'inscription
Ambient it
93500 Pantin
État du recrutement
Ouvert
Modalités
Entrées / Sorties à dates permanentes