Вот два объявления перегрузки функции:
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
).