Изучая C ++, наткнулся на шаблоны функций. В главе упоминается специализация шаблонов.
template void foo
void foo (int);
Зачем нужно специализироваться, если вы можете использовать второй? Я думал, что шаблоны должны быть обобщающими. Какой смысл в специализации функции для определенного типа данных, если можно просто использовать обычную функцию?
Очевидно, специализация шаблона существует не просто так. Когда его следует использовать? Я прочитал статью Саттера «Почему бы не специализироваться ...» , но мне нужна более непрофессиональная версия, так как я только изучаю этот материал.