Różnice między specjalizacją szablonu a przeciążaniem funkcji?
Wiem więc, że istnieje różnica między tymi dwoma smakowitościami kodu:
template <typename T>
T inc(const T& t)
{
return t + 1;
}
template <>
int inc(const int& t)
{
return t + 1;
}
i
template <typename T>
T inc(const T& t)
{
return t + 1;
}
int inc(const int& t)
{
return t + 1;
}
Jestem zdezorientowany, jakie są różnice funkcjonalne między tymi dwoma. Czy ktoś może pokazać sytuacje, w których te fragmenty różnią się od siebie?