Generic Programming is a programming language paradigm where algorithms are written in terms of types to-be-specified-later and then instantiated when needed for specific types of the parameters
template
keywordtypename
keyword used to declare the template parameterT
from the types of parameters in the callstd::sort()
worksstd::function