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