ac6-formation, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-formation Programmation Langages Programmation C++ moderne embarquée
L10

Programmation C++ moderne embarquée

Le langage C++ moderne pour les systèmes embarqués

Objectifs

  • Découvrir les fonctionnalités modernes du C++
  • Apprendre les changements de langage dans C++11, C++14, C++17 and C++20
  • Découvrir les nouvelles fonctionnalités ajoutées à la bibliothèque standard
  • Apprendre les fonctionnalités avancées du C++ moderne comme "perfect forwarding"
  • Passer du C++ traditionnel au C++ moderne
  • Mettre en évidence les fonctionnalités essentielles du C++ moderne utilisées dans les applications embarquées
Les exercices sont conduits sur des cartes à base de microcontrôleurs STM32
  • Matériel de cours imprimé
  • Un PC par binôme
  • Carte STM32F4 - ARM Cortex M4
  • Environnement de développement Eclipse et compilateur GCC
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
  • Totale : 12 heures
  • 2 sessions de 6 heures chacune (hors temps de pause)
  • De 40% à 50% du temps de formation est consacré aux activités pratiques
  • Certains travaux pratiques peuvent être réalisés entre les sessions et sont vérifiés par le formateur lors de la session suivante
  • Cours théorique
    • Support imprimé et PDF (en anglais).
    • Assistance du formateur tout au long de la formation.
  • Chaque session débute par un point avec les stagiaires.
  • Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
  • Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
  • À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.

Plan du cours

  • Présentation
  • Spécificateurs de classe de stockage
  • Initialisation uniforme
  • Déduction automatique de type
    • Le mot-clé auto
    • Le mot-clé auto comme type de retour d'une fonction
    • Utiliser auto pour déclarer des signatures de fonctions
    • Références constantes automatiques
    • Forwarding references
    • Avantages de auto dans les systèmes embarqués
  • enum class
  • override et final
  • Variables inline
  • nullptr
  • static_assert
  • noexcept
  • constexpr et if constexpr
  • decltype
  • Fonctions defaulted et deleted
  • Boucles for basées sur un intervalle
  • Namespaces imbriqués et alias de namespace
  • Structured binding
  • Move semantics et références r-value
    • Copy-constructing et Move-constructing
    • Références r-value
    • Perfect forwarding
  • Alignement
    • Alignas
    • Alignof
  • Bibliothèque standard
    • std::optional
    • std::variant
    • std::any
    • std::byte
    • std::hash
    • Bibliothèque Filesystem
  • Littéraux
    • Cooked literals
    • Opérateurs de littéraux standard
    • Raw literals
    • Raw string literals
  • Génération de nombres aléatoires
    • Moteurs de génération de nombres aléatoires
    • Distributions de nombres aléatoires
  • Conteneurs
    • std::array
    • std::forward_list
    • Conteneurs associatifs non ordonnés
  • Nouveaux types de chaînes
    • std::u16string
    • std::u32string
  • Basic string view
  • Conversions entre types numériques et chaînes
  • Conversions élémentaires de chaînes
  • Manipulateurs d'entrée/sortie
    • std::get_money, std::put_money
    • std::get_time, std::put_time
    • std::quoted
  • Expressions régulières
    • Format d'une chaîne
    • Analyser le contenu d'une chaîne
    • Remplacer le contenu d'une chaîne
  • Syntaxe des lambdas
  • Définir des lambdas
  • Utiliser des lambdas
    • Utiliser des lambdas avec les algorithmes standard
    • Affecter des lambdas à des pointeurs de fonction
    • Lambdas et std::function
    • Écrire une fonction acceptant une lambda en paramètre
  • Lambdas polymorphes
  • Lambdas récursives
  • Smart Pointers
    • Raw Pointers
    • Pointeurs automatiques
    • Unique Pointers
    • Shared Pointers
    • Weak Pointers
  • Introduction
  • Thread
  • Mettre en œuvre un singleton thread-safe
  • Opérations atomiques
    • Fonctionnalités atomiques
    • Fonctions non membres
    • Atomic flag
    • Memory order
  • Mutex
    • Éviter les mutex récursifs
  • Envoyer des notifications entre threads
  • Variables de condition
  • Future et Promise
  • Task et Async
  • Le C++ moderne et les RTOS
Plus d'information

Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.

Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter

Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription

Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.

Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.

Dernière mise à jour du plan de cours : 2 juillet 2026

L'inscription à nos formations est soumise à nos Conditions Générales de Vente

Sur le même sujet :

Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué