Sdílet prostřednictvím


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);

Viz také

Další zdroje

Šablony