Int I, // параметр обычного типа
T1 DefaultValue, //
параметр обычного типа
template
<class> class T3, // параметр-шаблон
class
Character
= char> //
параметр по умолчанию
Параметры-шаблоны
Если в шаблоне класса или функции
необходимо использовать один и тот же
шаблон, но с разными параметрами, то
используются параметры-шаблоны. Например:
template <
class Type, template <class> class Container >
class
CrossReferences {
Container
<Type> mems; Container <Type*> refs;
};
CrossReferences
< Date, vector > cr1;
CrossReferences
< string, set > cr2;
Нельзя использовать шаблоны функций в
качестве параметров-шаблонов.
Хотя шаблоны и предоставляют краткую
форму записи участка кода, на самом деле
их использование не сокращает исполнимый
код, так как для каждого набора параметров
компилятор создаёт отдельный экземпляр
функции или класса.