Note : 5 ; Une introduction qui résiste quand même beaucoup sous la dent
S’embarquer pour un tour avec Bjarne Stroustrup, cela ressemble davantage à une descente de rapides qu’à une croisière pour le troisième âge. La première édition s’arrêtait au C++11, celle-ci adresse C++17, avec un regard vers C++20, même si la norme a quelque peu évolué depuis la parution de l’ouvrage.
Le format du livre n’a guère changé : avec 225 pages sur 16 chapitres, il reste dans les canons du volume précédant. On pourrait croire que le premier chapitre à vocation introductive n réserve aucune surprise, mais ce serait sans compter sur la déduction de type avec « auto » ni sur les constexpr qui trouveront leur usage dans le template metaprogramming. Les types utilisateurs du second chapitre introduisent, mais avec si peu de clarté, les enum class qui doivent concurrencer les énumérations de Java et entretien fort perfidement la confusion entre struct et class ! La limpidité n’a jamais été le fort du créateur du C++.
Pour le chapitre 3 consacré à la modularité, ce sont les modules qui sont la grosse nouveauté… à venir dans le C++ 20 ! Mais le texte évoque aussi les évolutions concernant les exceptions et les structured bindings. Le texte est clair, ce qui n’est pas coutumier. Le chapitre 4 se focalise sur les classes et aborde aussi les conteneurs (qui seront aussi abordés plus loin). Peu de nouveautés en vue ici hormis les nouveaux initialiseurs et unique_ptr qui remplace avantageusement l’exécrable auto_ptr (paix à son âme).
Les opérations essentielles, au chapitre 5 aborde, entre autres chose, le move operator et les « références droites ». Le concept est difficile et il faut bien dire qu’il était acquis que cela serait très, très mal expliqué ici. Le détour par le « modern C++ » s’avérera indispensable. L’opérateur littéral est aussi évoqué sans non plus que son usage soit spécialement clair. Les templates sont au menu du chapitre6, ce qui nécessite de s’accrocher car il y a beaucoup de nouveautés ici. Toutefois, les gros morceaux seront d’avantage abordés au chapitre 7. Cela laisse à l’auteur la possibilité d’évoquer les concepts mais sans les présenter ce qui nous laisse joyeusement dans le brouillard. Bien joué.
Lire la suite