Table of Contents
1 Obtaining This Document: The Most Recent Version and Alternate
2 Disclaimer
3 Context and Aim of This Guide
4 Use of This Document
5 Contributing to This Document
6 Organization of This Document
7 Summary of Modules and Topics
7.1 Compilation Model
7.2 Preprocessor
7.3 Basics Types, Objects, Values, Expressions, Statements, and
7.4 Functions
7.5 User-Defined Types (Classes)
7.6 Inheritance and Class Hierarchies
7.7 Compile-Time Computation
7.8 Generic Programming (Templates)
7.9 Error Handling
7.10 Standard Library
7.11 External (i.e., Non Standard) Libraries
7.12 Building
7.13 Testing and Debugging
7.14 Tooling
7.15 Software Design
8 Detailed Information for Modules and Topics
8.1 C++ object model: copy semantics
8.1.1 Overview
8.1.2 Motivation
8.1.3 Topic introduction
8.1.4 Foundational: How and when are copies made
8.1.4.1 Background/Required Knowledge
8.1.4.2 Student outcomes
8.1.4.3 Caveats
8.1.4.4 Points to cover
8.1.5 Main: Implementing user-defined copy operations
8.1.5.1 Background/Required Knowledge
8.1.5.2 Student outcomes
8.1.5.3 Caveats
8.1.5.4 Points to cover
8.1.6 Advanced
8.2 Functions: user-defined literals
8.2.1 Overview
8.2.2 Motivation
8.2.3 Topic introduction
8.2.4 Foundational: Using UDLs
8.2.4.1 Background/Required Knowledge
8.2.4.2 Student outcomes
8.2.4.3 Caveats
8.2.4.4 Points to cover
8.2.5 Main: implementing UDLs
8.2.5.1 Background/Required Knowledge
8.2.5.2 Student outcomes
8.2.5.3 Caveats
8.3 Functions: default argument
8.3.1 Overview
8.3.2 Motivation
8.3.3 Topic introduction
8.3.4 Foundational: Using and defining functions with default
8.3.4.1 Background/Required Knowledge
8.3.4.2 Student outcomes
8.3.4.3 Caveats
8.3.4.4 Points to cover
8.3.5 Main: implementing *
8.3.5.1 Background/required knowledge
8.3.5.2 Student outcomes
8.3.5.3 Caveats
8.3.5.4 Points to cover
8.3.6 Advanced
8.4 Module name: Requires Expressions
8.4.1 Overview
8.4.2 Motivation
8.5 Topic introduction
8.5.1 Foundational: Writing requires-expressions
8.5.1.1 Background/Required Knowledge
8.5.1.2 Student outcomes
8.5.1.3 Caveats
8.5.1.4 Points to cover
8.5.2 Main: Advanced requirements
8.5.2.1 Background/required knowledge
8.5.2.2 Student outcomes
8.5.2.3 Caveats
8.5.2.4 Points to cover
8.5.3 Advanced
8.6 Meta-error handling:
static_assert
8.6.1 Overview
8.6.2 Motivation
8.6.3 Topic introduction
8.6.4 Foundational: Calling
static_assert
with a constant
8.6.4.1 Background/Required Knowledge
8.6.4.2 Student outcomes
8.6.4.3 Caveats
8.6.4.4 Points to cover
8.6.5 Main: Contracts and
static_assert
8.6.5.1 Background/Required Knowledge
8.6.5.2 Student outcomes
8.6.5.3 Caveats
8.6.5.4 Points to cover
8.6.6 Advanced
9 Examples of Course Curricula
10 License
11 Contributors
12 How To Contribute
13 Glossary
14 References
14.1 References on Learning Outcomes
14.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
•
Disclaimer
•
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
•
Examples of Course Curricula
•
License
•
Contributors
•
How To Contribute
•
Glossary
•
References
Next:
Obtaining This Document The Most Recent Version and Alternate Formats
[
Contents
]