Programmer efficacement en C++ : 42 conseils pour mieux maîtriser le C++ 11 et le C++ 14
- Éditeur(s)
-
Date
- 2016
-
Notes
- Le C++ 11 et plus encore le C++ 14 sont des évolutions significatives du langage C++.Cet ouvrage vous aidera non seulement à découvrir ce qui a changé, mais aussià écrire du code qui soit correct, efficace, facile à maintenir et à porter.Son objectif n’est pas de décrire ce que vous devez faire ou ne pas faire, maisde vous apporter une compréhension en profondeur du fonctionnement de C++11et de C++14.Il est structuré en 42 conseils qui vous enseigneront à la fois les bonnes pratiques et les pièges à éviter.Vous voulez : comprendre les différentes formes de déduction de type, savoir quand (ne pas) utiliser les déclarations auto, découvrir pourquoi les fonctions membres const doivent être sûres vis-à-vis des threads, apprendre à implémenter l’idiome Pimpl avec std::unique_ptr, comprendre pourquoi éviter le mode de capture par défaut dans les expressions lambda, assimiler les différences entre std::atomic et volatile.Toutes les réponses se trouvent ici. Elles sont indépendantes de la plate-forme etconformes à la norme. Cet ouvrage présente un C++ portable.
-
Langues
- Français
-
ISBN
- 9782100743919
-
Droits
- copyrighted
- Résultat de :
-
Quatrième de couverture
-
Le C++ 11 et plus encore le C++ 14 sont des évolutions significatives du langage C++.
Cet ouvrage vous aidera non seulement à découvrir ce qui a changé, mais aussi à écrire du code qui soit correct, efficace, facile à maintenir et à porter.
Son objectif n'est pas de décrire ce que vous devez faire ou ne pas faire, mais de vous apporter une compréhension en profondeur du fonctionnement de C++11 et de C++14.
Il est structuré en 42 conseils qui vous enseigneront à la fois les bonnes pratiques et les pièges à éviter.
Vous voulez :
- comprendre les différentes formes de déduction de type,
- savoir quand (ne pas) utiliser les déclarations auto,
- découvrir pourquoi les fonctions membres const doivent être sûres vis-à-vis des threads,
- apprendre à implémenter l'idiome Pimpl avec std::unique_ptr,
- comprendre pourquoi éviter le mode de capture par défaut dans les expressions lambda,
- assimiler les différences entre std::atomic et volatile.
Toutes les réponses se trouvent ici. Elles sont indépendantes de la plate-forme et conformes à la norme. Cet ouvrage présente un C++ portable.
-
-
Tables des matières
-
Programmer efficacement en C++
42 conseils pour mieux maîtriser le C++ 11 et le C++ 14
Scott Meyers
Dunod
- Avant-propos VII
- Introduction 1
- Chapitre 1 - Déduction de type 9
- Conseil n° 1. Comprendre la déduction de type de template10
- Conseil n° 2. Comprendre la déduction de type auto18
- Conseil n° 3. Comprendre decltype23
- Conseil n° 4. Afficher les types déduits30
- Chapitre 2 - auto 37
- Conseil n° 5. Préférer auto aux déclarations de types explicites37
- Conseil n° 6. Opter pour un initialiseur au type explicite lorsque auto déduit des types non souhaités43
- Chapitre 3 - Vers un C++ moderne 49
- Conseil n° 7. Différencier () et {} lors de la création des objets49
- Conseil n° 8. Préférer nullptr à 0 et à NULL58
- Conseil n° 9. Préférer les déclarations d'alias aux typedef62
- Conseil n° 10. Préférer les enum délimités aux enum non délimités67
- Conseil n° 11. Préférer les fonctions supprimées aux fonctions indéfinies privées73
- Conseil n° 12. Déclarer les fonctions de substitution avec override78
- Conseil n° 13. Préférer les const_iterator aux iterator84
- Conseil n° 14. Déclarer noexcept les fonctions qui ne lancent pas d'exceptions88
- Conseil n° 15. Utiliser constexpr dès que possible95
- Conseil n° 16. Rendre les fonctions membres const sûres vis-à-vis des threads101
- Conseil n° 17. Comprendre la génération d'une fonction membre spéciale106
- Chapitre 4 - Pointeurs intelligents 115
- Conseil n° 18. Utiliser std::unique_ptr pour la gestion d'une ressource à propriété exclusive116
- Conseil n° 19. Utiliser std::shared_ptr pour la gestion d'une ressource à propriété partagée122
- Conseil n° 20. Utiliser std::weak_ptr pour des pointeurs de type std::shared_ptr qui peuvent pendouiller131
- Conseil n° 21. Préférer std::make_unique et std::make_shared à une utilisation directe de new136
- Conseil n° 22. Avec l'idiome Pimpl, définir des fonctions membres spéciales dans le fichier d'implémentation144
- Chapitre 5 - Références rvalue, sémantique du déplacement et transmission parfaite 153
- Conseil n° 23. Comprendre std::move et std::forward154
- Conseil n° 24. Distinguer les références universelles et les références rvalue160
- Conseil n° 25. Utiliser std::move sur des références rvalue, std::forward sur des références universelles164
- Conseil n° 26. Éviter la surcharge sur les références universelles173
- Conseil n° 27. Se familiariser avec les alternatives à la surcharge sur les références universelles179
- Conseil n° 28. Comprendre la réduction de référence191
- Conseil n° 29. Supposer que les opérations de déplacement sont absentes, onéreuses et inutilisées198
- Conseil n° 30. Se familiariser avec les cas d'échec de la transmission parfaite201
- Chapitre 6 - Expressions lambda 211
- Conseil n° 31. Éviter les modes de capture par défaut212
- Conseil n° 32. Utiliser des captures généralisées pour déplacer des objets dans des fermetures219
- Conseil n° 33. Utiliser decltype sur des paramètres auto&& pour les passer à std::forward225
- Conseil n° 34. Préférer les expressions lambda à std::bind228
- Chapitre 7 - L'API de concurrence 237
- Conseil n° 35. Préférer la programmation multitâche plutôt que multithread237
- Conseil n° 36. Spécifier std::launch::async si l'asynchronisme est primordial242
- Conseil n° 37. Rendre les std::thread non joignables par tous les chemins246
- Conseil n° 38. Être conscient du comportement variable du destructeur du descripteur de thread253
- Conseil n° 39. Envisager les futurs void pour communiquer ponctuellement un événement257
- Conseil n° 40. Utiliser std::atomic pour la concurrence, volatile pour la mémoire spéciale265
- Chapitre 8 - Finitions 275
- Conseil n° 41. Envisager un passage par valeur pour les paramètres copiables dont le déplacement est bon marché et qui sont toujours copiés275
- Conseil n° 42. Envisager le placement plutôt que l'insertion285
- Index 295
-
-
Consultable à la Bpi