📖 Overview
Exceptional C++ presents solutions to common C++ programming challenges through a series of technical puzzles. The book focuses on practical problems in areas like exception safety, memory management, and generic programming.
The content is structured as a series of 47 problems, each followed by detailed solutions and explanations of C++ best practices. The format allows readers to test their knowledge by attempting solutions before reviewing the author's recommended approaches.
The material covers advanced topics including the proper use of smart pointers, template metaprogramming, and optimization techniques for modern C++ development. Code examples demonstrate both common pitfalls and robust solutions for production environments.
This book serves as a technical guide while also emphasizing broader software engineering principles like maintainability and reliability. The challenge-solution format highlights the reasoning behind C++ design decisions and encourages deeper understanding of the language's core concepts.
👀 Reviews
Readers praise the book's detailed exploration of C++ pitfalls and edge cases through its problem-solving format. Many developers note it helped them catch subtle bugs and write more robust code. The Q&A structure makes complex topics digestible.
Likes:
- Clear explanations of memory management and exception safety
- Real-world examples that demonstrate common mistakes
- In-depth coverage of the C++ Standard Library
- Solutions that show multiple approaches to problems
Dislikes:
- Advanced material requires solid C++ foundation
- Some examples feel dated (pre-C++11)
- Dense technical content can be overwhelming for beginners
- A few readers found the Q&A format repetitive
Ratings:
Goodreads: 4.24/5 (496 ratings)
Amazon: 4.6/5 (89 ratings)
One Amazon reviewer wrote: "The puzzles expose subtle issues that even experienced developers miss." A Goodreads review noted: "Not for learning C++, but excellent for understanding why certain practices exist."
📚 Similar books
Effective Modern C++ by Scott Meyers
This book presents C++11/14 techniques, practices, and design patterns through focused examples and technical explanations.
C++ Templates: The Complete Guide by David Vandevoorde, Nicolai M. Josuttis The text covers template fundamentals, advanced applications, and practical implementations through real code examples.
Modern C++ Design by Andrei Alexandrescu The book explores policy-based design, template metaprogramming, and advanced C++ design patterns.
C++ Coding Standards by Andrei Alexandrescu The work presents rules, guidelines, and best practices for professional C++ development through concrete examples.
Inside the C++ Object Model by Stanley Lippman This book explains the internal workings of C++ objects, inheritance, virtual functions, and memory management mechanisms.
C++ Templates: The Complete Guide by David Vandevoorde, Nicolai M. Josuttis The text covers template fundamentals, advanced applications, and practical implementations through real code examples.
Modern C++ Design by Andrei Alexandrescu The book explores policy-based design, template metaprogramming, and advanced C++ design patterns.
C++ Coding Standards by Andrei Alexandrescu The work presents rules, guidelines, and best practices for professional C++ development through concrete examples.
Inside the C++ Object Model by Stanley Lippman This book explains the internal workings of C++ objects, inheritance, virtual functions, and memory management mechanisms.
🤔 Interesting facts
🔹 Herb Sutter wrote this book based on his popular "Guru of the Week" (GotW) online column, where he posed challenging C++ programming puzzles to readers.
🔹 The book addresses many subtle issues in C++ that can lead to bugs and performance problems, including the infamous "Stack Unwinding Problem" during exception handling.
🔹 Herb Sutter is the chair of the ISO C++ standards committee and has been nicknamed "The C++ Guru" by developers worldwide for his contributions to the language.
🔹 The solutions presented in the book follow the "Exception-Safe Programming" principles, which became a cornerstone of modern C++ design after being popularized by this work.
🔹 Many of the guidelines from Exceptional C++ later became part of the C++ Core Guidelines project, a collaborative effort between Herb Sutter and Bjarne Stroustrup (C++'s creator).