Цитата из учебника "Как программировать на С++" Дейтел Х., Дейтел П.
Перегруженные функции обычно используются для выполнения сходных операций над различными типами данных. Если операции идентичны для каждого типа, это можно выполнить более компактно и удобно, используя шаблоны функций — свойство, введенное в последней версии C++. Программист пишет единственное определение шаблона функции. Основываясь на типах аргументов, указанных в вызовах этой функции, C++ автоматически генерирует разные функции для соответствующей обработки каждого типа. Таким образом, определение единственного шаблона определяет целое семейство решений.
Здесь слова
идентичны и
схожи – это разные слова?
Т.е. как я понял
схожи – означает присутствие небольших отличий,
идентичны – означает полную схожесть.
Перегруженные функции применяются тогда, когда функции при работе с разными типами различаются, а шаблоны, когда не различаются.