Function templates, eða fallsnið eins og þau eru kölluð, eru föll sem vinna með tag sem er óþekkt þegar fallið er skrifað. Það getur verið fleiri en eitt óþekkt tag og fer tagið eftir því hvaða færibreyta er send inn í fallið.
Tökum dæmi um swap fall fyrir óskilgreint tag:
typedef int Type_of_variable;
void swap_values(Type_of_variable& var1, Type_of_variable& var2)
{
Type_of_variable temp;
temp = var1;
var1 = var2;
var2 = temp;
}

Tökum nú dæmi um swap fall með function template(fallsniði):
template <class T> //template er template prefix og T er tag færibreyta
void swap_values(T& var1, T& var2)
{
T temp;
temp = var1;
var1 = var2;
var2 = temp;
}

Nánar um template <class T> :
T má vera klasi eða innbyggt tag
Einnig má rita template <typename T>
Hægt er að hafa fleiri en eitt óþekkt tag:
-template<class T, class U, class V>
Raunverulegu tögin þurfa að hafa þá eiginleika sem sniðið notar en reynum þá ekki að nota óþarfa aðgerðir (óþarflega margar mismunandi aðgerðir)