Шаблоны в C++

Так как STL представляет собой набор шаблонных классов C ++, то знание того как устроены эти классы является желательным для работы c STL.
В C ++ добавлено два новых ключевых слова для поддержки шаблонов: «template» и «typename». Используя их можно написать универсальную функцию, которая будет во время компиляции раскрываться в нужные типы. Например, шаблонная функция получения максимума из двух значений:

template <typename T> 
T myMax(T x, T y) 
{ 
   return (x > y)? x: y; 
} 
  
int main() 
{ 
  cout << myMax<int>(3, 7) << endl;   
  cout << myMax<double>(3.0, 7.0) << endl;  
  cout << myMax<char>('g', 'e') << endl;    
  
  return 0; 
}