Я знаю, что Шаблоны функций используются для того, чтобы сделать функции переносимыми и чтобы их можно было использовать с любыми типами данных.
Также Явная специализация шаблонов выполняется, если у нас есть более эффективная реализация для определенного типа данных.
Но тогда вместо Явная специализация мы могли бы также просто кодировать Нетекстовую функцию , которую можно было бы вызывать из main
.
Это сэкономит нам некоторое время на обработку, так как компилятор найдет функции без шаблонов быстрее, чем явно специализированные шаблонные функции , что в свою очередь будет лучше с точки зрения эффективности.
Так почему же мы используем Явную специализацию , когда у нас есть альтернатива просто вызвать Не шаблонные функции ?
Пожалуйста, поправьте меня, если я ошибаюсь!
Редактировать 1:
Мой профессор сказал мне, что всякий раз, когда мы создаем шаблоны функций и вызываем функцию из main
, компилятор сначала ищет шаблонную функцию, а если он не может ее найти, то он ищет шаблон функции, из которой он, в свою очередь, создает шаблонную функцию и затем вызывает ее.