Предположим, что у нас есть шаблонная функция "foo":
template<class T>
void foo(T arg)
{ ... }
Я могу сделать специализацию для определенного типа, например.
template<>
void foo(int arg)
{ ... }
Если бы я хотел использовать ту же специализацию для всех встроенных числовых типов (int, float, double и т.д.), я бы писал эти строки много раз. Я знаю, что тело может быть выброшено в другую функцию, и просто вызвать это должно быть сделано в каждом специализированном органе, однако было бы лучше, если бы я мог избежать наложения этого "void foo (..." для каждого типа. любая возможность сообщить компилятору, что я хочу использовать эту специализацию для всех этих типов?