Cursus
Formation C++ Programmation C++ Moderne
Objectifs
Apprécier C++ ANSI/ISO et l'importance de Boost.
Appliquer les premières extensions de syntaxe C++.
Implémenter des classes avec C++ avancé.
Utiliser les "Smart Pointers" pour une gestion optimisée.
Examiner les nouvelles classes de conteneurs C++/Boost.
Manipuler chaînes de caractères avec expressions régulières.
Appliquer la programmation multi-threads en C++.
Utiliser fonctions lambda et std::bind en C++.
Gérer le système de fichiers avec C++ et Boost.
Pré-requis
Participants
Programme de formation
Introduction
-
Rappels sur les versions de C++ ANSI/ISO
-
Pourquoi utiliser Boost dans vos développements C++
-
Installation de la librairie Boost
Quelques premières extensions de la syntaxe
-
Le pointeur nul et le mot clé "nullptr"
-
Assertion statiques
-
Un nouveau "for each"
-
Inférence de type et le mot clé "auto"
-
Les types énumérés fortement typés
-
Quelques compléments avec Boost
Mise en oeuvre de classes
-
Méthodes fournies par défaut
-
Qualificateur override
-
Définition de classes et de méthodes finales
-
Interdire les copies
-
Délégation de constructeurs
-
Valeur par dégaut d'attributs
-
Move constructor, move operator et notion de r-value
Rappels sur le concept de template
-
Mise en oeuvre de fonctions templates
-
Mise en oeuvre de classes templates
-
Aspects évolués de la syntaxe
-
Améliorations apportées par C++ 2011
Utilisation de "Smart Pointers"
-
Introduction à la technique de développement RAII
-
Mise en oeuvre d'une classe de "Smart Pointers"
-
Comparatifs avec la classe std::auto_ptr
-
Utilisation des classes std::unique_ptr, std::shared_ptr et std::weak_ptr
-
Utilisation conjointe avec les collections STL
Les nouvelles classes de conteneurs
-
Initialisation de conteneurs STL
-
La classe std::array
-
La classe std::tuple
-
Autres conteneurs Boost à connaître
Manipulation de chaînes de caractères
-
Utilisation d'expressions régulières
-
Quelques compléments Boost
Programmation multi-threads
-
Mise en oeuvre de threads
-
Mécanisme de synchronisation des accès concurrents
-
Utilisation de local storage
Fonctions Lambda et utilisation de std::bind
-
Utilisation de lambda fonctions
-
Utilisation du bind
Manipulation du système de fichiers
-
La notion de path
-
Parcours de directory
-
Gestion des métadonnées du fichier