{"product_id":"138540","title":"Effective Modern C++ ","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 Effective Modern C++ \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\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cdiv\u003e Mastering C++11 and C++14 requires more than just familiarizing yourself with the new features (such as auto type declarations, move semantics, lambda expressions, and concurrency support).\u003cbr\u003e The real challenge is learning how to use those features effectively—how to leverage them to create software that is accurate, efficient, maintainable, and portable.\u003cbr\u003e This book explains how to write truly great software using C++11 and C++14—that is, modern C++.\u003cbr\u003e Effective Modern C++ follows the proven, guide-based, example-driven format of Scott Meyers's previous books, but covers entirely new material. \u003cbr\u003eThis book is a must-read for every modern C++ software developer.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e Chapter 1 Formal Deduction\u003cbr\u003e Item 1: Know the template format deduction rules.\u003cbr\u003e Item 2: Know the formal deduction rules for auto.\u003cbr\u003e Item 3: Familiarize yourself with how decltype works.\u003cbr\u003e Item 4: Know how to identify deduced forms.\u003cbr\u003e\u003cbr\u003e Chapter 2 auto\u003cbr\u003e Item 5: Prefer auto over explicit type declarations.\u003cbr\u003e Item 6: Use an explicit initializer when auto deduces an undesirable type.\u003cbr\u003e\u003cbr\u003e Chapter 3: Adapting to Modern C++\u003cbr\u003e Item 7: Distinguish between parentheses (()) and braces ({}) when creating objects.\u003cbr\u003e Item 8: Prefer nullptr to 0 and NULL\u003cbr\u003e Item 9: Prefer alias declarations to typedefs.\u003cbr\u003e Item 10: Prefer scoped enums over unscoped enums.\u003cbr\u003e Item 11: Prefer deleted functions over undefined private functions.\u003cbr\u003e Item 12: Declare override functions as overrides.  \u003cbr\u003eItem 13: Prefer const_iterator over iterator.\u003cbr\u003e Item 14: Declare functions that do not throw exceptions as noexcept.\u003cbr\u003e Item 15: Use constexpr whenever possible.\u003cbr\u003e Item 16: Make const member functions thread-safe.\u003cbr\u003e Item 17: Know the automatic generation conditions for special member functions.\u003cbr\u003e\u003cbr\u003e Chapter 4 Smart Pointers\u003cbr\u003e Item 18: Use std::unique_ptr for managing exclusive-ownership resources.\u003cbr\u003e Item 19: Use std::shared_ptr for managing shared-ownership resources.\u003cbr\u003e Item 20: If you need a pointer that behaves like std::shared_ptr but can lose its target, use std::weak_ptr.\u003cbr\u003e Item 21: Prefer std::make_unique and std::make_shared to using new directly.\u003cbr\u003e Item 22: When using the Pimpl idiom, define special member functions in the implementation file.\u003cbr\u003e\u003cbr\u003e Chapter 5 Right-hand References, Move Semantics, and Perfect Forwarding\u003cbr\u003e Item 23: Familiarize yourself with std::move and std::forward.  \u003cbr\u003eItem 24: Distinguish between universal references and rvalue references.\u003cbr\u003e Item 25: Use std::move for rvalue references and std::forward for universal references.\u003cbr\u003e Item 26: Avoid double-loading universal references.\u003cbr\u003e Item 27: Know techniques to use instead of overloading universal references.\u003cbr\u003e Item 28: Know your reference abbreviations.\u003cbr\u003e Item 29: Assume that move operations do not exist, are not cheap, and are not applicable.\u003cbr\u003e Item 30: Know when perfect communication fails.\u003cbr\u003e\u003cbr\u003e Chapter 6 Lambda Expressions\u003cbr\u003e Item 31: Avoid default galmuri mode\u003cbr\u003e Item 32: Use initializers to move objects into closures.\u003cbr\u003e Item 33: Use decltype for auto\u0026amp;\u0026amp; parameters passed via std::forward\u003cbr\u003e Item 34: Prefer lambdas over std::bind\u003cbr\u003e\u003cbr\u003e Chapter 7 Concurrency API\u003cbr\u003e Item 35: Prefer task-based programming over thread-based programming.  \u003cbr\u003eItem 36: Specify std::launch::async when asynchrony is required.\u003cbr\u003e Item 37: Make std::threads non-joinable on all paths.\u003cbr\u003e Item 38: Beware of the Different Behaviors of Thread Handle Destructors\u003cbr\u003e Item 39: Consider void future objects for one-shot event communication.\u003cbr\u003e Item 40: Use std::atomic for concurrency, and volatile for special memory.\u003cbr\u003e\u003cbr\u003e Chapter 8: Refining\u003cbr\u003e Item 41: Consider passing by value for copyable parameters that are cheap to move and always copied.\u003cbr\u003e Item 42: Consider constructive inserts instead of inserts. \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 GOODS SPECIFICS \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 of issue:\u003c\/strong\u003e September 16, 2015\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 359 pages | 709g | 188*240*18mm\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\/en\/products\/138540","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}