## Chapter Summary

1. A template allows a function or class to be parameterized by type
2. The template abstracts the actions to be performed
3. Template arguments are inferred from the values in a function invocation
4. Template functions can have the same name as nontemplate functions. The nontemplates are searched first for a match
5. Template classes allow the creation of containers that work with many different types of values
6. Template classes must be explicitly instantiated in order to declare new variables
7. Template arguments can be type names or they can be constants
8. A `typedef` statement can be used to form an alias for a type name
9. Template arguments can be used to set behavior, for example, setting the comparison algorithm for sorted containers

prev |top