Что является более эффективным: вернуть значение вместо передачи по ссылке?
В настоящее время я изучаю, как написать эффективный код на C ++, и в связи с вызовами функций возникает вопрос. Сравнивая эту функцию псевдокода:
not-void function-name () {
do-something
return value;
}
int main () {
...
arg = function-name();
...
}
с этой иначе идентичной функцией псевдокода:
void function-name (not-void& arg) {
do-something
arg = value;
}
int main () {
...
function-name(arg);
...
}
Какая версия более эффективна и в каком отношении (время, память и т. Д.)? Если это зависит, то когда первый будет более эффективным, а когда более эффективным будет второй?
редактироватьДля контекста этот вопрос ограничен аппаратно-независимыми платформами и большей частью программным обеспечением. Есть ли машинно-независимая разница в производительности?
редактироватьЯ не вижу, как это дубликат. Другой вопрос - сравнение передачи по ссылке (предыдущий код) с передачей по значению (ниже):
not-void function-name (not-void arg)
Что не то же самое, что мой вопрос. Я не сосредотачиваюсь на том, какой способ лучше передать аргумент функции. Я сосредоточен на том, какой способ лучше пройтииз результат для переменной из области видимости.