Экземпляр шаблона функции
Если шаблон функции сначала вызывается для каждого типа компилятор создает экземпляр.Каждый экземпляр версия шаблонизированные функции специализированной для типа.Этот экземпляр будет вызываться каждый раз, когда функция используется для типа.Если имеется несколько одинаковых экземпляров, даже в различных модулях, то только одна копия реализацией перемещается в исполняемом файле.
Преобразование аргументов функции допускается в шаблонах функции для всех пар аргументов и параметров, где параметр не зависит от аргумента шаблона.
Шаблоны функции могут быть явно создается путем объявления шаблона с указанным типом в качестве аргумента.Например, в следующем коде допускается.
// function_template_instantiation.cpp
template<class T> void f(T) { }
// Instantiate f with the explicitly specified template.
// argument 'int'
//
template void f<int> (int);
// Instantiate f with the deduced template argument 'char'.
template void f(char);
int main()
{
}