Odkazy na šablony
Toto téma ukazuje, jak použít šablonu, která již byla deklarována.
template-name < template-arg-list >
Poznámky
Seznam template-arg-list by měl být oddělený čárkami:
expressiontype-name
Všechny argumenty výrazu expression musí být konstantní výrazy.Kompilátor vytvoří novou instanci šablony třídy nebo funkce, pokud neexistuje žádná shoda s dříve vytvořenou šablonou.Například, chcete-li odkazovat třídu MyStack definovanou v tématu Šablony členských funkcí:
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.
Každá vygenerovaná šablona funkce vytvoří vlastní statické proměnné a členy.
Všechny argumenty šablony musí být přístupné v místě, kde se používají.
Výjimkou z výše uvedeného pravidla syntaxe je identifikace specializace členů šablony ve výrazu po operátorech ::, . nebo ->.Po těchto operátorech lze zadat klíčové slovo template.Jazyk Visual C++ vychází ze standardu, ve kterém je klíčové slovo template vždy volitelné v této souvislosti, ačkoliv jej standard v některých případech vyžaduje.Klíčové slovo template nelze v této specializaci použít, pokud nenásleduje tyto operátory.
[ :: | -> | . ] templatetemplate-name**<template-arg-list>**
Například, následující určuje volání typu int specializace členské šablony funkce f<T>(int), která je členem třídy X a předá jí parametr 10.
X::template f<int>(10);