Рассмотрим простой шаблон функции:
template <typename T>
void FunctionTemplate(T t){
}
void MyFunction(){
int a;
FunctionTemplate(a);
FunctionTemplate<int>(a);
}
В первом вызове (FunctionTemplate(a)
) компилятор выдает тип, вызывающий вопрос, есть ли причина существования второго способа вызова FunctionTemplate (FunctionTemplate<int>(a)
) или любых веских причин, по которым мы не мог использовать первый метод?
Изменить: Моя терминология моя немного, поэтому, пожалуйста, отредактируйте по мере необходимости.