Effective C++: 55 Specific Ways To Improve Your Programs And Designs, 3/e lists the most effective ways of creating a code. It has about 9 chapters in total covering 55 C++ ways. Some of these chapters are Implementations and Object-Oriented Design, Constructors, Destructors, and Assignment Operators, Resource Management, Templates, Generic Programming and Designs, and Declarations. This is the third edition and it is revised, and includes updated content relating to the technical developments in this field relating to UML, templates, thread safety, design patterns, notation, and exception safety.
Included among the guidelines are strive for exception-safe code, never redefine an inherited non-virtual function, adhere to convention when writing new and delete, use private inheritance judiciously, treat class design as type design, prevent exceptions from leaving destructors, minimize casting, and more.
Some content has also been removed from the second edition and is not included. Each of the 55 ways are supported and explained with examples. Effective C++: 55 Specific Ways To Improve Your Programs And Designs, 3/e divides the content of the book into 4 parts - Standard Template Library, OO C++, The Old C Subsystem, and Template C++.
Template C++ is related to Template Metaprogramming which is a relatively new term in C++. The author’s practical approach towards explaining the rules and concepts is what makes him popular among students.