There is a significant class of types
that require source-code modification in order to reuse them effectively. The
template feature in C++ performs the source code modification
automatically, making it an especially powerful tool for reusing library code. A
type that you design using templates will work effortlessly with many other
types. Templates are especially nice because they hide the complexity of this
kind of code reuse from the client
programmer.