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