До C++11, если бы у меня была функция, работающая с большими объектами, я инстинктивно писал функции с таким прототипом. void f(A &return_value, A const ¶meter_value); (...
Если у меня есть класс A (который возвращает объект по значению) и две функции f() и g(), различающиеся только своими возвращаемыми переменными: класс A
{ public: A () { cout<<"конструктор, "; ...