TC-4 Goals

Things to learn during this stage that you should remember:

Function template and member function templates

Functions template are quite convenient to factor code that looks alike but differs by the nature of its arguments. Member function templates are used to factor error handling within the TypeChecker.

Virtual member function templates

You are expected to understand why there can be no such thing in C++.

The Template Method design pattern

The Template Method allows to factor a generic algorithm, the steps of which are specific. This is what we use to type check function and type declarations. Do not confuse Template Method with member function template, the order matters. Remember that in English the noun is usually last, preceded by qualifier.

Type-checking

What it is, how to implement it.

Stack unwinding

What it means, and when the C++ standard requires it from the compiler.