Пардоньте за некрофильство, а какой в общем то смысл использовать шаблоны с определенными типами ?
Другое дело, когда:
template <typedef MyType1,typedef MyType2, typedef MyType3>
И понеслась:
void(MyType1 x, MyType2 y, MyType3 z)
Просто , когда типы явно указаны, это же не шаблон функции, это и есть функция…