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