Sdílet prostřednictvím


Explicitní specializace šablon funkcí

Pomocí šablony funkce lze definovat zvláštní chování konkrétního typu poskytnutím explicitní specializace (přepsání) šablony funkce daného typu.Příklad:

template<> void MySwap(double a, double b);

Tato deklarace umožňuje definovat různé funkce pro proměnné double.Podobně jako funkce bez šablony, jsou použity převody standardních typů (například povýšením proměnné typu float na double).

Příklad

// explicit_specialization.cpp
template<class T> void f(T t)
{
};

// Explicit specialization of f with 'char' with the
// template argument explicitly specified:
//
template<> void f<char>(char c)
{
}

// Explicit specialization of f with 'double' with the
// template argument deduced:
//
template<> void f(double d)
{
}
int main()
{
}

Viz také

Referenční dokumentace

Šablony funkcí