Effective Modern C++: 42 แนวทางใช้ C++11 และ C++14 อย่างถูกวิธี
หนังสือของ Scott Meyers (O'Reilly, 2014) ว่าด้วยการใช้ฟีเจอร์ของ C++11 และ C++14 เช่น smart pointer, move semantics, lambda และ concurrency บทความนี้สรุปจากสารบัญในระเบียนห้องสมุด หน้าผู้เขียน และ errata

ขอบเขตของบทความ: แนะนำขอบเขตเนื้อหาจากสารบัญในระเบียนห้องสมุด หน้าของผู้เขียน และหน้า errata ยังไม่ได้อ่านเนื้อหาของบทใด หน้าตัวอย่างบนเว็บ O'Reilly เปิดไม่ได้ในการค้นคว้าครั้งนี้
C++11 และ C++14 เพิ่มฟีเจอร์จำนวนมาก เช่น auto, move semantics, lambda และ smart pointer คนที่เขียน C++ แบบเดิมมักรู้ว่าฟีเจอร์เหล่านี้มีอยู่ แต่ไม่แน่ใจว่าควรใช้เมื่อไรและมีกับดักอะไร หนังสือเล่มนี้ของ Scott Meyers ตั้งใจตอบคำถามนั้นในรูปแบบแนวทางเป็นข้อ ๆ แบบเดียวกับ Effective C++
หนังสือเล่มนี้ว่าด้วยอะไร
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 เขียนโดย Scott Meyers ตีพิมพ์โดย O'Reilly ปี 2014 เป็นฉบับแรก ระเบียนห้องสมุดระบุความยาว xv + 315 หน้า ISBN ฉบับพิมพ์ 9781491903995 (ระเบียนห้องสมุด UTB)
เว็บไซต์ผู้เขียนอธิบายว่าเป็นหนังสือว่าด้วยการใช้ฟีเจอร์ของ C++11 และ C++14 อย่างมีประสิทธิผล มีแนวทางใหม่ 42 ข้อ ครอบคลุม smart pointer, move semantics, lambda expression, concurrency API และการย้ายจาก C++98 (aristeia.com)
เนื้อหาครอบคลุมหัวข้ออะไร
ระเบียนห้องสมุดแสดงชื่อบทแปดบทตามลำดับ (ระเบียนห้องสมุด UTB):
Deducing Types
auto
Moving to Modern C++
Smart Pointers
Rvalue References, Move Semantics, and Perfect Forwarding
Lambda Expressions
The Concurrency API
Tweaks
ระเบียนนี้ไม่แสดงชื่อแต่ละข้อ เพื่อเห็นภาพหัวข้อย่อย หน้าหลักสูตรอบรมของผู้เขียนซึ่งสร้างจากหนังสือเล่มนี้ระบุหัวข้อ เช่น lvalue กับ rvalue, std::move กับ std::forward, braced initialization, nullptr, scoped enum, override, noexcept, constexpr, std::unique_ptr, std::shared_ptr และ make function, universal reference, กรณีที่ perfect forwarding ล้มเหลว, lambda เทียบกับ std::bind, std::async และ future รวมถึง emplacement เทียบกับ insertion (หลักสูตร Effective Modern C++) หัวข้อเหล่านี้เป็นโครงของหลักสูตร ไม่ใช่สารบัญของหนังสือ
เรื่องมาตรฐานภาษาที่ใหม่กว่า
หนังสือเขียนสำหรับ C++11 และ C++14 หน้า errata ของผู้เขียนบันทึกการแก้ไขตั้งแต่ตีพิมพ์เดือนพฤศจิกายน 2014 และผู้เขียนบอกว่าการแก้ไขส่วนใหญ่เป็นเรื่องรูปแบบ ไม่กระทบเนื้อหาทางเทคนิค (errata) แต่ในหน้าเดียวกันมีบันทึกเรื่อง C++17 อยู่บ้าง เช่น เอกสาร N3922 ที่เปลี่ยนวิธี deduce ของ auto x{ 27 }; และการที่ C++17 ปรับลำดับการประเมินอาร์กิวเมนต์ ผู้อ่านที่ใช้ C++17 ขึ้นไปจึงควรเปิด errata ประกอบ
พื้นฐานที่ควรมีก่อนอ่าน
แหล่งที่เปิดอ่านไม่ได้ระบุพื้นฐานไว้ชัด จากหัวข้ออย่าง "การย้ายจาก C++98" ในคำอธิบายของผู้เขียน และชื่อบทที่เริ่มจาก type deduction หนังสือน่าจะสมมติว่าผู้อ่านเขียน C++ แบบเดิมได้แล้วและคุ้นกับ template ข้อนี้เป็นการอนุมานของบทความ
เหมาะกับใคร และใครควรเริ่มจากเล่มอื่นก่อน
เหมาะ กับนักพัฒนา C++ ที่ใช้โค้ดแบบ C++98 อยู่และกำลังย้ายไปใช้ฟีเจอร์ของ C++11/14 เช่น งานระบบที่ต้องการประสิทธิภาพและต้องจัดการหน่วยความจำกับ thread อย่างระวัง
เหมาะ กับคนที่ใช้ smart pointer, lambda หรือ
std::asyncอยู่แล้วแต่อยากรู้กับดักที่พบบ่อยควรเริ่มจากเล่มอื่นก่อน ถ้ายังไม่เคยเขียน C++ เลย หรือถ้าต้องการเนื้อหาเฉพาะของ C++17, C++20 ขึ้นไป เพราะหนังสือครอบคลุมถึง C++14
ข้อจำกัดของข้อมูลที่ใช้ในบทความนี้
ยังไม่ได้อ่านเนื้อหาของบทใด หน้าบทที่ 1 บนเว็บ O'Reilly และหน้าประกาศตัวอย่างบน isocpp.org ตอบกลับด้วยการปฏิเสธการเข้าถึง
ชื่อบทมาจากระเบียนห้องสมุดซึ่งไม่ระบุเลขบทและชื่อข้อ หัวข้อย่อยมาจากหลักสูตรอบรมของผู้เขียน
จำนวนหน้าไม่ตรงกัน ระเบียนห้องสมุดระบุ xv + 315 หน้า ส่วน Open Library ระบุ 334 หน้า
ข้อมูลในแคตตาล็อกของ Libro ใช้ ISBN 9781491908426 จาก Google Books ซึ่งต่างจาก ISBN ฉบับพิมพ์ ควรยืนยันรูปแบบไฟล์อีกครั้งตอนสอบถาม
แหล่งอ้างอิง
Scott Meyers: Books · Scott Meyers · คำอธิบายหนังสือจากผู้เขียน
Effective Modern C++ (หลักสูตรอบรม) · Scott Meyers · โครงหัวข้อของหลักสูตรที่สร้างจากหนังสือ
Effective Modern C++ errata · Scott Meyers · บทนำของ errata และบันทึกเรื่อง C++17
ระเบียนห้องสมุด UTB · Tomas Bata University in Zlin · ข้อมูลฉบับและรายชื่อบท
Open Library: 9781491903995 · Internet Archive · ข้อมูลสำนักพิมพ์ ปี และจำนวนหน้า
หนังสือที่กล่าวถึงในบทความนี้

Effective Modern C++
Scott Meyers
42 แนวทางใน 8 บท ครอบคลุม type deduction, auto, smart pointer, move semantics, lambda และ concurrency API ของ C++11/14
บทความนี้อ่านจบได้ในตัวเอง หนังสือด้านบนคือจุดต่อยอดสำหรับผู้ที่ต้องการศึกษาลึกขึ้น
อ่านต่อ
25 ตุลาคม 2569
Fluent Python ฉบับแรก: สำหรับคนที่เขียน Python ได้แล้วและอยากเขียนให้เป็นธรรมชาติขึ้นหนังสือของ Luciano Ramalho (O'Reilly, 2015) ว่าด้วยการเขียน Python 3 แบบ idiomatic ตั้งแต่ data model ไปจนถึง asyncio และ metaclass บทความนี้สรุปจากคำอธิบายหนังสือ ข้อมูลแคตตาล็อก และคลังโค้ดทางการของฉบับแรก
25 ตุลาคม 2569
Effective C++ ฉบับที่ 3: 55 แนวทางเขียน C++ ให้ปลอดภัยขึ้นหนังสือของ Scott Meyers ฉบับที่ 3 (Addison-Wesley, 2005) รวม 55 แนวทางสำหรับเขียน C++ บทความนี้สรุปจากสารบัญรายข้อและ Item 27 ที่สำนักพิมพ์เผยแพร่ เพื่อช่วยดูว่าเล่มนี้เหมาะกับระดับของคุณหรือไม่ และควรรู้อะไรเรื่องมาตรฐานภาษาที่ใช้
25 ตุลาคม 2569
Inside the Machine: ทำความเข้าใจการทำงานของ CPU ผ่านภาพและการเปรียบเทียบหนังสือของ Jon Stokes จาก No Starch Press อธิบาย microprocessor architecture ตั้งแต่ pipelining ถึง Core 2 Duo บทความนี้สรุปจากสารบัญ คำนำ บทนำ และบทที่ 4 ที่สำนักพิมพ์เปิดให้อ่านฟรี
