Zdefiniowano szablon (wzorzec) funkcji:
template
T suma ( T∗ table, int size)
{
T t =T () ;
for ( int i = 0; i < size ; i ++ ) t += table [i] ;
return t ;
}
Proces instancjacji szablonu polega na zastąpieniu typów i zmiennych będących parametrami szablonu konkretnymi typami i wartościami, a następnie generacji kodu wynikowego. Jakie założenia musi spełniać typ T, aby instancjacja szablonu była możliwa?
Typem T użytym podczas instancjacji szablonu może być typ wbudowany (int, char, float, double)
Zeby mozna było wywołac szablon funkcji parametrem może być typem prostym
Zeby mozna było wywołac szablon funkcji parametrem może klasa która posiada domyślny konstruktor oraz przeciążony operator +=