IntroductionInheritance, Polymorphism, and InterfacesInheritance and Access SpecifiersAbstract Classes and InterfacesExercise 1: Implementing Game Characters with PolymorphismClasses, Structs, and Unions RevisitedVisibility, Lifetime, and AccessNamespacesTemplates – Generic ProgrammingWhat is Generic Programming?Introducing C++ TemplatesC++ Pre-Packaged TemplatesType Aliases – typedef and usingExercise 2: Implementing AliasesTemplates – More than Generic ProgrammingSubstitution Failure Is Not An Error – SFINAEFloating-Point RepresentationsConstexpr if ExpressionsNon-Type Template ArgumentsExercise 3: Implementing Stringify – specialization Versus constexprFunction Overloading RevisitedTemplate Type DeductionDisplaying the Deduced TypesTemplate Type Deduction – the DetailsSFINAE Expression and Trailing Return TypesClass TemplatesExercise 4: Writing a Class TemplateActivity 1: Developing a Generic "contains" Template FunctionSummary