C ++ 11: Specjalizacja funkcji szablonu dla typów całkowitych

Załóżmy, że mam funkcję szablonu:

template<typename T>
void f(T t)
{
    ...
}

i chcę napisać specjalizację dla wszystkich prymitywnych typów całkowitych. Jak najlepiej to zrobić?

Chodzi mi o to że:

template<typename I where is_integral<I>::value is true>
void f(I i)
{
    ...
}

a kompilator wybiera drugą wersję dla typów całkowitych, a pierwszą dla wszystkiego innego?

questionAnswers(5)

yourAnswerToTheQuestion