Любой шаблон начинается со слова
template
, будь то шаблон функции или шаблон класса. После ключевого словаtemplate
идут угловые скобки — < >
, в которых перечисляется список параметров шаблона. Каждому параметру должно предшествовать зарезервированное слово class
или typename
. Отсутствие этих ключевых слов будет расцениваться компилятором как синтаксическая ошибка. Ключевое слово typename
говорит о том, что в шаблоне будет использоваться встроенный тип данных, такой как: int
, double
,float
, char
и т. д. А ключевое слово class
сообщает компилятору, что в шаблоне функции в качестве параметра будут использоваться пользовательские типы данных, то есть классы. Но не в коем случае не путайте параметр шаблона и шаблон класса.