×

C++ Templates



What is Template ?

Suppose you written a program which sorts an list of integer datatypes. So you had written a function which sorts integer values. Then suddenly in future you got a requirement of sorting a list of double datatypes. Then you have to write another function which handles double values. Then you got a requirement of writing a character values. So yu have to write one more function.

So here comes Template into existence. Template accepts generic types . Any type you pass Template will handle it. You have to write a single function.

Syntax :-

#include <iostream>
using namespace std;
 
// One function works for all data types. 
template <typename T>
T myMax(T x, T y)
{
   return (x > y)? x: y;
}
int main()
{
  cout << myMax<char>('a', 'z') << endl;   // call myMax for char
  cout << myMax<int>(2, 4) << endl;  // Call myMax for int
  cout << myMax<double>(3.0, 7.0) << endl; // call myMax for double
 
  return 0;
}

Output :-

z
4
7

Templates are expanded at compile time. First we call myMax function with char type. Then myMax function accepts parameter of char type. Second time we call myMax function with int type. Then myMax function accepts parameter of int type. Third time we call myMax function with double type. Then myMax function accepts parameter of double type.