PROGRAMMATION EN C++11
 

Ce document présente les nouvelles possibilités offertes par la norme C++11. Une première partie donne un aperçu général des changements depuis la norme C++03, en particulier concernant la conception des classes et la programmation générique. Une seconde partie détaille certains nouveaux concepts du langage, à savoir les références rvalue (i.e. la nouvelle syntaxe &&) et les opérateurs de mouvement, les génériques à paramètres variables (variadic templates), ainsi que les expressions lambda. Des notions fondamentales du C++ sont nécessaires pour aborder ces nouveaux concepts, elles peuvent être trouvées dans le document .

Voici un bref résumé de chacun des chapitres de ce document. Ils sont présentés sous la forme d'un diaporama qui, je l'espère, sera assez explicite.


  • Présente brièvement les nouveautés de la norme C++11. Alors que certaines sont d'ordre général, d'autres portent sur la conception des classes et sur la programmation générique.


  • Explique la notion de référence rvalue et l'utilisation des opérateurs de mouvement. Les références universelles et les collapsing rules, particulièrement utiles en programmation générique, sont également présentées.


  • Introduit la syntaxe pour définir des génériques à paramètres variables, appelés variadic templates. Les notions de pack et d'expansion sont présentées et mises en oeuvre pour montrer comment exploiter les paramètres variables par des techniques de métaprogrammation.


  • Présente la syntaxe et les concepts associés aux expressions lambda. Notamment, le mécanisme de capture de variables est expliqué, et la manière dont les expressions lambda sont implémentées est abordée.


  • Introduit les notions fondamentales de la programmation parallèle par les threads, avec une présentation succincte de la couche bas niveau pour créer des threads et les synchroniser (mutex, variables de condition), et de la couche intermédiaire qui permet une abstraction des threads.