Les nouveautés C++ 11/14/17/20

Blended learning

How long does the training course last?

 4,00 day(s)

In which language(s) is the training course taught?

EN FR

When will the next session take place?

Who is organising this training course?

OXiane est spécialisé dans la conception et la réalisation de formations informatiques et de supports de cours pédagogiques sur les dernières technologies. Nos différentes filières permettent de couvrir tous les besoins en formation que ce soit en IT au sens large, mais également "Utilisateurs" et "Soft Skills" en Management, Communication & leadership.

Who is the training course aimed at?

  • Développeurs C

What are the aims or the skills being targeted?

  • Maîtriser les nouveautés des versions récentes de C++

What does the training course cover?

Nouveautés fondamentales du Core Language
  • nullptr_t et le littéral nullptr
  • les nouveaux types, littéraux et séparateurs
  • variables templates
  • Initialisation uniforme
  • Initialisation de tableaux et collections
  • Parcours unifié des tableaux et conteneurs
  • Listes d'initialisation avec initializer_list
  • La boucle "range based" for
  • Énumérations fortement typées
  • Littéraux personnalisés
  • Init-statements
  • Types normalisés et variantes (uint_8, uint64_t, ...)
  • L'opérateur sizeof (Class ::membre)
  • Contrôle de l'alignement mémoire
  • Inférence de types et de signatures avec auto
  • C++14 et déduction étendue
  • L'opérateur decltype
  • Structured bindings
  • Les nouveaux spécificateurs de classe (override, default, delete, final)
  • Constructeur délégué
  • Constructeur hérité
  • Initialisation de membres
  • Constructeur explicite multi-paramétré
  • Abraham's Exception safety guarantees et la clause noexcept
  • Données inline
  • Alias et using
  • Expressions constantes avec constexpr
  • Attributs
  • L'opérateur de comparaison « Three Way »
  • Comparaison sécurisée des entiers
  • Paramètres nommés pour la construction des structures
  • Améliorations apportées aux fonctions génériques
  • Améliorations apportées aux lambda-expressions
  • Les nouveaux attributs de la version 20
  • Les modules :
    • Unités d'interface et d'implémentation
    • Sous modules et partitions
    • Module linkage
Nouveautés de la librairie standard
  • Les nouveaux itérateurs cbegin
  • Les tableaux à taille fixe avec std ::array
  • La classe std ::string_view
  • La class std ::span
  • Nouveautés de la class std ::string
  • std ::variant / std ::visit et std ::any
  • std ::optional
  • Les nouvelles collections associatives : unordered_map/set
  • Singly-Linked Lists
  • Le conteneur tuple
  • Adaptateurs d'itérateurs, stream itérateurs
  • Les nouveaux algorithmes ensemblistes
  • Gestion du temps, l'espace de nom chrono
  • Générateurs / distributions de nombre aléatoires
  • Expression régulières avec Regex
  • La librairie Ranges et les vues
  • Les adaptateurs de vues
  • L'opérateur pipe
  • Les nouveaux algorithmes sur vues
  • Sorties formattées avec std ::format et les placeholders
  • Formats prédéfinis et personnalisész
Robustesse – encapsulation - lookup
  • Constance bitwise et constance logique
  • Mutable
  • Mutable et C++11
  • Friendship
  • Encapsulation (classes dans classes, classes dans fonctions, ..)
  • Imbrication et généricité
  • L'idiome static constructor
  • Composition et gestions de version avec l'encapsulation des espaces de noms
  • Espaces de noms inline
  • Lookup, héritage et surcharge, la clause using
  • ADL, argument dependant lookup
  • ADL et STL
  • Les spécificateurs consteval et constinit
  • Constructeurs constexpr des conteneurs
Move semantics
  • Copie versus déplacement
  • Value et RValue reference
  • La fonction move
  • Move constructor et move assignement operator
  • Complétude étendue des classes
  • Héritage et move constructor / op=
  • R-value reference et STL
  • STL C++11 et swap / move
  • Signature reference qualifiers
  • Mauvaises pratiques
  • Copy elision et Guaranted RVO
Gestion des ressources
  • Resource Acquisition Is Initialization (RAII)
  • L'opérateur -> avec ou sans généricité
  • Propriété et transfert de responsabilité
  • La classe unique_ptr
  • Unique_ptr et tableaux dynamiques
  • Comptage de références avec la classe shared_ptr
  • Custom deleter
  • Les fonctions make_unique (C++14) et make_shared
  • La classe weak_ptr et le référencement circulaire
Programmation fonctionnelle
  • Problématique de l'abonnement
  • Pointeur de function / méthode
  • Pointeur vers membre statique
  • Les classe function et mem_fn
  • Binding, placeholders
  • Adaptateurs de références
Utilisation avancée de la généricité
  • Typage multiple
  • Inférence des types avec decltype
  • Paramétrage / spécialisation des méthodes
  • Perfect forwarding avec std::forward
  • Références universelles et collapsing
  • Héritage / containment et généricité
  • Méta-programmation
  • L'idiome CRTP Curiously Recursive Template Pattern
  • Typologie C++ et classes de traits
  • Assertions statiques avec static_assert
  • Extended friend declaration
  • Les variadic templates, pattern matching et héritage multiple
  • SFINAE Substitution Failure Is Not An Error
  • Compile switching avec std::enable_if
  • constepr if
  • Les concepts
  • Mise en œuvre de contraiontes avec requires
  • Concepts prédéfinis de la librairie standard
  • Concepts personnalisés
Multithreading et concurrence
  • Principes
  • Démarrage et détachement d'un thread
  • Threads et gestion des exceptions
  • La classe std ::call_once
  • L'espace de noms this_thread
  • Futures / promises et packaged_task
  • Programmation asynchrone avec async
  • Future et exceptions
  • Politiques de démarrage
  • Comparaison thread versus future
  • Partage de ressources et mécanismes de synchronisation
  • Mutexes et données atomiques
  • Unique-lock et lock_guard
  • La classe std::jthread
  • Nouveautés de la librairie atomic (atomic_ref, atomic_flag,...)
  • Synchronisation avec les sémaphores
  • Les mécanismes latches et barriers
  • Interruption coopérative
  • Flux de sortie synchronisés
Les coroutines
  • Buts
  • Spécification du comportement avec un « awaiter »
  • Les mots-clés co_await / co_return / co_yield
  • Cycle de vie d'une coroutine
  • Mise en suspens et redémarrage

What will you receive at the end of the training course?

Une attestation de participation sera transmise aux participants

These courses might interest you

FR
Day
Blended-Learning
Computer language - Java language
17.09.2026
FR
Day
Blended-Learning
Computer language
24.11.2026