2018
- Item-49 Understand the behavior of the new handler
- Item-48 Be aware of template metaprogramming
- Item-47 Use traits classes for information about types
- Item-46 Define non-member function inside templates when type conversions are desired
- Item-45 Use member function templates to accept all compatible types
- Item-44 Factor parameter-independent code out of templates
- Item-43 Know how to access names in templatized base classes
- Item-42 Understand the two meanings of typename
- Item-41 Understand inplicit interfaces and compile time polymorphism
- Item-40 Use multiple inheritance judiciously
- Item-39 Use private inheritance judiciously
- Item-38 Model 'has-a' or 'is-implemented-in-terms-of' through composition
- Item-37 Never redefine a function's inherited default parameter value
- Item-36 Never redefine an inherited non-virtaul function
- Item-35 Consider Alternatives to Virtual Functions
- Item-34 Differentiate between inheritance of interface and inheritance of implementation
- Item-33 Avoid hiding inherited names
- Item-32 Make sure public inheritance models "Is-A"
- Item-31 Minimize compilation dependencies between files
- Item-30 Understand ins and outs of inlining