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 Copy Elision and Implicit Moving
8.6.1 Basic Learning Outcomes
8.6.2 Intermediate Learning Outcomes
8.6.3 Advanced Learning Outcomes
8.6.4 Common Misunderstandings
8.7 Meta-error handling:
static_assert
8.7.1 Overview
8.7.2 Motivation
8.7.3 Topic introduction
8.7.4 Foundational: Calling
static_assert
with a constant
8.7.4.1 Background/Required Knowledge
8.7.4.2 Student outcomes
8.7.4.3 Caveats
8.7.4.4 Points to cover
8.7.5 Main: Contracts and
static_assert
8.7.5.1 Background/Required Knowledge
8.7.5.2 Student outcomes
8.7.5.3 Caveats
8.7.5.4 Points to cover
8.7.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
]