Passer aux informations sur le produit
C++ moderne et efficace
C++ moderne et efficace
Description
Introduction au livre
La maîtrise de C++11 et C++14 exige plus que la simple familiarisation avec les nouvelles fonctionnalités (telles que les déclarations de type automatiques, la sémantique de déplacement, les expressions lambda et la prise en charge de la concurrence).
Le véritable défi consiste à apprendre à utiliser efficacement ces fonctionnalités, à les exploiter pour créer un logiciel précis, performant, maintenable et portable.
Ce livre explique comment écrire des logiciels vraiment performants en utilisant C++11 et C++14, c'est-à-dire le C++ moderne.
Effective Modern C++ suit le format éprouvé, basé sur des guides et des exemples, des précédents ouvrages de Scott Meyers, mais couvre un contenu entièrement nouveau.
Ce livre est une lecture incontournable pour tout développeur de logiciels C++ moderne.

indice
Chapitre 1 Déduction formelle
Point 1 : Connaître les règles de déduction du format du modèle.
Point 2 : Connaître les règles formelles de déduction pour l'automobile.
Point 3 : Familiarisez-vous avec le fonctionnement de decltype.
Point 4 : Savoir identifier les formes déduites.

Chapitre 2 auto
Point 5 : Privilégiez les déclarations de type automatiques aux déclarations de type explicites.
Point 6 : Utilisez un initialiseur explicite lorsque la fonction automatique déduit un type indésirable.

Chapitre 3 : S’adapter au C++ moderne
Point 7 : Distinguer les parenthèses (()) et les accolades ({}) lors de la création d'objets.
Point 8 : Préférer nullptr à 0 et NULL
Point 9 : Préférez les déclarations d’alias aux typedefs.
Point 10 : Privilégiez les énumérations à portée limitée aux énumérations sans portée.
Point 11 : Privilégier les fonctions supprimées aux fonctions privées non définies.
Point 12 : Déclarez les fonctions de remplacement comme des remplacements.
Point 13 : Préférez const_iterator à iterator.
Point 14 : Déclarez les fonctions qui ne lèvent pas d'exceptions comme noexcept.
Point 15 : Utilisez constexpr chaque fois que possible.
Point 16 : Rendre les fonctions membres constantes thread-safe.
Point 17 : Connaître les conditions de génération automatique pour les fonctions membres spéciales.

Chapitre 4 Conseils avisés
Point 18 : Utilisez std::unique_ptr pour gérer les ressources à propriété exclusive.
Point 19 : Utilisez std::shared_ptr pour gérer les ressources à propriété partagée.
Point 20 : Si vous avez besoin d’un pointeur qui se comporte comme std::shared_ptr mais qui peut perdre sa cible, utilisez std::weak_ptr.
Point 21 : Préférez std::make_unique et std::make_shared à l’utilisation directe de new.
Point 22 : Lors de l'utilisation de l'idiome Pimpl, définissez des fonctions membres spéciales dans le fichier d'implémentation.

Chapitre 5 Références de la main droite, sémantique des mouvements et transmission parfaite
Point 23 : Familiarisez-vous avec std::move et std::forward.
Point 24 : Distinguer les références universelles des références rvalue.
Point 25 : Utilisez std::move pour les références rvalue et std::forward pour les références universelles.
Point 26 : Évitez de surcharger les références universelles.
Point 27 : Connaître les techniques à utiliser au lieu de surcharger les références universelles.
Point 28 : Connaissez vos abréviations de référence.
Point 29 : Supposons que les opérations de déplacement n'existent pas, ne sont pas bon marché et ne sont pas applicables.
Point 30 : Savoir quand une communication parfaite échoue.

Chapitre 6 Expressions lambda
Point 31 : Éviter le mode galmuri par défaut
Point 32 : Utilisez des initialiseurs pour déplacer les objets dans des fermetures.
Point 33 : Utiliser decltype pour les paramètres auto&& transmis via std::forward
Point 34 : Préférer les lambdas à std::bind

Chapitre 7 API de concurrence
Point 35 : Privilégiez la programmation par tâches à la programmation par threads.
Point 36 : Spécifiez std::launch::async lorsque l’asynchronisme est requis.
Point 37 : Rendre std::threads non joignable sur tous les chemins.
Point 38 : Attention aux différents comportements des destructeurs de gestionnaires de threads
Point 39 : Envisager des objets futurs vides pour la communication d’événements ponctuels.
Point 40 : Utilisez std::atomic pour la concurrence et volatile pour la mémoire spéciale.

Chapitre 8 : Raffinement
Point 41 : Envisagez le passage par valeur pour les paramètres copiables qui sont peu coûteux à déplacer et toujours copiés.
Point 42 : Envisager des insertions constructives plutôt que des insertions.
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 16 septembre 2015
- Nombre de pages, poids, dimensions : 359 pages | 709 g | 188 × 240 × 18 mm
- ISBN13 : 9788966261642
- ISBN10 : 8966261647

Vous aimerez peut-être aussi

카테고리