Creazione di un'istanza del template di funzione
Quando un template di funzione viene chiamata per ogni tipo, il compilatore crea una creazione di istanza.Ogni creazione di istanze è una versione della funzione basata su modelli specializzata per il tipo.La creazione di istanze verrà chiamato ogni volta che la funzione viene utilizzata per il tipo.Se si dispone di diverse creazioni di istanze identiche, anche in moduli diversi, solo una copia della creazione di istanze finirà nel file eseguibile.
La conversione degli argomenti della funzione è consentita nei modelli di funzione per qualsiasi coppia di parametro e l'argomento in cui il parametro non dipende da un argomento di modello.
I modelli di funzione possono essere esplicitamente creare un'istanza dichiara il modello con un tipo specifico come argomento.Ad esempio, il codice seguente è consentito:
// function_template_instantiation.cpp
template<class T> void f(T) { }
// Instantiate f with the explicitly specified template.
// argument 'int'
//
template void f<int> (int);
// Instantiate f with the deduced template argument 'char'.
template void f(char);
int main()
{
}