Table of Contents
1 Obtaining This Document: The Most Recent Version and Alternate
2 Context and Aim of This Guide
3 Use of This Document
4 Contributing to This Document
5 Organization of This Document
6 Summary of Modules and Topics
6.1 Compilation Model
6.2 Preprocessor
6.3 Basics Types, Objects, Values, Expressions, Statements, and
6.4 Functions
6.5 User-Defined Types (Classes)
6.6 Inheritance and Class Hierarchies
6.7 Compile-Time Computation
6.8 Generic Programming (Templates)
6.9 Error Handling
6.10 Standard Library
6.11 External (i.e., Non Standard) Libraries
6.12 Building
6.13 Testing and Debugging
6.14 Tooling
6.15 Software Design
7 Detailed Information for Modules and Topics
7.1 C++ object model: copy semantics
7.1.1 Overview
7.1.2 Motivation
7.1.3 Topic introduction
7.1.4 Foundational: How and when are copies made
7.1.4.1 Background/Required Knowledge
7.1.4.2 Student outcomes
7.1.4.3 Caveats
7.1.4.4 Points to cover
7.1.5 Main: Implementing user-defined copy operations
7.1.5.1 Background/Required Knowledge
7.1.5.2 Student outcomes
7.1.5.3 Caveats
7.1.5.4 Points to cover
7.1.6 Advanced
7.2 C++ object model: Definitions
7.2.1 Overview
7.2.2 Motivation
7.2.3 Topic introduction
7.2.4 Foundational: Defining variables and ODR
7.2.4.1 Background/Required Knowledge
7.2.4.2 Student outcomes
7.2.4.3 Caveats
7.2.4.4 Points to cover
7.2.5 Main: Defining for programs
7.2.5.1 Background/Required Knowledge
7.2.5.2 Student outcomes
7.2.5.3 Caveats
7.2.5.4 Points to cover
7.2.6 Advanced: Special cases and peculiarities
7.3 C++ object model: Declarations
7.3.1 Overview
7.3.2 Motivation
7.3.3 Topic introduction
7.3.4 Foundational: Declaring variables
7.3.4.1 Background/Required Knowledge
7.3.4.2 Student outcomes
7.3.4.3 Caveats
7.3.4.4 Points to cover
7.3.5 Main: Declarations for programs
7.3.5.1 Background/Required Knowledge
7.3.5.2 Student outcomes
7.3.5.3 Caveats
7.3.5.4 Points to cover
7.3.6 Advanced
7.4 Meta-error handling:
static_assert
7.4.1 Overview
7.4.2 Motivation
7.4.3 Topic introduction
7.4.4 Foundational: Calling
static_assert
with a constant
7.4.4.1 Background/Required Knowledge
7.4.4.2 Student outcomes
7.4.4.3 Caveats
7.4.4.4 Points to cover
7.4.5 Main: Contracts and
static_assert
7.4.5.1 Background/Required Knowledge
7.4.5.2 Student outcomes
7.4.5.3 Caveats
7.4.5.4 Points to cover
7.4.6 Advanced
7.5 Functions: user-defined literals
7.5.1 Overview
7.5.2 Motivation
7.5.3 Topic introduction
7.5.4 Foundational: Using UDLs
7.5.4.1 Background/Required Knowledge
7.5.4.2 Student outcomes
7.5.4.3 Caveats
7.5.4.4 Points to cover
7.5.5 Main: implementing UDLs
7.5.5.1 Background/Required Knowledge
7.5.5.2 Student outcomes
7.5.5.3 Caveats
7.6 Functions: default argument
7.6.1 Overview
7.6.2 Motivation
7.6.3 Topic introduction
7.6.4 Foundational: Using and defining functions with default
7.6.4.1 Background/Required Knowledge
7.6.4.2 Student outcomes
7.6.4.3 Caveats
7.6.4.4 Points to cover
7.6.5 Main: implementing *
7.6.5.1 Background/Required knowledge
7.6.5.2 Student outcomes
7.6.5.3 Caveats
7.6.5.4 Points to cover
7.6.6 Advanced
7.7 Module name: Requires Expressions
7.7.1 Overview
7.7.2 Motivation
7.8 Topic introduction
7.8.1 Foundational: Writing requires-expressions
7.8.1.1 Background/Required Knowledge
7.8.1.2 Student outcomes
7.8.1.3 Caveats
7.8.1.4 Points to cover
7.8.2 Main: Advanced requirements
7.8.2.1 Background/Required Knowledge
7.8.2.2 Student outcomes
7.8.2.3 Caveats
7.8.2.4 Points to cover
7.8.3 Advanced
8 License
9 Contributors
10 How To Contribute
11 Glossary
12 References
12.1 References on Learning Outcomes
12.2 Working Group Documents Related to C++ Teaching Guidelines
Next:
Obtaining This Document The Most Recent Version and Alternate Formats
[
Contents
]
Guidelines for Teaching C++
•
Obtaining This Document The Most Recent Version and Alternate Formats
•
Context and Aim of This Guide
•
Use of This Document
•
Contributing to This Document
•
Organization of This Document
•
Summary of Modules and Topics
•
Detailed Information for Modules and Topics
•
License
•
Contributors
•
How To Contribute
•
Glossary
•
References
Next:
Obtaining This Document The Most Recent Version and Alternate Formats
[
Contents
]