Function Templates
Function templates give you with the capability to write a one function that is a skeleton, or template, for a family of similar functions.
In function overloading method it relieves someone who is using your functions from having to know about dissimilar names for various functions that essentially do the same task. Unfortunately, overloaded functions are not the ultimate solution to the problem that is inherent when writing functions that are same in their behavior