Blog 3 min de lecture

Revue du livre « C++17 In Detail »

Share this article
Revue du livre « C++17 In Detail »

Depuis sa création, le C++ n'a cessé d'évoluer et a franchi de nombreuses étapes majeures, du « C with Classes » à l'avènement des normes récentes. De 1991 à 2011, le langage a évolué lentement, et cette évolution venait de bibliothèques comme la STL et Boost. Cependant, depuis 2011, de nombreuses fonctionnalités ont été ajoutées à la norme grâce à C++11, C++14, C++17 et le futur C++20. Récemment, la communauté C++ a encouragé l'usage des nouvelles normes pour moderniser les bases de code existantes. Bartłomiej Filipek est l'un des blogueurs les plus actifs de la communauté C++, et il contribue à promouvoir les nouvelles normes. Il a écrit un excellent livre sur les fonctionnalités de la norme C++17, et voici une rapide recension de son ouvrage. Une approche pragmatique Dans le monde de l'informatique, il existe de nombreux livres académiques destinés principalement aux étudiants, et d'autres livres destinés surtout aux développeurs qui ont besoin de conseils pour résoudre des problèmes concrets lors du développement d'un produit. On apprend en codant — en effet, très peu de pages ne contiennent pas de code source, et chaque explication est illustrée par au moins un exemple de code. Les exemples de code sont très bien mis en forme, faciles à lire et propres.

L'auteur fournit également de nombreuses informations pratiques, comme la prise en charge de chaque fonctionnalité par les compilateurs.

Une vue d'ensemble dès le début :

En général, pour se faire une idée du contenu d'un livre, on peut jeter un œil à la table des matières et lire l'introduction. Cependant, dans bien des cas, cela ne suffit pas vraiment à comprendre clairement les objectifs de l'ouvrage. Ce qui est intéressant dans ce livre, c'est qu'il comporte une section « Quick Overview » de 4 pages qui explique clairement son contenu. Les nouvelles fonctionnalités du langage démystifiées : Le livre couvre la quasi-totalité des nouvelles fonctionnalités de C++17, regroupées par section. Même si certaines fonctionnalités sont difficiles à comprendre, Bartłomiej Filipek adopte l'approche « keep it simple » (rester simple), et chaque fonctionnalité est très bien expliquée à l'aide d'exemples simples — par exemple dans la section consacrée aux nouvelles fonctionnalités des templates, qui comprend :

  • La déduction d'arguments template pour les templates de classes
  • template<auto>
  • Les expressions de pliage (fold expressions)
  • if constexpr – le if à la compilation pour le C++ !
  • Plus quelques améliorations et corrections de détail

Vous serez impressionné par la clarté des explications et des exemples de code. Tout développeur C++, même débutant, peut comprendre l'utilité de ces nouvelles fonctionnalités. Les nouvelles fonctionnalités de la bibliothèque standard démystifiées La bonne nouvelle, c'est que la bibliothèque standard évolue à chaque nouvelle norme, et de nombreuses fonctionnalités intéressantes sont ajoutées. Voici les fonctionnalités de la bibliothèque standard C++17 couvertes dans le livre :

  • Comment représenter les types nullables avec std::optional.
  • Qu'est-ce qu'une union étiquetée ? Et pourquoi avons-nous besoin d'une union à typage sûr sous la forme de std::variant ?
  • Comment représenter n'importe quel type avec std::any.
  • Comment utiliser string_view pour gagner en performances sans casser votre application.
  • Quelles nouvelles opérations sur les chaînes sont disponibles dans la bibliothèque standard.
  • Comment travailler avec le système de fichiers à l'aide de la bibliothèque standard.
  • Ce que sont les algorithmes parallèles.

Chaque fonctionnalité est expliquée en détail à l'aide de nombreux exemples de code. Et ce qui est intéressant, c'est que l'auteur aborde aussi les considérations de performances et de mémoire, en expliquant comment une fonctionnalité peut impacter les performances et l'utilisation de la mémoire.

Plus d'exemples et de cas d'usage

À la fin du livre, plusieurs autres problèmes intéressants sont présentés ; l'auteur tente de donner de nombreuses solutions et explique comment la nouvelle norme les résout mieux que les anciennes fonctionnalités. Conclusion : À la lecture du livre, il est clair que l'auteur est un programmeur qui a travaillé sur de nombreux projets C++ pour résoudre des problèmes concrets, ce qui explique l'approche pragmatique de l'ouvrage. Nous recommandons ce livre à tout développeur qui souhaite maîtriser la nouvelle norme C++17. Le livre est disponible sur Leanpub, et en tant que lecteur de notre blog, vous pouvez l'acheter avec environ 15 % de réduction en utilisant le lien de coupon suivant : https://leanpub.com/cpp17indetail/c/codergears

Share this article