•Realize that when we write a function template we may not know the types that will be used by the client.
•Therefore, we recommend using type dependencies only once within the function's formal argument list.
•Also, make sure to handle the use of both built-in and pointer types.
•This may mean that we provide overloaded generalized function templates or template function specializations.