Можно ли перегрузить функцию, которая принимает либо ссылку, либо имя переменной?
Например, когда я пытаюсь сделать это:
void function(double a);
void function(double &a);
Я бы хотел, чтобы вызывающая функция могла выполнять:
double a = 2.5;
function(a); // should call function(double &a)
function(2.3); // should call function(double a)
Я хотел бы написать функции передачи по ссылке для лучшего использования памяти и возможного манипулирования переменной вне области видимости, но без необходимости создавать новую переменную только для того, чтобы я мог вызывать функцию.
Возможно ли это?
Приветствия