Я знаю, что Функциональные шаблоны используются для того, чтобы сделать функции переносимыми и чтобы они могли использоваться с любыми типами данных.Шаблоны функций - Явная специализация vs Глобальные функции (C++)
Также Явные специализации шаблонов выполняется, если мы имеем более эффективную реализацию для конкретного типа данных.
Но вместо Явной специализации мы могли бы также просто закодировать нешаблонной Функцию, которая может быть вызвана из main
. Это сэкономит нам время на обработку, поскольку компилятор найдет Функции Nontemplate быстрее, чем Явно специализированные шаблонные функции, которые, в свою очередь, будут лучше с точки зрения эффективности.
Так почему же мы используем Явной Специализация, когда у нас есть альтернативы просто звонят нешаблонных Функций?
Пожалуйста, исправьте меня, если я ошибаюсь!
Edit 1: сказали мне моему профессор, что всякий раз, когда мы делаем шаблоны функций и вызвать функцию из main
, компилятор сначала ищет шаблонные функции и, если его не в состоянии обнаружить, что, то он ищет шаблон функции, из которого он в свою очередь делает шаблонную функцию, а затем вызывает ее.
Вы говорите об этом в контексте C++? в таком случае повторите вопрос, чтобы добавить тег C++. – Naveen
@Naveen - Спасибо. Я добавил тег C++. – Pavitar
Когда вы говорите «глобальная функция», вы имеете в виду «функцию без функции», правильно? –