با سلام.برنامه ای دارم که بخشی از ان را جدا کردم

template< typename T >
void testList( List< T > &listObject, const string &typeName )
{
بدنه
}
void main()
{
List< int > integerList;
testList( integerList, "integer" );
}



لطفا باسم توضیح بدید که چگونه نوع int به template تابع فهمونده میشه؟چون نوع int به عنوان پارامتر ارسال نمیشه حتی با فرض اینکه به عنوان پارامتر ارسال میشه template تابع testlist چگونه متوجه میشه که int باید باشه؟