Modelli di riferimento

In questo argomento viene illustrato come utilizzare un modello che era dichiarato.

template-name < template-arg-list >

Note

modello-argomento-elenco deve essere un elenco delimitato da virgole di:

expressiontype-name

tutti espressione gli argomenti devono essere espressioni costanti.Il compilatore crea una nuova istanza (chiamata una creazione di istanza) della classe o della funzione basata su modelli se c " non è esatta a un modello generato in precedenza.Ad esempio, fare riferimento MyStack classe definita in Modelli di funzione membro:

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.

Ogni modello di funzione generato crea le proprie variabili statiche e membri.

Tutti gli argomenti di modello devono essere accessibili al punto in cui vengono utilizzati.

L'eccezione alla regola sopra di sintassi è l'identificazione della specializzazione del template membro in un'espressione dopo ::, . o - > operatori.Dopo gli operatori, la parola chiave template può essere specificato.Visual C++ parte dallo standard in quando template la parola chiave è sempre facoltativa in questo contesto, mentre lo standard lo richiede in alcune circostanze.La parola chiave di modello non può essere utilizzata nella specializzazione a meno che seguono questi operatori.

[ :: | -> | . ] modellomodello-nome**<modello-arg-list>**

Ad esempio, di seguito specifica una chiamata a int specializzazione di template di funzione membro f<T>(int) quale è un membro della classe X e passa il parametro 10.

X::template f<int>(10);

Vedere anche

Altre risorse

Modelli