You cannot create a specialized function for a template. But you can delegate the implementation in a helper class that can be used from your function. Some skeletal codes:
Deploy the template class and select it:
template< typename T, bool isArithmetic>
struct Something { void operator()() { ... } };
template< typename T, true>
struct Something { void operator()() { ... do something specialized for arithmetic types; } }
Then use it in the template function:
template< typename T>
void myFunction()
{
Something<T, IsArithmetic<T>::value>()();
}
IsArithmetic - , T (). , .