CodeCheck Documentation
CodeCheck Documentation - Effective C++

Standard: Effective C++

Checks based on the book "Effective C++ Third Edition: 55 Specific Ways to Improve Your Programs and Designs" by Scott Meyers

Amazon.com Purchase link: http://amzn.com/0321334876

“Every C++ professional needs a copy of Effective C++. It is an absolute must-read for anyone thinking of doing serious C++ development. If you’ve never read Effective C++ and you think you know everything about C++, think again.”
Steve Schirripa, Software Engineer, Google
“C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott’s deep insight and distinctive ability to impart knowledge.”
Gerhard Kreuzer, Research and Development Engineer, Siemens AG

The first two editions of Effective C++ were embraced by hundreds of thousands of programmers worldwide. The reason is clear: Scott Meyers’ practical approach to C++ describes the rules of thumb used by the experts — the things they almost always do or almost always avoid doing — to produce clear, correct, efficient code.

The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples. For this third edition, more than half the content is new, including added chapters on managing resources and using templates. Topics from the second edition have been extensively revised to reflect modern design considerations, including exceptions, design patterns, and multithreading.

Important features of Effective C++ include:



From the Back Cover

“Every C++ professional needs a copy of Effective C++. It is an absolute must-read for anyone thinking of doing serious C++ development. If you’ve never read Effective C++ and you think you know everything about C++, think again.”
Steve Schirripa, Software Engineer, Google“C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott’s deep insight and distinctive ability to impart knowledge.”
Gerhard Kreuzer, Research and Development Engineer, Siemens AG

The first two editions of Effective C++ were embraced by hundreds of thousands of programmers worldwide. The reason is clear: Scott Meyers’ practical approach to C++ describes the rules of thumb used by the experts — the things they almost always do or almost always avoid doing — to produce clear, correct, efficient code.

The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples. For this third edition, more than half the content is new, including added chapters on managing resources and using templates. Topics from the second edition have been extensively revised to reflect modern design considerations, including exceptions, design patterns, and multithreading.

Important features of Effective C++ include:

Check IDCheck NameSupported
EFFECTIVECPP_022. Do Not Use #defineYes
EFFECTIVECPP_033. Use Const whenever possibleYes
EFFECTIVECPP_044. Make sure that objects are initialized before they are usedYes
EFFECTIVECPP_077. Non-Virtual Destructors in Base ClassesYes
EFFECTIVECPP_088. Exceptions in DestructorsYes
EFFECTIVECPP_099. Virtual Call in Constructor/DestructorYes
EFFECTIVECPP_1010. Assignment Operator Return ThisYes
EFFECTIVECPP_1111. Assignment Operator Self AssignmentYes
EFFECTIVECPP_1616. Use the same form in corresponding uses of new and deleteYes
EFFECTIVECPP_1717. Store newed objects in smart pointers in standalone statementsYes
EFFECTIVECPP_2020. Prefer pass-by-reference-to-const to pass by valueYes
EFFECTIVECPP_2222. Datamembers should be declared privateYes
EFFECTIVECPP_2626. Postpone variable definitions as long as possibleYes
EFFECTIVECPP_2727. Minimize castingYes
EFFECTIVECPP_3333. Avoid hiding inherited namesYes
EFFECTIVECPP_3535. Consider alternatives to virtual functionsYes
EFFECTIVECPP_3636. Never redefine an inherited non-virtual functionYes