В чем разница между шаблоном функции и функцией шаблона?
В чем разница между шаблоном функции и функцией шаблона?
Ответы (4)
Термин "шаблон функции" относится к типу шаблона. Термин "функция шаблона" иногда используется для обозначения того же самого, а иногда для обозначения функции, созданной из шаблона функции. Этой двусмысленности лучше всего избежать, используя «шаблон функции» для первого и что-то вроде «экземпляр шаблона функции» или «экземпляр шаблона функции» для второго. Обратите внимание, что шаблон функции не является функцией. То же различие применяется к «шаблону класса» и «классу шаблона».
Из этого часто задаваемых вопросов (архив)
Comeau Computing (создатель C++ Comeau Compiler) имеет FAQ на своем сайте с ответом на этот вопрос:
В чем разница между шаблонной функцией и шаблоном функции?
С уважением,
Ованес
Шаблон функции - это правильная терминология (шаблон для создания экземпляров функций).
Шаблонная функция является разговорным синонимом.
Так что никакой разницы нет.
Функция, сгенерированная компилятором из шаблона функции (общая функция) для указанного типа данных, называется функцией шаблона. Пример: приведенный ниже код называется шаблоном функции, поскольку он является шаблоном для функции.
template<T>
T doubleVal(T a){
return a+a;
}
int main(){
cout<<doubleVal<int>(5)<<endl;
}
Когда мы скомпилируем этот код, компилятор напишет функцию для int, взяв ссылку из функции шаблона. Эта функция известна как функция шаблона.