C ++ - Какова цель специализации шаблона функции? Когда его использовать?

Изучая C ++, наткнулся на шаблоны функций. В главе упоминается специализация шаблонов.

  1. template void foo (int);

  2. void foo (int);

Зачем нужно специализироваться, если вы можете использовать второй? Я думал, что шаблоны должны быть обобщающими. Какой смысл в специализации функции для определенного типа данных, если можно просто использовать обычную функцию?

Очевидно, специализация шаблона существует не просто так. Когда его следует использовать? Я прочитал статью Саттера «Почему бы не специализироваться ...» , но мне нужна более непрофессиональная версия, так как я только изучаю этот материал.

5
задан Kirill V. Lyadvinsky 11 September 2010 в 20:34
поделиться