Основное предназначение шаблонов в C++ — кодирование обобщённых алгоритмов без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию). 25
Шаблоны позволяют:
- Уменьшить количество написанного кода. 1 Например, если нужно реализовать аналогичный функционал для различных исходных типов. 1
- Описать функцию один раз, вынеся тип в параметры. 3 Конкретные версии функции для нужных типов получаются подстановкой шаблонных аргументов в угловые скобки. 3
- Определить операции класса или функции и разрешить пользователю указать, какие типы этих операций должны работать. 4
На шаблонах построена стандартная библиотека C++, в которой есть, например, контейнеры и итераторы (шаблонные классы), а также алгоритмы (шаблонные функции). 3