42 Specific Ways to Improve Your Use of C++11 and C++14
Scott Meyers

#C_plus_plus
#API
🎯 کنار اومدن با C++11 و C++14 فقط این نیست که با ویژگیهای جدیدش مثل تعریف نوع auto، معناشناسی انتقال (move semantics)، عبارات لامبدا و پشتیبانی از همروندی (concurrency) آشنا بشید.
챌 چالش اصلی اینه که یاد بگیرید چطور از این ویژگیها به طور مؤثر استفاده کنید—جوری که نرمافزارتون صحیح، بهینه، قابل نگهداری و قابل حمل (portable) باشه.
🚀 دقیقاً اینجاست که این کتاب کاربردی وارد میدون میشه. این کتاب بهتون یاد میده چطور با استفاده از C++11 و C++14—یعنی همون ++C مدرن—نرمافزارهای واقعاً عالی بنویسید.
✅ موضوعات کتاب شامل موارد زیر است:
👍👎 مزایا و معایب مقداردهی اولیه با آکولاد (braced initialization)، مشخصکنندههای noexcept، فورواردینگ بینقص (perfect forwarding) و توابع سازندهی اشارهگرهای هوشمند (smart pointer make functions).
🔗 روابط بین std::move، std::forward، ارجاعهای rvalue و ارجاعهای عمومی (universal references).
✍️ تکنیکهایی برای نوشتن عبارات لامبدای واضح، صحیح و مؤثر.
🔬 تفاوت std::atomic با volatile چیه، هر کدوم چطور باید استفاده بشن و چه ارتباطی با API همروندی ++C دارن.
🔄 چطور بهترین شیوهها (best practices) در برنامهنویسی ++C «قدیمی» (یعنی ++C98) برای توسعه نرمافزار در ++C مدرن نیاز به بازنگری دارن.
🗺️ کتاب «++C مدرن و مؤثر» از همون فرمت اثباتشده و مبتنی بر راهکار (guideline-based) و مثال-محور (example-driven) کتابهای قبلی اسکات مایرز پیروی میکنه، اما مطالب کاملاً جدیدی رو پوشش میده.
⭐ «بعد از اینکه اصول اولیه ++C رو یاد گرفتم، از طریق سری کتابهای ++Effective C مایرز بود که یاد گرفتم چطور از ++C در کدهای پروداکشن (production) استفاده کنم. کتاب ++C مدرن و مؤثر مهمترین کتاب راهنما برای یادگیری دستورالعملهای کلیدی، سبکها و اصطلاحات رایجه تا بشه از ++C مدرن به طور مؤثر و درست استفاده کرد. هنوز این کتاب رو ندارید؟ همین الان بخریدش. همین الان.»
– هرب ساتر، رئیس کمیته استاندارد ++ISO C و معمار نرمافزار ++C در مایکروسافت
فصل ۱: استنتاج انواع (Deducing Types)
فصل ۲: auto
فصل ۳: مهاجرت به ++C مدرن
فصل ۴: اشارهگرهای هوشمند (Smart Pointers)
فصل ۵: ارجاعهای Rvalue، معناشناسی انتقال و فورواردینگ بینقص
فصل ۶: عبارات لامبدا (Lambda Expressions)
فصل ۷: API همروندی (The Concurrency API)
فصل ۸: ترفندها و تنظیمات (Tweaks)
برای بیش از ۲۰ سال، کتابهای سری ++Effective C اسکات مایرز (شامل ++Effective C، ++More Effective C و Effective STL) استاندارد و معیار اصلی راهنمایی در برنامهنویسی ++C بودهاند. توضیحات واضح و جذاب او در مورد مطالب پیچیده فنی، باعث شده در سراسر جهان طرفداران زیادی پیدا کنه و او رو به یک مربی، مشاور و سخنران پرطرفدار در کنفرانسها تبدیل کرده. او که برندهی جایزه «برتری در برنامهنویسی» از Dr. Dobb’s در سال ۲۰۰۹ است، دارای دکترای علوم دانشگاه براون (Brown University) است.rsity) است.
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively―so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14―i.e. using modern C++.
Topics include:
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Table of Contents
Chapter 1. Deducing Types
Chapter 2. auto
Chapter 3. Moving to Modern C++
Chapter 4. Smart Pointers
Chapter 5. Rvalue References, Move Semantics, and Perfect Forwarding
Chapter 6. Lambda Expressions
Chapter 7. The Concurrency API
Chapter 8. Tweaks
About the Author
For more than 20 years, Scott Meyers’ Effective C++ books (Effective C++, More Effective C++, and Effective STL) have set the bar for C++ programming guidance. His clear, engaging explanations of complex technical material have earned him a worldwide following, and they keep him in demand as a trainer, consultant, and conference presenter. Winner of the 2009 Dr. Dobb’s Excellence in Programming Award, he has a Ph.D. in Computer Science from Brown University.









