{"product_id":"138540","title":"C++ moderne et efficace ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPCfGP58gOVFVnzeW0ZCzYhNDqeB.png?v=1765064138\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e C++ moderne et efficace \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/20288684\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eIntroduction au livre\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cdiv\u003e 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).\u003cbr\u003e 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.\u003cbr\u003e Ce livre explique comment écrire des logiciels vraiment performants en utilisant C++11 et C++14, c'est-à-dire le C++ moderne.\u003cbr\u003e 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. \u003cbr\u003eCe livre est une lecture incontournable pour tout développeur de logiciels C++ moderne.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindice\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e Chapitre 1 Déduction formelle\u003cbr\u003e Point 1 : Connaître les règles de déduction du format du modèle.\u003cbr\u003e Point 2 : Connaître les règles formelles de déduction pour l'automobile.\u003cbr\u003e Point 3 : Familiarisez-vous avec le fonctionnement de decltype.\u003cbr\u003e Point 4 : Savoir identifier les formes déduites.\u003cbr\u003e\u003cbr\u003e Chapitre 2 auto\u003cbr\u003e Point 5 : Privilégiez les déclarations de type automatiques aux déclarations de type explicites.\u003cbr\u003e Point 6 : Utilisez un initialiseur explicite lorsque la fonction automatique déduit un type indésirable.\u003cbr\u003e\u003cbr\u003e Chapitre 3 : S’adapter au C++ moderne\u003cbr\u003e Point 7 : Distinguer les parenthèses (()) et les accolades ({}) lors de la création d'objets.\u003cbr\u003e Point 8 : Préférer nullptr à 0 et NULL\u003cbr\u003e Point 9 : Préférez les déclarations d’alias aux typedefs.\u003cbr\u003e Point 10 : Privilégiez les énumérations à portée limitée aux énumérations sans portée.\u003cbr\u003e Point 11 : Privilégier les fonctions supprimées aux fonctions privées non définies.\u003cbr\u003e Point 12 : Déclarez les fonctions de remplacement comme des remplacements.  \u003cbr\u003ePoint 13 : Préférez const_iterator à iterator.\u003cbr\u003e Point 14 : Déclarez les fonctions qui ne lèvent pas d'exceptions comme noexcept.\u003cbr\u003e Point 15 : Utilisez constexpr chaque fois que possible.\u003cbr\u003e Point 16 : Rendre les fonctions membres constantes thread-safe.\u003cbr\u003e Point 17 : Connaître les conditions de génération automatique pour les fonctions membres spéciales.\u003cbr\u003e\u003cbr\u003e Chapitre 4 Conseils avisés\u003cbr\u003e Point 18 : Utilisez std::unique_ptr pour gérer les ressources à propriété exclusive.\u003cbr\u003e Point 19 : Utilisez std::shared_ptr pour gérer les ressources à propriété partagée.\u003cbr\u003e 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.\u003cbr\u003e Point 21 : Préférez std::make_unique et std::make_shared à l’utilisation directe de new.\u003cbr\u003e Point 22 : Lors de l'utilisation de l'idiome Pimpl, définissez des fonctions membres spéciales dans le fichier d'implémentation.\u003cbr\u003e\u003cbr\u003e Chapitre 5 Références de la main droite, sémantique des mouvements et transmission parfaite\u003cbr\u003e Point 23 : Familiarisez-vous avec std::move et std::forward.  \u003cbr\u003ePoint 24 : Distinguer les références universelles des références rvalue.\u003cbr\u003e Point 25 : Utilisez std::move pour les références rvalue et std::forward pour les références universelles.\u003cbr\u003e Point 26 : Évitez de surcharger les références universelles.\u003cbr\u003e Point 27 : Connaître les techniques à utiliser au lieu de surcharger les références universelles.\u003cbr\u003e Point 28 : Connaissez vos abréviations de référence.\u003cbr\u003e Point 29 : Supposons que les opérations de déplacement n'existent pas, ne sont pas bon marché et ne sont pas applicables.\u003cbr\u003e Point 30 : Savoir quand une communication parfaite échoue.\u003cbr\u003e\u003cbr\u003e Chapitre 6 Expressions lambda\u003cbr\u003e Point 31 : Éviter le mode galmuri par défaut\u003cbr\u003e Point 32 : Utilisez des initialiseurs pour déplacer les objets dans des fermetures.\u003cbr\u003e Point 33 : Utiliser decltype pour les paramètres auto\u0026amp;\u0026amp; transmis via std::forward\u003cbr\u003e Point 34 : Préférer les lambdas à std::bind\u003cbr\u003e\u003cbr\u003e Chapitre 7 API de concurrence\u003cbr\u003e Point 35 : Privilégiez la programmation par tâches à la programmation par threads.  \u003cbr\u003ePoint 36 : Spécifiez std::launch::async lorsque l’asynchronisme est requis.\u003cbr\u003e Point 37 : Rendre std::threads non joignable sur tous les chemins.\u003cbr\u003e Point 38 : Attention aux différents comportements des destructeurs de gestionnaires de threads\u003cbr\u003e Point 39 : Envisager des objets futurs vides pour la communication d’événements ponctuels.\u003cbr\u003e Point 40 : Utilisez std::atomic pour la concurrence et volatile pour la mémoire spéciale.\u003cbr\u003e\u003cbr\u003e Chapitre 8 : Raffinement\u003cbr\u003e Point 41 : Envisagez le passage par valeur pour les paramètres copiables qui sont peu coûteux à déplacer et toujours copiés.\u003cbr\u003e Point 42 : Envisager des insertions constructives plutôt que des insertions. \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e SPÉCIFICATIONS DES PRODUITS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate de publication :\u003c\/strong\u003e 16 septembre 2015\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eNombre de pages, poids, dimensions :\u003c\/strong\u003e 359 pages | 709 g | 188 × 240 × 18 mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13 :\u003c\/strong\u003e 9788966261642\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10 :\u003c\/strong\u003e 8966261647 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893255536682,"sku":"138540","price":38.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/8daccc21ce3887452a2c510f7ca510ad.jpg?v=1765394232","url":"https:\/\/librairie.coreenne.fr\/products\/138540","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}