Programmer efficacement en C++ : 42 conseils pour mieux maîtriser le C++ 11 et le C++ 14
"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 de...
Enregistré dans:
| Hovedforfatter: | |
|---|---|
| Andre forfattere: | |
| Format: | Livre papier |
| Sprog: | Français |
| Udgivet: |
Paris :
Dunod
DL 2016.
|
| Fag: | |
| Kommentar: |
Trad. de : "Effective modern C++" |
| Autres localisations: | Voir dans le Sudoc |
| Variante du titre: | Programmer efficacement en C plus-plus |
| Edition sous un autre format: | • Programmer efficacement en C++, 42 conseils pour mieux maîtriser le C++ 11 et le C++ 14, Scott Meyers, Paris, Dunod, 2016, 978-2-10-074846-4 |
Indholdsfortegnelse:
- P. VII
- Avant-propos
- P. 1
- Introduction
- P. 9
- Chapitre 1 - Déduction de type
- P. 10
- Conseil n˚1. Comprendre la déduction de type de template
- P. 18
- Conseil n˚2. Comprendre la déduction de type auto
- P. 23
- Conseil n˚3. Comprendre decltype
- P. 30
- Conseil n˚4. Afficher les types déduits
- P. 37
- Chapitre 2 - auto
- P. 37
- Conseil n˚5. Préférer auto aux déclarations de types explicites
- P. 43
- Conseil n˚6. Opter pour un initialiseur au type explicite lorsque auto déduit des types non souhaités
- P. 49
- Chapitre 3 - Vers un C++ moderne
- P. 49
- Conseil n˚7. Différencier () et {} lors de la création des objets
- P. 58
- Conseil n˚8. Préférer nullptr à 0 et à NULL
- P. 62
- Conseil n˚9. Préférer les déclarations d'alias aux typedef
- P. 67
- Conseil n˚10. Préférer les enum délimités aux enum non délimités
- P. 73
- Conseil n˚11. Préférer les fonctions supprimées aux fonctions indéfinies privées
- P. 78
- Conseil n˚12. Déclarer les fonctions de substitution avec override
- P. 84
- Conseil n˚13. Préférer les const_iterator aux iterator
- P. 88
- Conseil n˚14. Déclarer noexcept les fonctions qui ne lancent pas d'exceptions
- P. 95
- Conseil n˚15. Utiliser constexpr dès que possible
- P. 101
- Conseil n˚16. Rendre les fonctions membres const sûres vis-à-vis des threads
- P. 106
- Conseil n˚17. Comprendre la génération d'une fonction membre spéciale
- P. 115
- Chapitre 4 - Pointeurs intelligents
- P. 116
- Conseil n˚18. Utiliser std::unique_ptr pour la gestion d'une ressource à propriété exclusive
- P. 122
- Conseil n˚19. Utiliser std::shared_ptr pour la gestion d'une ressource à propriété partagée
- P. 131
- Conseil n˚20. Utiliser std::weak_ptr pour des pointeurs de type std::shared_ptr qui peuvent pendouiller
- P. 136
- Conseil n˚21. Préférer std::make_unique et std::make_shared à une utilisation directe de new
- P. 144
- Conseil n˚22. Avec l'idiome Pimpl, définir des fonctions membres spéciales dans le fichier d'implémentation
- P. 153
- Chapitre 5 - Références rvalue, sémantique du déplacement et transmission parfaite
- P. 154
- Conseil n˚23. Comprendre std::move et std::forward
- P. 160
- Conseil n˚24. Distinguer les références universelles et les références rvalue
- P. 164
- Conseil n˚25. Utiliser std::move sur des références rvalue, std::forward sur des références universelles
- P. 173
- Conseil n˚26. Éviter la surcharge sur les références universelles
- P. 179
- Conseil n˚27. Se familiariser avec les alternatives à la surcharge sur les références universelles
- P. 191
- Conseil n˚28. Comprendre la réduction de référence
- P. 198
- Conseil n˚29. Supposer que les opérations de déplacement sont absentes, onéreuses et inutilisées
- P. 201
- Conseil n˚30. Se familiariser avec les cas d'échec de la transmission parfaite
- P. 211
- Chapitre 6 - Expressions lambda
- P. 212
- Conseil n˚31. Éviter les modes de capture par défaut
- P. 219
- Conseil n˚32. Utiliser des captures généralisées pour déplacer des objets dans des fermetures
- P. 225
- Conseil n˚33. Utiliser decltype sur des paramètres auto&& pour les passer à std::forward
- P. 228
- Conseil n˚34. Préférer les expressions lambda à std::bind
- P. 237
- Chapitre 7 - L'API de concurrence
- P. 237
- Conseil n˚35. Préférer la programmation multitâche plutôt que multithread
- P. 242
- Conseil n˚36. Spécifier std::launch::async si l'asynchronisme est primordial
- P. 246
- Conseil n˚37. Rendre les std::thread non joignables par tous les chemins
- P. 253
- Conseil n˚38. Être conscient du comportement variable du destructeur du descripteur de thread
- P. 257
- Conseil n˚39. Envisager les futurs void pour communiquer ponctuellement un événement
- P. 265
- Conseil n˚40. Utiliser std::atomic pour la concurrence, volatile pour la mémoire spéciale
- P. 275
- Chapitre 8 - Finitions
- P. 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és
- P. 285
- Conseil n˚42. Envisager le placement plutôt que l'insertion
- P. 295
- Index

