Шаблоны методов позволяют описывать одинаковую реализацию для различных типов параметров.
Шаблон метода позволяет описать одну реализацию метода для всех допустимых значений параметров. Фактически шаблон метода заменяет набор перегружаемых методов с различными типами параметров.
Шаблон метода - это еще одно проявление полиморфизма языка С++.
Шаблоны методов используют в качестве параметра тип переменной.
В момент компиляции при вызове метода, не имеющего прототипа, выполняется поиск шаблона метода, из которого вызываемый метод может быть сгенерирован.
Шаблон метода указывается ключевым словом template, за которым в угловых скобках указывается список типов, используемых для параметров функции и типа возвращаемого значения.
Например:
template <class T1> T1 Fx (T1 x, T1 y) {return x+y;}
При использовании шаблона компилятор заменит для вызываемого метода тип шаблона на тип, указанный при вызове метода (T1 на int в следующем примере).
Например:
int i1=1; int i2=2; std::cout<<Fx(i1,i2);