Обращение к шаблоны
В этом разделе показано, как использовать шаблон, который ранее был объявлен.
template-name < template-arg-list >
Заметки
шаблон-arg-список следует список с разделителями-запятыми.
expressiontype-name
Все Выражение аргументы должны быть выражениями константы.Компилятор создает новый экземпляр (экземпляр) шаблонного класса или функции не точно, если - соответствие к ранее созданному шаблону.Например, для создания ссылки на MyStack класс, определенный внутри Шаблоны функции-члена.
MyStack< unsigned long, 5 > stack1;
// Creates a stack of unsigned longs.
MyStack< DWORD, 5 >stack2;
// Uses code created above.
MyStack< char, 6 > stack3;
// Generates new code.
MyStack< MyClass, 6 > stack4;
// Generates stack of MyClass objects.
Каждый созданный шаблон функции создает свои собственные переменные и статические элементы.
Все аргументы шаблона должны быть доступны в той точке, где они используются.
Исключение к вышеуказанному синтаксическому правилу в определение специализацию шаблона члена в выражении после ::" . OR - > операторы.После этих операторов, ключевое слово template может быть указан.Visual C++ уходит из стандарта в этом template ключевое слово всегда является необязательным в этом контексте, тогда как стандарт требует его в некоторых случаях.Ключевое слово нельзя использовать в специализации шаблона если за этими операторами.
[ :: | -> | . ] шаблоншаблон-Имя**<шаблон-arg-list>**
Например, следующий код определяет вызов int специализация шаблона функции-члена f<T>(int), что член класса X и передает ему параметр 10.
X::template f<int>(10);