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