There are multiple types of polymorphism. Polymorphism just means you have the same interface for different data types.
Templates: parametric polymorphism
Inheritance: subtype polymorphism (this is what we usually mean when talking about polymorphism)
Function overloading: ad hoc polymorphism