Sélectionner une page
Formations Langage Autres langages Formation C++ Moderne

Formation C++ Moderne

Logo formation C++ moderne
Prix 1890€ HT / personne
Durée 3 jours (21 heures)

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

Présentation

Cette formation C++ moderne s’adresse aux personnes qui maitrisent déjà les bases du langage C++ et souhaitent se perfectionner pour gagner en robustesse, performante et productivité.

L’écosystème C++ évolue en effet de façon intense depuis 2011, au rythme d’une nouvelle norme tous les 3 ans. Côté hardware, la multiplication des cœurs ces dernières années implique aussi de repenser sa manière de programmer. Tout cela pose un vrai défi d’adaptation, tant pour assimiler les nouveautés que pour se défaire de pratiques désormais obsolètes.

C’est pour répondre à ce défi que cette formation a été conçue. En mettant en lumière les principes fondamentaux qui guident l’évolution du langage, il devient beaucoup plus facile de progresser sans se perdre dans la complexité. Et donc d’écrire un code plus simple et plus fiable à la fois.

Comme pour toutes nos formations, celle-ci vous présentera la toute dernière version de C++, à savoir C++ 20.

 

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

 

Public visé

  • Développeurs
  • Architectes

 

Pré-requis

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

Programme de la formation C++ Moderne et Multithreading

 

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)

Langues et Lieux disponibles

Langues

  • Français
  • Anglais / English

Lieux

  • France entière
    • Paris
    • Lille
    • Reims
    • Lyon
    • Toulouse
    • Bordeaux
    • Montpellier
    • Nice
    • Sophia Antipolis
    • Marseille
    • Aix-en-Provence
    • Nantes
    • Rennes
    • Strasbourg
    • Grenoble
    • Dijon
    • Tours
    • Saint-Étienne
    • Toulon
    • Angers
  • Belgique
    • Bruxelles
    • Liège
  • Suisse
    • Genève
    • Zurich
    • Lausanne
  • Luxembourg

Nos Formateurs Référents

Aurélien

Aurélien

Expert du langage C++, membre actif et passionné de sa communauté depuis… bientôt 20 ans ! J’ai à cœur d’aller chercher à sa source une information de qualité pour ensuite la partager de façon la plus intelligible possible. Venez donc explorer avec moi toute la richesse de ce langage !

Témoignages

28 juin 2024

Les + : clair et adaptative, non rébarbative, les trois jours sont passés très vite

Les – : j’aurais préféré des mini TP sur chaque section plutôt qu’un seul gros en fin de formation

Noël L. de chez Ubisoft (MONTPELLIER)

Afficher tous les témoignages

28 juin 2024

Les + : clair et adaptative, non rébarbative, les trois jours sont passés très vite

Les – : j’aurais préféré des mini TP sur chaque section plutôt qu’un seul gros en fin de formation

Noël L. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Je recommande la formation

Ethan M. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : Apprentissage qui peut bien s appliquer a notre métier

Les – : Bcp de cpp moderne sont plus basé engine que CPP (exemple les concepts).

En synthèse : Projecteur qui faisait que bugger

Raphaël C. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Je recommande la formation

Romain G. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : Elle répondait a mes attentes

Les – : le matériel sur place avait un défaut qui fesait des écrans bleu réguliers, on a seulement trouvé la solution pour la dernière demie journée (brancher le pc portable sur sa proche alim)

Joel E. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : Explications très claires, Aurelien est capable de répondre à toutes les questions qui lui ont été posées.

Les – : Je crois quand même que certains outils du Modern C++ sont moins applicables dans mon travail de programmeur gameplay (concernant les templates par exemple, je ne pense pas utiliser les constraints / concepts car je pense que ça me prendrait plus de temps que ça en ferait gagner, dans le cas déjà rare où je crée une classe template).

Ceci dit je reconnais que ces outils peuvent être plus utile pour les programmeurs engine. Peut-être, si le nombre de participants le permet, qu’il serait pertinent d’organiser des formations séparées pour programmeurs engine et pour les programmeurs gameplay, afin d’approfondir les outils les plus pertinents pour nos besoins réels. Pour mes besoins, je pense qu’il aurait suffi de survoler le sujets des templates en ~1h pour que je sache ce que ça permet de faire et que je creuse la question si j’en ai besoin un jour, plutôt qu’y consacrer plus d’une demi-journée.

En synthèse : Merci pour cette formation !

Baptiste R. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : on revoie aussi des principes moins modernes et des good practices

Les – : certain concept sont difficile à voir des implémentation concrète

Jules M. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Je recommande la formation

Mathieu F. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : On apprend beaucoup de choses, c’est très intéressant, très complet

Les – : Le rythme est assez rapide, une pause le matin et une l’après-midi me parait nécessaire.

En synthèse : Merci a

Clara F. de chez Ubisoft (MONTPELLIER)
28 juin 2024

Les + : Très agréable à suivre, pas stressante, intéressante, le fait qu’on prend bien le temps d’explorer des petits cas pour bien comprendre est un vrai plus

Les – : Manque un poil d’exo pratique et les chaises en Gaia faut faire un truc ça fait trop mal au dos au bout de 3 jours

Je souhaite suivre : Oui

En synthèse : c’était bien 🙂 pouce bleu

Clément B. de chez Ubisoft (MONTPELLIER)
22 mars 2024

Les + : Compétence du formateur, variété des sujets abordés..!

Clément M. de chez Ubisoft (MONTPELLIER)
22 mars 2024

Les + : bonnes explications dans les détails, rythme impeccable

Léo J. de chez Ubisoft (MONTPELLIER)

Noter la formation

Prix 1890€ HT / personne
Durée 3 jours (21 heures)

Paris | Classe Virtuelle

Il ne reste que quelques places
Cafés et déjeuners offerts en interentreprises
Disponible en intra-entreprise pour former votre équipe
Aide au Financement 4000€ de Bonus Atlas en CPF

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp