|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
C++ templates enable you to define a family of functions or classes that can operate on different types of information. The Microsoft implementation of C++ templates is based on the ISO/ANSI C++ Standard.
Use templates in situations that result in duplication of the same code for multiple types. For example, you can use function templates to create a set of functions that apply the same algorithm to different data types. You can also use class templates to develop a set of typesafe classes. Templates are sometimes a better solution than C macros and void pointers, and they are especially useful when working with collections (one of the main uses for templates in MFC) and smart pointers.
In This Section
Provides general information about templates, or parameterized types, in Visual C++.
Provides a specification for a template declaration.
Describes the typename keyword.
Provides a task showing how to reference templates in your code.
- Angle Bracket Placement
Describes how angle brackets are placed in templates.
- Differences from Other Implementations
Discusses Microsoft-specific implementations of templates.
- Name Resolution
Discusses the three types of names in template definitions.
- Class Templates
Describes how to use and work with class templates.
- Function Templates
Describes how to use and work with function templates.