When Should You Use Templates?

OverviewHow Do I

Templates are often used to:

  • Create a type-safe collection class (for example, a stack) that can operate on data of any type.

  • Add extra type checking for functions that would otherwise take void pointers.

  • Encapsulate groups of operator overrides to modify type behavior (such as smart pointers).

Most of these uses can be implemented without templates; however, templates offer several advantages:

  • Templates are easier to write. You create only one generic version of your class or function instead of manually creating specializations.

  • Templates can be easier to understand, since they can provide a straightforward way of abstracting type information.

  • Templates are type-safe. Because the types that templates act upon are known at compile time, the compiler can perform type checking before errors occur.

What do you want to know more about?