Вот два объявления перегрузки функции:
void fun(char& arg);
void fun(int& arg);
void fun(long& arg);
Определения выполняют ту же работу:
void fun(char& arg) { ++arg; }
void fun(int& arg) { ++arg; }
void fun(long& arg) { ++arg; }
Как объявить и определить функцию один раз, используя шаблон, который принимает только типы int
, char
и long
в качестве аргумента? Ошибка должна появляться как можно быстрее (до выполнения), если функция используется неправильно (например, передается переменная типа double
).