Когда требуется поддерживать функции, принимающие различные комбинации типов параметров, количество перегрузок может экспоненциально расти. Например, если функция должна работать с двумя параметрами, которые могут быть одного из N типов, общее количество перегрузок будет N * N. Шаблоны - инструмент избавления от этой проблемы.